backblaze-proofframe / scripts /check_integrations.py
ADJCJH's picture
Sync post-live local Genblaze proof evidence
74ee21a verified
Raw
History Blame Contribute Delete
2.01 kB
#!/usr/bin/env python3
"""Report integration readiness without printing secrets."""
from __future__ import annotations
import importlib.util
import json
from proofframe.config import Settings
def available(module: str) -> bool:
return importlib.util.find_spec(module) is not None
def main() -> None:
settings = Settings.from_env()
report = {
"storage_backend": settings.storage_backend,
"generation_backend": settings.generation_backend,
"b2": {
"configured": bool(
settings.b2_endpoint_url
and settings.b2_bucket
and settings.b2_key_id
and settings.b2_application_key
),
"has_endpoint": bool(settings.b2_endpoint_url),
"has_bucket": bool(settings.b2_bucket),
"has_key_id": bool(settings.b2_key_id),
"has_application_key": bool(settings.b2_application_key),
"has_region_for_genblaze_sink": bool(settings.b2_region_for_backblaze()),
"boto3_available": available("boto3"),
},
"genblaze": {
"configured": settings.genblaze_configured(),
"provider": settings.genblaze_provider,
"has_base_url_override": bool(settings.genblaze_base_url),
"has_model": bool(settings.genblaze_image_model),
"requires_api_key": settings.genblaze_provider_requires_key(),
"has_api_key": bool(settings.genblaze_provider_key()),
"genblaze_core_available": available("genblaze_core"),
"genblaze_s3_available": available("genblaze_s3"),
"genblaze_gmicloud_available": available("genblaze_gmicloud"),
"genblaze_openai_available": available("genblaze_openai"),
"provider_modules_available": all(
available(module) for module in settings.genblaze_provider_modules()
),
},
}
print(json.dumps(report, indent=2))
if __name__ == "__main__":
main()