Links

All agent configuration variables

This document includes all of the variables you can configure the Moderne agent to run with. Your configuration will only use some of these.

Core variables

OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_APIGATEWAYRSOCKETURIThe URI used to connect to the Moderne API, provided by Moderne.
  • MODERNE_AGENT_CRYPTO_SYMMETRICKEYA 256-bit AES encryption key, hex encoded. Used to encrypt your artifacts.
  • MODERNE_AGENT_NICKNAMEA name used to identify your agent in the SaaS agent dashboard UI.
  • MODERNE_AGENT_TOKENThe Moderne SaaS agent connection token, provided by Moderne.
Example:
docker run \
-e MODERNE_AGENT_APIGATEWAYRSOCKETURI=https://api.tenant.moderne.io/rsocket \
-e MODERNE_AGENT_CRYPTO_SYMMETRICKEY=yourSymmetricKey \
-e MODERNE_AGENT_NICKNAME=prod-1 \
-e MODERNE_AGENT_TOKEN=yourToken \
# ... Additional variables
Arguments:
  • --moderne.agent.apiGatewayRsocketUriThe URI used to connect to the Moderne API, provided by Moderne.
  • --moderne.agent.crypto.symmetricKeyA 256-bit AES encryption key, hex encoded. Used to encrypt your artifacts.
  • --moderne.agent.nicknameA name used to identify your agent in the SaaS agent dashboard UI.
  • --moderne.agent.tokenThe Moderne SaaS agent connection token, provided by Moderne.
Example:
java -jar moderne-agent-{version}.jar \
--moderne.agent.apiGatewayRsocketUri=https://api.tenant.moderne.io/rsocket \
--moderne.agent.crypto.symmetricKey=yourSymmetricKey
--moderne.agent.nickname=prod-1 \
--moderne.agent.token=yourToken \
# ... Additional arguments

Bitbucket Cloud variables

OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_BITBUCKET_CLOUD_OAUTH_KEYThe key specified in your Bitbucket OAuth consumer.
  • MODERNE_AGENT_BITBUCKET_CLOUD_OAUTH_SECRETThe secret specified in your Bitbucket OAuth consumer.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_BITBUCKET_CLOUD_OAUTH_KEY=yourOAuthKey \
-e MODERNE_AGENT_BITBUCKET_CLOUD_OAUTH_SECRET=yourSecretKey \
# ... Additional variables
Arguments:
  • --moderne.agent.bitbucket.cloud.oauthKeyThe key specified in your Bitbucket OAuth consumer.
  • --moderne.agent.bitbucket.cloud.oauthSecretThe secret specified in your Bitbucket OAuth consumer.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.bitbucket.cloud.oauthKey=yourOAuthKey \
--moderne.agent.bitbucket.cloud.oauthSecret=yourSecretKey \
# ... Additional arguments

Bitbucket Data Center variables

You can configure multiple Bitbucket instances by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_BITBUCKET_{index}_PRIVATEKEYThe private key you configured for this Bitbucket instance.
  • MODERNE_AGENT_BITBUCKET_{index}_URLThe fully-qualified URL of the running Bitbucket instance. For example: https://bitbucket.myorg.com
  • MODERNE_AGENT_BITBUCKET_{index}_SKIPSSL(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this Bitbucket instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_BITBUCKET_0_PRIVATEKEY=yourPrivateKey \
-e MODERNE_AGENT_BITBUCKET_0_URL=https://bitbucket.myorg.com \
# ... Additional variables
Arguments:
  • --moderne.agent.bitbucket[{index}].privateKeyThe private key you configured for this Bitbucket instance.
  • --moderne.agent.bitbucket[{index}].urlThe fully-qualified URL of the running Bitbucket instance. For example: https://bitbucket.myorg.com
  • --moderne.agent.bitbucket[{index}].skipSsl(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this Bitbucket instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.bitbucket[0].privateKey=yourPrivateKey \
--moderne.agent.bitbucket[0].url=https://bitbucket.myorg.com \
# ... Additional arguments

GitHub variables

You can configure multiple GitHub OAuth apps by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_GITHUB_{index}_OAUTH_CLIENTIDThe client id configured in GitHub.
  • MODERNE_AGENT_GITHUB_{index}_OAUTH_CLIENTSECRETThe client secret configured in GitHub.
  • MODERNE_AGENT_GITHUB_{index}_URLThe fully-qualified hostname of the running GitHub instance.
  • MODERNE_AGENT_GITHUB_{index}_SKIPSSL(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitHub instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
  • MODERNE_AGENT_GITHUB_{index}_ALLOWABLE_ORGANIZATIONS_{index}(Optional) Specifies what organizations you can fork recipe results to. By default, there are no restrictions on which organizations can be committed to. If you want multiple organizations, increase the last index and add one per line.
  • MODERNE_AGENT_GITHUB_{index}_OAUTH_INCLUDEPRIVATEREPOS(Optional) By default, the OAuth app will only have access to public repositories within your organization(s). To provide the OAuth app access to private repositories, you can set this to true.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_GITHUB_0_OAUTH_CLIENTID=yourClientId \
-e MODERNE_AGENT_GITHUB_0_OAUTH_CLIENTSECRET=yourClientSecret \
-e MODERNE_AGENT_GITHUB_0_URL=https://myorg.github.com \
-e MODERNE_AGENT_GITHUB_0_ALLOWABLE_ORGANIZATIONS_0=moderne \
-e MODERNE_AGENT_GITHUB_0_ALLOWABLE_ORGANIZATIONS_1=openrewrite \
-e MODERNE_AGENT_GITHUB_0_OAUTH_INCLUDEPRIVATEREPOS=true \
# ... Additional variables
Arguments:
  • --moderne.agent.github[{index}].oauth.clientIdThe client id configured in GitHub.
  • --moderne.agent.github[{index}].oauth.clientSecretThe client secret configured in GitHub.
  • --moderne.agent.github[{index}].urlThe fully-qualified hostname of the running GitHub instance.
  • --moderne.agent.github[{index}].skipSsl(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitHub instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
  • --moderne.agent.github[{index}].allowableOrganizations[{index}](Optional) Specifies what organizations you can fork recipe results to. By default, there are no restrictions on which organizations can be committed to. If you want multiple organizations, increase the last index and add one per line.
  • --moderne_agent_github[{index}].oauth.includePrivateRepos(Optional) By default, the OAuth app will only have access to public repositories within your organization(s). To provide the OAuth app access to private repositories, you can set this to true.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.github[0].oauth.clientId=yourClientId \
--moderne.agent.github[0].oauth.clientSecret=yourClientSecret \
--moderne.agent.github[0].url=https://myorg.github.com \
--moderne.agent.github[0].allowableOrganizations[0]=moderne \
--moderne.agent.github[0].allowableOrganizations[1]=openrewrite \
--moderne.agent.github[0].oauth.includePrivateRepos=true \
# ... Additional arguments

GitLab variables

You can configure multiple GitLab OAuth apps by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_GITLAB_{index}_OAUTH_CLIENTIDThe application id configured in GitLab.
  • MODERNE_AGENT_GITLAB_{index}_OAUTH_CLIENTSECRETThe secret configured in GitLab.`
  • MODERNE_AGENT_GITLAB_{index}_URLThe fully-qualified hostname of your GitLab instance.`
  • MODERNE_AGENT_BITBUCKET_{index}_SKIPSSL(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitLab instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_GITLAB_0_OAUTH_CLIENTID=yourClientId \
-e MODERNE_AGENT_GITLAB_0_OAUTH_CLIENTSECRET=yourClientSecret \
-e MODERNE_AGENT_GITLAB_0_URL=https://your-gitlab.com \
# ... Additional variables
Arguments:
  • --moderne.agent.gitlab[{index}].oauth.clientIdThe application id configured in GitLab.
  • --moderne.agent.gitlab[{index}].oauth.clientSecretThe secret configured in GitLab.`
  • --moderne.agent.gitlab[{index}].urlThe fully-qualified hostname of your GitLab instance.`
  • --moderne.agent.gitlab[{index}].skipSsl(Optional) Specifies whether or not to skip SSL validation for HTTP connections to this GitLab instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.gitlab[0].oauth.clientId=yourClientId \
--moderne.agent.gitlab[0].oauth.clientSecret=yourClientSecret \
--moderne.agent.gitlab[0].url=https://your-gitlab.com \
# ... Additional arguments

Organizations service variables

OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_ORGANIZATION_URLThe URL of your GraphQL service that provides organization information.
  • MODERNE_AGENT_ORGANIZATION_UPDATE_INTERVAL_SECONDS(Optional) Specifies how often to request your organization information. Defaults to 600 (10 minutes).
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_ORGANIZATION_URL=http://localhost:8091 \
-e MODERNE_AGENT_ORGANIZATION_UPDATE_INTERVAL_SECONDS=600 \
# ... Additional variables
Arguments:
  • --moderne.agent.organization.urlThe URL of your GraphQL service that provides organization information.
  • --moderne.agent.organization.updateIntervalSeconds(Optional) Specifies how often to request your organization information. Defaults to 600 (10 minutes).
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.organization.url=http://localhost:8091 \
--moderne.agent.organization.updateIntervalSeconds=600 \
# ... Additional arguments

Maven repository variables

You can configure multiple Maven repositories by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_MAVEN_{index}_URLThe URL of your Maven repository.
  • MODERNE_AGENT_MAVEN_{index}_LOCALREPOSITORYThe path on disk where LST artifacts and Maven index files will be downloaded to. This is on the disk where the agent is being run and not on the Maven instance. Defaults to ~/.moderne-maven
    • LST artifacts are deleted from this location after they are transmitted to Moderne. Index files will remain behind to be used to detect diffs in the artifacts. If changes are discovered, only the incremental diffs will be downloaded (to limit the amount of data being transferred).
    • If multiple Maven repositories are configured on the agent, they must have different MODERNE_AGENT_MAVEN_{index}_LOCALREPOSITORY configured.
  • MODERNE_AGENT_MAVEN_{index}_USERNAME(Optional) The username used to resolve artifacts. Defaults to null.
  • MODERNE_AGENT_MAVEN_{index}_PASSWORD(Optional) The password used to resolve artifacts. Defaults to null.
  • MODERNE_AGENT_MAVEN_{index}_RELEASES(Optional) Specifies whether or not this repository should be searched for releases. Defaults to true.
  • MODERNE_AGENT_MAVEN_{index}_SNAPSHOTS(Optional) Specifies whether or not this repository should be searched for snapshots. Defaults to true.
  • MODERNE_AGENT_MAVEN_{index}_ASTSOURCE(Optional) Specifies whether or not this repository should be searched for LST artifacts. Defaults to true (Note: LSTs used to be called ASTs).
  • MODERNE_AGENT_MAVEN_{index}_RECIPESOURCE(Optional) Specifies whether or not this repository should be searched for recipe jars. Defaults to true.
  • MODERNE_AGENT_MAVEN_{index}_SKIPSSL(Optional) Whether or not to skip SSL/TLS verification for calls from the agent to this Maven repository. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_MAVEN_0_URL=https://myartifactory.example.com/artifactory/libs-releases-local \
-e MODERNE_AGENT_MAVEN_0_LOCALREPOSITORY=~/.moderne-maven \
-e MODERNE_AGENT_MAVEN_0_USERNAME=admin \
-e MODERNE_AGENT_MAVEN_0_PASSWORD=password \
# ... Additional variables
Arguments:
  • --moderne.agent.maven[{index}].urlThe URL of your Maven repository.
  • --moderne.agent.maven[{index}].localRepositoryThe path on disk where LST artifacts and Maven index files will be downloaded to. This is on the disk where the agent is being run and not on the Maven instance. Defaults to ~/.moderne-maven
    • LST artifacts are deleted from this location after they are transmitted to Moderne. Index files will remain behind to be used to detect diffs in the artifacts. If changes are discovered, only the incremental diffs will be downloaded (to limit the amount of data being transferred).
    • If multiple Maven repositories are configured on the agent, they must have different MODERNE_AGENT_MAVEN_{index}_LOCALREPOSITORY configured.
  • --moderne.agent.maven[{index}].username(Optional) The username used to resolve artifacts. Defaults to null.
  • --moderne.agent.maven[{index}].password(Optional) The password used to resolve artifacts. Defaults to null.
  • --moderne.agent.maven[{index}].releases(Optional) Specifies whether or not this repository should be searched for releases. Defaults to true.
  • --moderne.agent.maven[{index}].snapshots(Optional) Specifies whether or not this repository should be searched for snapshots. Defaults to true.
  • --moderne.agent.maven[{index}].astSource(Optional) Specifies whether or not this repository should be searched for LST artifacts. Defaults to true (Note: LSTs used to be called ASTs).
  • --moderne.agent.maven[{index}].recipeSource(Optional) Specifies whether or not this repository should be searched for recipe jars. Defaults to true.
  • --moderne.agent.maven[{index}].skipSsl(Optional) Whether or not to skip SSL/TLS verification for calls from the agent to this Maven repository. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.maven[0].url=https://myartifactory.example.com/artifactory/libs-releases-local \
--moderne-agent.maven[0].localRepository=~/.moderne-maven \
--moderne.agent.maven[0].username=admin \
--moderne.agent.maven[0].password=password \
# ... Additional arguments

Artifactory repository variables

You can configure multiple Artifactory servers by including multiple entries, each with a different {index}. Within a given Artifactory server configuration, you can configure multiple LST query filters by including multiple entries, each with a different {index}.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_ARTIFACTORY_{index}_URLThe URL of your Artifactory instance.
  • MODERNE_AGENT_ARTIFACTORY_{index}_USERNAMEThe username used to connect to your Artifactory instance. This user must have permission to run AQL queries.
  • MODERNE_AGENT_ARTIFACTORY_{index}_PASSWORDThe password used to connect to your Artifactory instance.
  • MODERNE_AGENT_ARTIFACTORY_{index}_ASTQUERYFILTERS_{index}The AQL query fragment used to select LST artifacts to send to Moderne. If multiple are specified, they are combined together with an AND.
  • MODERNE_AGENT_ARTIFACTORY_{index}_SKIPSSL(Optional) Specifies whether or not to skip SSL verification for HTTP connections from the agent to this Artifactory instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_ARTIFACTORY_0_URL=https://myartifactory.example.com/artifactory/ \
-e MODERNE_AGENT_ARTIFACTORY_0_USERNAME=admin \
-e MODERNE_AGENT_ARTIFACTORY_0_PASSWORD=password \
-e MODERNE_AGENT_ARTIFACTORY_0_ASTQUERYFILTERS_0='"name":{"$match":"*-ast.jar"}' \
-e MODERNE_AGENT_ARTIFACTORY_0_ASTQUERYFILTERS_1='"repo":{"$eq":"example-maven"}' \
# ... Additional variables
Arguments:
  • --moderne.agent.artifactory[{index}].urlThe URL of your Artifactory instance.
  • --moderne.agent.artifactory[{index}].usernameThe username used to connect to your Artifactory instance. This user must have permission to run AQL queries.
  • --moderne.agent.artifactory[{index}].passwordThe password used to connect to your Artifactory instance.
  • --moderne.agent.artifactory[{index}].astQueryFilters[{index}]The AQL query fragment used to select LST artifacts to send to Moderne. If multiple are specified, they are combined together with an AND.
  • --moderne.agent.artifactory[{index}].skipSsl(Optional) Specifies whether or not to skip SSL verification for HTTP connections from the agent to this Artifactory instance. This must be set to true if you use a self-signed SSL/TLS certificate. Defaults to false.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.artifactory[0].url=https://myartifactory.example.com/artifactory/ \
--moderne.agent.artifactory[0].username=admin \
--moderne.agent.artifactory[0].password=password \
--moderne.agent.artifactory[0].astQueryFilters[0]='{"name":{"$match":"*-ast.jar"}}' \
--moderne.agent.artifactory[0].astQueryFilters[1]='{"repo":{"$eq":"example-maven"}}' \
# ... Additional arguments

Recipe variables

The platform provides several fallback repositories for recipe loading when an agent has not been configured with any recipe sources. This fallback behavior can be disabled using recipe configuration.
OCI Container
Executable JAR
Variables:
  • MODERNE_AGENT_RECIPE_USEONLYCONFIGURED – Only use the recipe sources configured in the agent.
Example:
docker run \
# ... Existing variables
-e MODERNE_AGENT_RECIPE_USEONLYCONFIGURED=true \
# ... Additional variables
Arguments:
  • --moderne.agent.recipe.useOnlyConfigured – Only use the recipe sources configured in the agent.
Example:
java -jar moderne-agent-{version}.jar \
# ... Existing arguments
--moderne.agent.recipe.useOnlyConfigured=true \
# ... Additional arguments