Struktura bazy

spine-dbDzisiaj opowiem nieco o strukturze bazy danych, która wciąż ewoluuje. W tej chwili liczy ona 9 tabel, których przeznaczenie postaram się streścić poniżej.

Sysinfo

Tutaj rejestrują się serwery, na których został uruchomiony agent. W tej tabelce przechowywane są podstawowe informacje na temat serwera, takie jak uptime, zużycie takich zasobów jak cpu, ram czy dysk.
Każdy z uruchomionych agentów raportuje co 5 sekund stan systemu.

Sysusers

Ta tabelka została stworzona pod funkcjonalność, której jeszcze nie ma. Tworzenie kont systemowych. Będzie to punkt wyjścia dla konfiguracji takich usług jak poczta i ftp.

Users

Każdy szanujący się interfejs do zarządzania serwerami posiada stronę logowania. Do tego będzie służyła ta tabelka. Na razie jest to draft. W trakcie implementacji tej funkcjonalności zostanie jeszcze rozbudowana.

WWW

Główna tabelka z obszaru konfiguracji apacza. Zawiera definicje virtualhostów na wszystkich serwerach. W związku z tym łączy się z tabelką sysinfo. Dodatkowymi atrybutami, które zostały tu zdefiniowane są informacje na temat dostępu do danej strony www. W jakiej kolejności mają być przetwarzane instrukcje allow deny oraz czy dostęp został zabezpieczony hasłem.

WWW_access

Tabelka przechowuje konfigurację dostepów allow from i deny from, którą wyklikał w formularzu użytkownik. Tabelka łączy się z www oraz z sysusers.

WWW_opts

Tutaj znajduje się lista dostępnych do ustawienia opcji apacza. Zasadniczo na chwilę obecną ta tabelka powinna być wypełniona od samego początku.
Jeśli powstanie kiedyś instalator to będzie on ją wypełniał po wgraniu schematu do bazy. Jej zawartość nie ulega zmianie w trakcie działania programu.

WWW_opts_selected

Tabelka zawiera tylko numery id. Służy do powiązania vhostów z opcjami apacza. Wypełniana jest dynamicznie w trakcie działania programu, kiedy użytkownik ustawia różne opcje w formatce wyboru opcji apacza.

WWW_users

Tutaj przechowywane są loginy i hasła użytkowników, które trafiają do plików .htpasswd. każdy z wpisów jest uzależniony od id serwera, więc konto o tej samej nazwie można utworzyć na innych serwerach. Hasła są zaszyfrowane. Konta z tej tabelki służą do logowania się do witryny w której konfiguracji włączona jest opcja zabezpieczenia hasłem.

WWW_users_access

Tabelka ma podobne zastosowanie do WWW_opts_selected. Zawiera jedynie powiązania do wartości tabel WWW_users, sysinfo i WWW. Dzięki temu można dowolnie zarządzać dostępem do witryn. Możemy nadawać wybranemu userowi dostęp do jednej lub większej ilości witryn.