in server/src/main/kotlin/org/jetbrains/teamcity/vault/server/VaultParametersProvider.kt [27:52]
override fun getParametersAvailableOnAgent(build: SBuild): Collection<String> {
val buildType = build.buildType ?: return emptyList()
if (build.isFinished) return emptyList()
if (!isFeatureEnabled(build)) return emptyList()
val exposed = HashSet<String>()
val connectionFeatures = buildType.project.getAvailableFeaturesOfType(OAuthConstants.FEATURE_TYPE).filter {
FeatureSettings.FEATURE_TYPE == it.parameters[OAuthConstants.OAUTH_TYPE_PARAM]
}
val vaultFeatures = connectionFeatures.map {
VaultFeatureSettings(it)
}
val parameters = build.buildOwnParameters
vaultFeatures.forEach { feature: VaultFeatureSettings ->
if (isShouldSetEnvParameters(parameters, feature.id)) {
val envPrefix = getEnvPrefix(feature.id)
exposed += Constants.ENV_PREFIX + envPrefix + VaultConstants.AgentEnvironment.VAULT_TOKEN
exposed += Constants.ENV_PREFIX + envPrefix + VaultConstants.AgentEnvironment.VAULT_ADDR
}
}
VaultReferencesUtil.collect(parameters, exposed, vaultFeatures.map { feature -> feature.id })
return exposed
}