diff --git a/app/Drivers/DatabaseDriver.php b/app/Drivers/DatabaseDriver.php index b1597b5..b04b0e0 100644 --- a/app/Drivers/DatabaseDriver.php +++ b/app/Drivers/DatabaseDriver.php @@ -15,4 +15,8 @@ abstract class DatabaseDriver extends Driver ?string $containerId = null, ?array $credentials = null, ); + + abstract public function createUser(string $user, string $password): string; + + // abstract public function createDatabase(string $db, string $user): string; } diff --git a/app/Drivers/Postgres/Postgres17Driver.php b/app/Drivers/Postgres/Postgres17Driver.php index bd206f7..200ad71 100644 --- a/app/Drivers/Postgres/Postgres17Driver.php +++ b/app/Drivers/Postgres/Postgres17Driver.php @@ -55,7 +55,7 @@ class Postgres17Driver extends DatabaseDriver } ), new Step( - name: 'Configure firewall', + name: 'Configure firewall', // @todo this should create a Firewallrule script: 'ufw allow 5432/tcp || true', ), ]); @@ -69,4 +69,9 @@ class Postgres17Driver extends DatabaseDriver 'db' => 'keystone', ]; } + + public function createUser(string $user, string $password): string + { + return "psql -U {$this->credentials['user']} -d {$this->credentials['db']} -c \"CREATE USER {$user} WITH PASSWORD '{$password}';\""; + } } diff --git a/app/Http/Controllers/EnvironmentController.php b/app/Http/Controllers/EnvironmentController.php index 070ed4b..1b943fd 100644 --- a/app/Http/Controllers/EnvironmentController.php +++ b/app/Http/Controllers/EnvironmentController.php @@ -16,7 +16,13 @@ class EnvironmentController extends Controller return inertia('environments/Show', [ 'environment' => $environment, 'servers' => inertia()->optional(function () use ($environment) { - return $environment->application?->organisation?->servers->where('status', ServerStatus::ACTIVE)?->values() ?? []; + return $environment + ->application + ?->organisation + ?->servers() + ->where('status', ServerStatus::ACTIVE) + ->with('services') + ->get() ?? []; }), ]); } diff --git a/resources/js/components/RadioButton.vue b/resources/js/components/RadioButton.vue index 1c16fab..3d9723d 100644 --- a/resources/js/components/RadioButton.vue +++ b/resources/js/components/RadioButton.vue @@ -15,7 +15,7 @@ function onChange(event) { diff --git a/resources/js/pages/environments/Show.vue b/resources/js/pages/environments/Show.vue index f29b36c..5fdaf0d 100644 --- a/resources/js/pages/environments/Show.vue +++ b/resources/js/pages/environments/Show.vue @@ -1,8 +1,9 @@ -