跳转至

配置和提供方访问

配置记录意图和所有权。认证仍由提供方适配器负责;加载配置不会读取凭据文件、解析环境中的秘密或访问云账户。

明确的身份

intent.toml 等基础配置使用模式版本 1:

schema_version = 1
profile = "secure-gateway"

[identity]
project = "example-project"
stack = "example-stack"
provider = "yandex-cloud"
scope_id = "example-folder"
owner_id = "example-owner"

[[resources]]
logical_id = "gateway"
kind = "instance"
name = "example-gateway"

以上是虚构标识符。调用提供方前,请替换为自己的目标文件夹和所有权身份。核心名称使用小写字母、数字和连字符,并以字母开头;不透明的作用域 ID 单独验证。未知字段、重复逻辑 ID 和不支持的模式版本均导致拒绝。

通过配置 API 在本地验证:

from flayer.core.config import LoadConfig

config = LoadConfig("intent.toml")
print(config.identity.project, config.profile)

该基础模型描述资源身份。生命周期部署计划添加明确的依赖和提供方参数,由单独的加载器读取。网关配置档将安全设置编译到该计划中。第二轮流程见首次部署。

现有 Yandex CLI 认证

安装官方 Yandex Cloud CLI,按厂商说明配置命名账户和配置档。请自行选择目标文件夹。F-Layer 不初始化配置档、不导出访问令牌,也不回退到配置档的默认文件夹。

yc --version

构造适配器是本地操作;读取操作会访问选定账户:

from flayer.providers.contracts import ResourceKind
from flayer.providers.yandex import YandexCloudProvider, YandexCloudSettings

provider = YandexCloudProvider(
    YandexCloudSettings(folder_id="example-folder", profile="example")
)
status = provider.CheckAuthentication()

if status.authenticated:
    instances = provider.ListResources(ResourceKind.INSTANCE)
    print(len(instances))

对已获授权的账户使用实际作用域和配置档值。每条云命令显式提供文件夹和配置档;返回的作用域 ID 必须匹配。读取认证成功不证明拥有变更权限,也不证明可以访问所有资源类型。适配器不会将厂商的原始 stdout/stderr 包含在公开错误中。确切结果类型见提供方契约和生成的 API 参考。

凭据和持久状态

可选的基础凭据条目仅存储引用,从不存储内联值:

[[credentials]]
name = "provider-auth"
source = "env"
reference = "EXAMPLE_PROVIDER_AUTH"

基础加载器保留该引用而不解析它。当前 Yandex 适配器使用现有 yc 认证;该条目不会配置适配器,也不会将令牌注入命令。

运行时状态存储最少外部 ID 和精确的具有明确所有权的堆栈身份。请放在操作员控制的目录中,不要提交。复用其他所有者的状态或更改身份以接管任意资源会被拒绝。