Обновление формата условий в API, CLI и Terraform
Важно
9 июня 2026 года сервис перейдет на новый формат условий и имя поля в правилах показа капчи. Если вы используете API, CLI или Terraform, обновите команды и конфигурации.
Раньше несколько значений в условии host задавались списком. Теперь такие значения нужно объединять в одно текстовое поле и разделять символом |.
Также меняется имя поля hosts на host_matcher.
Обновление существующих конфигураций
Все правила, которые вы создали в старом формате, будут автоматически перенесены в новый формат. Текущие настройки продолжат работать корректно.
Формат описания условий
|
Старый формат |
Новый формат |
|
|
example\.com|example\.net |
Если в старой конфигурации для этого поля использовались разные типы условий, объедините их в регулярное выражение
Пример разных типов условий в старом формате:
exact_match = example.com
exact_not_match = example.net
Пример объединения условий в новый формат:
"pireRegexMatch": "example\.com|~(example\.net)"
Если в регулярном выражении специальные символы (, ), {, }, [, ], ., *, +, ?, ^, $, |, \, & или ~ используются как обычные, экранируйте их с помощью \.
Символ ~ можно использовать как логическое отрицание.
Обновление CLI
-
Обновите CLI до последней версии:
yc components update -
Посмотрите формат новых полей в командах
createиupdate:yc smartcaptcha captcha create -h yc smartcaptcha captcha update -h
Примеры использования нового поля
Если вы указываете правила показа в команде, используйте новый формат:
yc smartcaptcha captcha create \
--name captcha \
--security-rules '[
{
name = "captcha-rule",
priority = 1,
condition = {
host = {
host-matcher = {
match = {
pire-regex-match = "example.com|example.net"
}
}
}
}
}
]'
Если вы храните правила показа капчи в файле YAML, обновите в нем поле условия host для параметра --security-rules-file.
Подробнее о командах в справочнике CLI: captcha create и captcha update.
В конфигурации Terraform замените блок hosts на host_matcher:
resource "yandex_smartcaptcha_captcha" "yandex-smartcaptcha-captcha" {
name = "test-terraform-yandex-smartcaptcha-captcha"
security_rule {
name = "rule-condition-migration"
priority = 1
condition {
host {
host_matcher {
pire_regex_match = "a|b"
}
}
}
}
}
Подробнее о параметрах ресурса yandex_smartcaptcha_captcha в документации провайдера.
Пример запроса с новым полем:
curl -X POST \
'https://smartcaptcha.api.cloud.yandex.net/smartcaptcha/v1/captchas' \
-H "Authorization: Bearer $(yc iam create-token)" \
-H 'Content-Type: application/json' \
-d '{
"folderId": "<идентификатор_каталога>",
"name": "captcha",
"securityRules": [
{
"name": "captcha-rule",
"priority": 1,
"condition": {
"host": {
"hostMatcher": {
"pireRegexMatch": "a|b"
}
}
}
}
]
}'
Подробнее о методах в справочнике REST API: Captcha.Create и Captcha.Update для ресурса Captcha.