Page 1 of 1
Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 09:02
by Tobi
Ich würde mir, wie der Threadtitel es bereits sagt, eine Kunden-Ressourcen-Matrix wünschen wollen.
Also eine Übersichtsseite aller Kunden auf welcher man sämtliche Ressourcen (genutzt und zugewiesen) eines Kunden auf einen Blick sehen kann.
So könnte man sehen bei welchem Kunden beispielsweise "Backup" aktiviert ist.
Oder wie viele E-Mail--Accounts angelegt sind.
Richtig fein wäre es wenn es dann bis in die Tiefe der PHP-FPM-Einstellungen ginge.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 10:23
by Alexander
Das wäre doch zunächst ein schönes API-Bastel-Projekt für die Bastelecke, falls jemand Lust und Zeit hat

.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:10
by 24unix
Alexander wrote: ↑Tue 11. Oct 2022, 10:23
Das wäre doch zunächst ein schönes API-Bastel-Projekt für die Bastelecke, falls jemand Lust und Zeit hat

.
Ich habe nachher ein Interview, davon hängt ab, wie viel Zeit ich habe.
@Tobi: Web oder CLI? Cli könnte ich wohl mit wenig Aufwand was hinzaubern.
Gerne auch Step-By-Step als Workshop.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:26
by Alexander
Im Idealfall natürlich Web und es als Dienst für die Allgemeinheit zur Verfügung stellen.
Dann einfach nur API-Key Eintragen und das Tool generiert die Liste für einen beliebigen Server.
Und für diejenigen, die deinem Server nicht vertrauen, verantwortungsvoll mit ihrem API Key Umzugehen, das Ganze noch zum selber-Hosten anbieten.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:30
by Tobi
Alexander wrote: ↑Tue 11. Oct 2022, 10:23
Das wäre doch zunächst ein schönes API-Bastel-Projekt für die Bastelecke, falls jemand Lust und Zeit hat

.
Ich hatte auf dich gehofft

.
API, ja klar, aber ich könnte mir sowas durchaus integrativ vorstellen. Dann würde man keinen separaten Login benötigen.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:36
by 24unix
Alexander wrote: ↑Tue 11. Oct 2022, 12:26
Und für diejenigen, die deinem Server nicht vertrauen, verantwortungsvoll mit ihrem API Key Umzugehen, das Ganze noch zum selber-Hosten anbieten.
Ich würde grundsätzlich den Code zur Verfügung stellen, dass es jeder bei sich selber hosten kann.
Ansonsten speichere ich die Key verschlüsselt, ich denke, das ist hinreichend sicher:
Ich denke, Sodium ist hinreichend sicher:
https://git.24unix.net/24unix.net/bindA ... roller.php
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:41
by Alexander
Ich meine eher dahingehend, das man - soll keine Unterstellung sein - bei Online-Diensten sich ja nie sicher sein kann, das sensible Daten abgegriffen werden - und zwar bewusst vom Entwickler/Hoster selbst. In dem Fall wäre es natürlich fatal, wenn der API-Key dann in falsche Hände gelangen würde.
Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 12:45
by 24unix
Alexander wrote: ↑Tue 11. Oct 2022, 12:41
Ich meine eher dahingehend, das man - soll keine Unterstellung sein - bei Online-Diensten sich ja nie sicher sein kann, das sensible Daten abgegriffen werden - und zwar bewusst vom Entwickler/Hoster selbst. In dem Fall wäre es natürlich fatal, wenn der API-Key dann in falsche Hände gelangen würde.
Darum selber hosten.

Re: Kunden-Ressourcen-Matrix
Posted: Tue 11. Oct 2022, 18:18
by 24unix
Als Anregung zum Basteln:

- SCR-20221011-p6b.png (97.75 KiB) Viewed 928 times
Ist natürlich super simpel, keine Fehlerprüfung, nichts.
Aber das json kann man in ein Object umwandeln, und dann beliebig weitere Details abfragen.
Mögliche Erweiterung: ApiKey nicht im Code, sondern verschlüsselt in einer DB anlegen.
Code: Select all
<?php
$apiKey = 'byo xxx ggpYqwoyY';
$panelUrl = 'keyhelp.lab.24unix.net';
/**
*
*/
class Matrix
{
public function __construct(private readonly string $apiKey, private readonly string $panelUrl)
{
// empty body
}
function readApi(string $command): ?array
{
$curl = curl_init(url: 'https://' . $this->panelUrl . '/api/v2/' . $command);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_HTTPHEADER => ["X-API-Key:$this->apiKey"]
);
curl_setopt_array(handle: $curl, options: $options);
$content = curl_exec(handle: $curl);
$error = curl_errno(handle: $curl);
$errorMessage = curl_error(handle: $curl);
$header = curl_getinfo(handle: $curl);
curl_close(handle: $curl);
$result['error'] = $error;
$result['errorMessage'] = $errorMessage;
$result['header'] = $header;
$result['content'] = $content;
return $result;
}
public function show(): void
{
echo 'show:' . PHP_EOL;
$clients = $this->readApi(command: 'clients');
print('<pre>');
var_dump(value: $clients['content']);
}
}
$matrix = new Matrix(apiKey: $apiKey, panelUrl: $panelUrl);
$matrix->show();