mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-21 16:05:19 +08:00
fix(plugin): fail closed on incomplete certification records
This commit is contained in:
@@ -242,11 +242,21 @@ def execution_mode_for_persisted_installation(
|
||||
) -> PluginExecutionMode:
|
||||
"""Derive placement only from persisted facts bound to the exact artifact."""
|
||||
|
||||
if len(artifact_digest) != 64 or any(character not in '0123456789abcdef' for character in artifact_digest.lower()):
|
||||
return PluginExecutionMode.DEDICATED
|
||||
if not isinstance(install_info, Mapping):
|
||||
return PluginExecutionMode.DEDICATED
|
||||
certification = install_info.get('_certification')
|
||||
if not isinstance(certification, Mapping):
|
||||
return PluginExecutionMode.DEDICATED
|
||||
normalized_digest = certification.get('normalized_digest')
|
||||
if not isinstance(normalized_digest, str) or len(normalized_digest) != 64:
|
||||
return PluginExecutionMode.DEDICATED
|
||||
if any(character not in '0123456789abcdef' for character in normalized_digest.lower()):
|
||||
return PluginExecutionMode.DEDICATED
|
||||
certificate_id = certification.get('certificate_id')
|
||||
if not isinstance(certificate_id, str) or not certificate_id.strip():
|
||||
return PluginExecutionMode.DEDICATED
|
||||
shared_facts = {
|
||||
'artifact_digest': artifact_digest,
|
||||
'verification': CertificateVerification.VALID.value,
|
||||
|
||||
Reference in New Issue
Block a user