Pular para o conteúdo principal

Preflight de capacidades de providers de storage

O descriptor V1 pós-1.0 separa requisitos portáveis da implementação. Ele tem sete garantias fechadas: transactions, locking, snapshot, streaming, online_backup, multi_process e multi_host. Um catálogo admite no máximo 32 descriptors.

Deployments ativam o contrato pelo setting existente do provider:

[storage]
provider_id = "file"
settings = { required_capabilities = "snapshot" }
secret_refs = {}

A declaração existente storage.shared=true exige multi_host. Requisitos desconhecidos, duplicados, indisponíveis ou não suportados falham antes do startup com erros tipados e redigidos. Não existe fallback de provider ou semântica.

O provider de arquivo anuncia somente snapshot. Replacement atômico e lock interno não são anunciados como transactions, locking visível ao caller, streaming, backup online, multi-process ou multi-host. Essa fronteira conservadora é pré-requisito para SQLite sync e scheduler durável. Schemas de negócio continuam pertencendo à aplicação.

O contrato em desenvolvimento não altera manifests V1 publicados. Significados incompatíveis futuros exigem outra versão. Rollback só remove requisitos opt-in depois de provar as mesmas semânticas no host e provider anteriores.

A certificação release clean-source em 12cbfc3 executou 16.384 preflights com p50/p95 de 42 ns, p99 de 83 ns e 10.493.879 operações/s. Requisitos não suportados falharam fechados e a suíte completa ficou abaixo do budget de RSS.