Skip to main content

Agent to Connector property mapping

This reference lists every Moderne Agent (v1) property and its Moderne Connector (v2) equivalent. Properties with no v2 equivalent are called out as Removed with a short note.

Most customers will not need to consult this table directly — the Connector ships with an auto-migration tool that converts an existing moderne.agent.* config into the canonical moderne.connector.* form on startup. Use this reference to spot-check the auto-migrated output, to debug a property that did not behave as expected, or to look up a single mapping by hand.

For the broader migration walkthrough, see Migrating to SaaS v2.

Core connection​

AgentConnector
moderne.agent.token=...moderne.connector.token=...
moderne.agent.api-gateway-rsocket-uri=https://api.TENANT.moderne.io/rsocketmoderne.connector.api-gateway-rsocket-uri=https://api.TENANT.moderne.io/connector
moderne.agent.nickname=...moderne.connector.nickname=...
moderne.agent.crypto.symmetric-key=...moderne.connector.crypto.symmetric-key=...
moderne.agent.api-gateway.proxy.host=...moderne.connector.api-gateway.proxy.host=...
moderne.agent.api-gateway.proxy.port=...moderne.connector.api-gateway.proxy.port=...

Removed (no replacement)​

Agent propertyNotes
moderne.agent.api-gateway.bearer-token=...Gateway auth now uses the rsocket URI credentials.
moderne.agent.download-parallelism=...Now per-source moderne.organization.sources.<type>[M].poll.{artifactory,maven}[N].download-parallelism, plus global cap moderne.connector.organization.download-parallelism.
moderne.agent.artifact-index-interval-seconds=...Now per-source moderne.organization.sources.<type>[M].poll.{artifactory,maven}[N].interval (ISO-8601 Duration like PT10M). A post-processor auto-fans the legacy global value out to each source.
moderne.agent.organization.dev-center=...Replaced by DevCenter recipes.
moderne.agent.organization.update-interval-seconds=...Cadence is per-source now.
moderne.agent.visualization.use-only-configured=...Feature removed.
moderne.agent.recipe.use-only-configured=...Feature removed. All configured repositories are always used. Only if no repositories are configured do we use publicly-available repositories.
moderne.agent.admin.block-admin-data-table-access=...Feature removed.
moderne.agent.nuget[N].*Replaced by moderne.recipe.marketplace.repositories.nuget[N].

Organization sources (repos.csv)​

AgentConnector
moderne.agent.organization.repos-csv=https://internal/repos.csvmoderne.organization.sources.http[0].uri=https://internal/repos.csv or moderne.organization.sources.file[0].path=/var/moderne/repos.csv or moderne.organization.sources.s3[0].uri=s3://my-bucket/repos-lock.csv
moderne.agent.organization.service.url=...moderne.custom-integrations.organization-service.uri=... (not auto-migrated; set it yourself as described in Organizations service)
moderne.agent.s3[N].bucket-uri=s3://bucket/prefixmoderne.organization.sources.s3[N].uri=s3://bucket/prefix/repos-lock.csv (post-processor appends /repos-lock.csv automatically)
moderne.agent.s3[N].region=...moderne.organization.sources.s3[N].region=...
moderne.agent.s3[N].endpoint-url=...moderne.organization.sources.s3[N].endpoint-url=...
moderne.agent.s3[N].access-key=...moderne.organization.sources.s3[N].access-key=...
moderne.agent.s3[N].secret-key=...moderne.organization.sources.s3[N].secret-key=...
moderne.agent.s3[N].profile=...moderne.organization.sources.s3[N].profile=...
moderne.agent.s3[N].skip-ssl=falsemoderne.organization.sources.s3[N].skip-ssl=false

Artifactory LST polling​

moderne.agent.artifactory[*] causes a hard fail at startup. Each entry must be attached to the specific organization source whose repos.csv file it enriches. <type> is http, s3, or file.

AgentConnector
moderne.agent.artifactory[N].url=...moderne.organization.sources.<type>[M].poll.artifactory[N].uri=...
moderne.agent.artifactory[N].username=...moderne.organization.sources.<type>[M].poll.artifactory[N].username=...
moderne.agent.artifactory[N].password=...moderne.organization.sources.<type>[M].poll.artifactory[N].password=...
moderne.agent.artifactory[N].bearer-token=...moderne.organization.sources.<type>[M].poll.artifactory[N].bearer-token=...
moderne.agent.artifactory[N].proxy.host=...moderne.organization.sources.<type>[M].poll.artifactory[N].proxy.host=...
moderne.agent.artifactory[N].proxy.port=...moderne.organization.sources.<type>[M].poll.artifactory[N].proxy.port=...
moderne.agent.artifactory[N].ast-query-filters[K]='"repo":{"$match":"..."}'moderne.organization.sources.<type>[M].poll.artifactory[N].lst-query-filters[K]='"repo":{"$match":"..."}'
moderne.agent.artifactory[N].skip-ssl=falsemoderne.organization.sources.<type>[M].poll.artifactory[N].skip-ssl=false
moderne.agent.artifactory[N].skip-validate-connectivity=falsemoderne.organization.sources.<type>[M].poll.artifactory[N].skip-validate-connectivity=false
moderne.agent.artifactory[N].connect-timeout=PT30Smoderne.organization.sources.<type>[M].poll.artifactory[N].connect-timeout=PT30S
moderne.agent.artifactory[N].read-timeout=PT60Smoderne.organization.sources.<type>[M].poll.artifactory[N].read-timeout=PT60S
(n/a — global on Agent)moderne.organization.sources.<type>[M].poll.artifactory[N].interval=PT10M
(n/a — global on Agent)moderne.organization.sources.<type>[M].poll.artifactory[N].download-parallelism=4

Maven LST polling​

Same per-source rule as Artifactory.

AgentConnector
moderne.agent.maven[N].url=...moderne.organization.sources.<type>[M].poll.maven[N].uri=...
moderne.agent.maven[N].username=...moderne.organization.sources.<type>[M].poll.maven[N].username=...
moderne.agent.maven[N].password=...moderne.organization.sources.<type>[M].poll.maven[N].password=...
moderne.agent.maven[N].proxy.host=...moderne.organization.sources.<type>[M].poll.maven[N].proxy.host=...
moderne.agent.maven[N].proxy.port=...moderne.organization.sources.<type>[M].poll.maven[N].proxy.port=...
moderne.agent.maven[N].local-repository=/home/app/.moderne-custommoderne.organization.sources.<type>[M].poll.maven[N].local-repository=/home/app/.moderne-custom
moderne.agent.maven[N].skip-ssl=falsemoderne.organization.sources.<type>[M].poll.maven[N].skip-ssl=false
moderne.agent.maven[N].skip-validate-connectivity=falsemoderne.organization.sources.<type>[M].poll.maven[N].skip-validate-connectivity=false
moderne.agent.maven[N].releases=truemoderne.organization.sources.<type>[M].poll.maven[N].releases=true
moderne.agent.maven[N].snapshots=truemoderne.organization.sources.<type>[M].poll.maven[N].snapshots=true
moderne.agent.maven[N].connect-timeout=PT30Smoderne.organization.sources.<type>[M].poll.maven[N].connect-timeout=PT30S
moderne.agent.maven[N].read-timeout=PT60Smoderne.organization.sources.<type>[M].poll.maven[N].read-timeout=PT60S
moderne.agent.maven[N].alternate-urls[K]=...Removed. Add another moderne.organization.sources.<type>[M].poll.maven[N] entry.
moderne.agent.maven[N].ast-source=trueRemoved. Polling presence is the signal — anything under poll.maven[*] is an LST source.
moderne.agent.maven[N].recipe-source=trueRemoved. Recipe-artifact repos go under moderne.recipe.marketplace.repositories.maven[*].
(n/a — global on Agent)moderne.organization.sources.<type>[M].poll.maven[N].interval=PT10M
(n/a — global on Agent)moderne.organization.sources.<type>[M].poll.maven[N].download-parallelism=4

SCM — GitHub​

AgentConnector
moderne.agent.github[N].url=https://github.commoderne.scm.github[N].uri=https://github.com
moderne.agent.github[N].oauth.client-id=...moderne.scm.github[N].oauth.client-id=...
moderne.agent.github[N].oauth.client-secret=...moderne.scm.github[N].oauth.client-secret=...
moderne.agent.github[N].oauth.include-private-repos=falsemoderne.scm.github[N].oauth.include-private-repos=false
moderne.agent.github[N].proxy.host=...moderne.scm.github[N].proxy.host=...
moderne.agent.github[N].proxy.port=...moderne.scm.github[N].proxy.port=...
moderne.agent.github[N].skip-ssl=falsemoderne.scm.github[N].skip-ssl=false
moderne.agent.github[N].skip-validate-connectivity=falsemoderne.scm.github[N].skip-validate-connectivity=false
moderne.agent.github[N].allowable-organizations[M]=...moderne.scm.github[N].allowable-organizations[M]=...
moderne.agent.github[N].alternate-urls[M]=...Removed. Add another moderne.scm.github[N] entry.
moderne.agent.github[N].ssh.private-key=...Removed. SSH cloning is no longer supported in the SaaS.
moderne.agent.github[N].ssh.passphrase=...Removed.
moderne.agent.github[N].ssh.ssh-file-name=...Removed.
moderne.agent.github[N].ssh.user=...Removed.
moderne.agent.github[N].ssh.port=...Removed.

SCM — GitLab​

AgentConnector
moderne.agent.gitlab[N].url=https://gitlab.example.commoderne.scm.gitlab[N].uri=https://gitlab.example.com
moderne.agent.gitlab[N].oauth.client-id=...moderne.scm.gitlab[N].oauth.client-id=...
moderne.agent.gitlab[N].oauth.client-secret=...moderne.scm.gitlab[N].oauth.client-secret=...
moderne.agent.gitlab[N].proxy.host=...moderne.scm.gitlab[N].proxy.host=...
moderne.agent.gitlab[N].proxy.port=...moderne.scm.gitlab[N].proxy.port=...
moderne.agent.gitlab[N].skip-ssl=falsemoderne.scm.gitlab[N].skip-ssl=false
moderne.agent.gitlab[N].skip-validate-connectivity=falsemoderne.scm.gitlab[N].skip-validate-connectivity=false
moderne.agent.gitlab[N].alternate-urls[M]=...Removed.
moderne.agent.gitlab[N].ssh.*Removed.

SCM — Bitbucket Data Center​

moderne.agent.bitbucket migrates to moderne.scm.bitbucket-datacenter.

AgentConnector
moderne.agent.bitbucket[N].url=https://bitbucket.example.commoderne.scm.bitbucket-datacenter[N].uri=https://bitbucket.example.com
moderne.agent.bitbucket[N].private-key=... (OAuth 1.0)moderne.scm.bitbucket-datacenter[N].private-key=...
moderne.agent.bitbucket[N].oauth.key=... (OAuth 2.0)moderne.scm.bitbucket-datacenter[N].oauth.key=...
moderne.agent.bitbucket[N].oauth.secret=...moderne.scm.bitbucket-datacenter[N].oauth.secret=...
moderne.agent.bitbucket[N].proxy.host=...moderne.scm.bitbucket-datacenter[N].proxy.host=...
moderne.agent.bitbucket[N].proxy.port=...moderne.scm.bitbucket-datacenter[N].proxy.port=...
moderne.agent.bitbucket[N].skip-ssl=falsemoderne.scm.bitbucket-datacenter[N].skip-ssl=false
moderne.agent.bitbucket[N].skip-validate-connectivity=falsemoderne.scm.bitbucket-datacenter[N].skip-validate-connectivity=false
moderne.agent.bitbucket[N].alternate-urls[M]=...Removed.
moderne.agent.bitbucket[N].ssh.*Removed.
moderne.agent.bitbucket[N].connect-timeout=PT30SRemoved.
moderne.agent.bitbucket[N].read-timeout=PT60SRemoved.

SCM — Bitbucket Cloud (singleton)​

Base URL is hardcoded to https://bitbucket.org in both — not configurable.

AgentConnector
moderne.agent.bitbucket-cloud.oauth.key=...moderne.scm.bitbucket-cloud.oauth.key=...
moderne.agent.bitbucket-cloud.oauth.secret=...moderne.scm.bitbucket-cloud.oauth.secret=...
moderne.agent.bitbucket-cloud.proxy.host=...moderne.scm.bitbucket-cloud.proxy.host=...
moderne.agent.bitbucket-cloud.proxy.port=...moderne.scm.bitbucket-cloud.proxy.port=...
moderne.agent.bitbucket-cloud.skip-validate-connectivity=falsemoderne.scm.bitbucket-cloud.skip-validate-connectivity=false
moderne.agent.bitbucket-cloud.alternate-urls[M]=...Removed.

SCM — Azure DevOps​

moderne.agent.azure-dev-ops migrates to moderne.scm.azure-devops. Base URL is hardcoded to https://dev.azure.com in both.

AgentConnector
moderne.agent.azure-dev-ops[N].oauth.client-id=...moderne.scm.azure-devops[N].oauth.client-id=...
moderne.agent.azure-dev-ops[N].oauth.client-secret=...moderne.scm.azure-devops[N].oauth.client-secret=...
moderne.agent.azure-dev-ops[N].oauth.tenant-id=...moderne.scm.azure-devops[N].oauth.tenant-id=...
moderne.agent.azure-dev-ops[N].proxy.host=...moderne.scm.azure-devops[N].proxy.host=...
moderne.agent.azure-dev-ops[N].proxy.port=...moderne.scm.azure-devops[N].proxy.port=...
moderne.agent.azure-dev-ops[N].skip-validate-connectivity=falsemoderne.scm.azure-devops[N].skip-validate-connectivity=false
moderne.agent.azure-dev-ops[N].alternate-urls[M]=...Removed.
moderne.agent.azure-dev-ops[N].ssh.*Removed.

Default commit options​

AgentConnector
moderne.agent.default-commit-options[N]=...moderne.scm.default-commit-options[N]=...

LLM → Moddy​

provider becomes the discriminator (consumed, not emitted). OPEN_AI → openai, ANTHROPIC → anthropic, GEMINI → gemini, MISTRAL → mistral. admin-only stays top-level. Everything else is provider-scoped, so multiple providers can be configured at once.

AgentConnector
moderne.agent.llm.provider=OPEN_AI(discriminator — not emitted)
moderne.agent.llm.url=https://api.openai.com/v1moderne.moddy.openai.uri=https://api.openai.com/v1
moderne.agent.llm.api-key=...moderne.moddy.openai.api-key=...
moderne.agent.llm.model=...moderne.moddy.openai.model=...
moderne.agent.llm.proxy.host=...moderne.moddy.openai.proxy.host=...
moderne.agent.llm.proxy.port=...moderne.moddy.openai.proxy.port=...
moderne.agent.llm.skip-ssl=falsemoderne.moddy.openai.skip-ssl=false
moderne.agent.llm.skip-validate-connectivity=falsemoderne.moddy.openai.skip-validate-connectivity=false
moderne.agent.llm.admin-only=truemoderne.moddy.admin-only=true

Recipe marketplace — PyPI​

AgentConnector
moderne.agent.pypi[N].url=...moderne.recipe.marketplace.repositories.pypi[N].uri=...
moderne.agent.pypi[N].username=...moderne.recipe.marketplace.repositories.pypi[N].username=...
moderne.agent.pypi[N].password=...moderne.recipe.marketplace.repositories.pypi[N].password=...
moderne.agent.pypi[N].proxy.host=...moderne.recipe.marketplace.repositories.pypi[N].proxy.host=...
moderne.agent.pypi[N].proxy.port=...moderne.recipe.marketplace.repositories.pypi[N].proxy.port=...
moderne.agent.pypi[N].skip-ssl=falsemoderne.recipe.marketplace.repositories.pypi[N].skip-ssl=false
moderne.agent.pypi[N].skip-validate-connectivity=falsemoderne.recipe.marketplace.repositories.pypi[N].skip-validate-connectivity=false
moderne.agent.pypi[N].connect-timeout=PT30Smoderne.recipe.marketplace.repositories.pypi[N].connect-timeout=PT30S
moderne.agent.pypi[N].read-timeout=PT60Smoderne.recipe.marketplace.repositories.pypi[N].read-timeout=PT60S

Recipe / POM cache​

AgentConnector
moderne.agent.recipe.pom-cache.type=REDISmoderne.connector.recipe.pom-cache.type=REDIS
moderne.agent.recipe.pom-cache.redis.host=...moderne.connector.recipe.pom-cache.redis.host=...
moderne.agent.recipe.pom-cache.redis.port=6379moderne.connector.recipe.pom-cache.redis.port=6379
moderne.agent.recipe.pom-cache.redis.username=...moderne.connector.recipe.pom-cache.redis.username=...
moderne.agent.recipe.pom-cache.redis.password=...moderne.connector.recipe.pom-cache.redis.password=...
moderne.agent.recipe.pom-cache.redis.ssl=falsemoderne.connector.recipe.pom-cache.redis.ssl=false
moderne.agent.recipe.pom-cache.redis.database=0moderne.connector.recipe.pom-cache.redis.database=0
moderne.agent.recipe.pom-cache.pom-ttl=PT24Hmoderne.connector.recipe.pom-cache.pom-ttl=PT24H
moderne.agent.recipe.pom-cache.metadata-ttl=PT1Hmoderne.connector.recipe.pom-cache.metadata-ttl=PT1H
moderne.agent.recipe.pom-cache.entry-ttl-minutes=60 (deprecated on Agent)moderne.connector.recipe.pom-cache.entry-ttl-minutes=60 (still accepted, but prefer pom-ttl)

HTTP tools​

AgentConnector
moderne.agent.http-tool[N].url=...moderne.connector.http-tool[N].uri=...
moderne.agent.http-tool[N].username=...moderne.connector.http-tool[N].username=...
moderne.agent.http-tool[N].password=...moderne.connector.http-tool[N].password=...
moderne.agent.http-tool[N].bearer-token=...moderne.connector.http-tool[N].bearer-token=...
moderne.agent.http-tool[N].proxy.host=...moderne.connector.http-tool[N].proxy.host=...
moderne.agent.http-tool[N].proxy.port=...moderne.connector.http-tool[N].proxy.port=...
moderne.agent.http-tool[N].skip-ssl=falsemoderne.connector.http-tool[N].skip-ssl=false
moderne.agent.http-tool[N].skip-validate-connectivity=falsemoderne.connector.http-tool[N].skip-validate-connectivity=false
moderne.agent.http-tool[N].connect-timeout=PT30Smoderne.connector.http-tool[N].connect-timeout=PT30S
moderne.agent.http-tool[N].read-timeout=PT60Smoderne.connector.http-tool[N].read-timeout=PT60S

UI​

AgentConnector
moderne.agent.ui.more-help[N].label=Docsmoderne.ui.more-help[N].label=Docs
moderne.agent.ui.more-help[N].url=https://docs.example.commoderne.ui.more-help[N].uri=https://docs.example.com

CLI download instructions​

AgentConnector
moderne.agent.cli.download-instructions.label=Internal CLImoderne.ui.cli-download-instructions.label=Internal CLI
moderne.agent.cli.download-instructions.url=https://cli.example.commoderne.ui.cli-download-instructions.uri=https://cli.example.com

Personal access tokens​

AgentConnector
moderne.agent.personal-access-tokens.max-expiry-days=90moderne.authorization.access-tokens.max-expiry-days=90