#pragma once #include "data.h" #include // Load all registry data via sqlite_api HTTP endpoint. // api_url should be like "http://127.0.0.1:8484". // Returns true on success. bool load_registry_data_http(const std::string& api_url, RegistryData& out); // Load projects list (con conteos) y huerfanas. No destruye el resto de // campos de out, solo setea projects + orphan_*. bool load_projects_http(const std::string& api_url, RegistryData& out); // Load detalle de un proyecto (apps/analyses/vaults). Si id=="orphans" // devuelve las entidades sin project_id. bool load_project_detail_http(const std::string& api_url, const std::string& id, ProjectDetail& out); // Operaciones de mutacion (thread-safe porque http_post ya lo es). // Devuelven el body de respuesta en `out_body`. true si HTTP status 2xx. bool http_post_reindex(const std::string& api_url, std::string& out_body); bool http_post_add_app(const std::string& api_url, const std::string& name, const std::string& lang, const std::string& domain, const std::string& project, const std::string& description, std::string& out_body); bool http_post_add_analysis(const std::string& api_url, const std::string& name, const std::string& project, const std::string& packages_csv, const std::string& description, std::string& out_body); bool http_post_add_vault(const std::string& api_url, const std::string& name, const std::string& project, const std::string& path, const std::string& description, std::string& out_body);