","groups":[…]}, …]} // // DEPENDS ON // include/confform.php vv_conf_all_groups() // include/config.php vv_get_conf_files() // api/confform.php the write path for these same fields // ═══════════════════════════════════════════════════════════════════════════════════════════════ header('Content-Type: application/json'); header('Cache-Control: no-store, no-cache'); require_once dirname(__DIR__) . '/include/confform.php'; $files = vv_get_conf_files(); $out = []; foreach ($files as $f) { // "HOST IDENTITIES" is included alongside the partnership subsections because it holds HOST1 // and HOST2 — the hostnames the whole partnership is keyed on. They were shown by a separate // "Host Settings" card on the partnership page, which existed only to render those two fields // and is now redundant: one settings surface for the page, not two that both edit master.conf. $groups = array_values(array_filter( vv_conf_all_groups($f), fn($g) => stripos($g['subsection'], 'partnership') !== false || stripos($g['subsection'], 'host identities') !== false )); if ($groups) { $out[] = ['file' => $f, 'groups' => $groups]; } } echo json_encode(['ok' => true, 'files' => $out]);