Merge branch 'next' into v4.x
This commit is contained in:
commit
7f26680ace
4 changed files with 239 additions and 18 deletions
|
|
@ -264,6 +264,7 @@ public function database_by_uuid(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -327,7 +328,7 @@ public function database_by_uuid(Request $request)
|
||||||
)]
|
)]
|
||||||
public function update_by_uuid(Request $request)
|
public function update_by_uuid(Request $request)
|
||||||
{
|
{
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf', 'clickhouse_admin_user', 'clickhouse_admin_password', 'dragonfly_password', 'redis_password', 'redis_conf', 'keydb_password', 'keydb_conf', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf', 'clickhouse_admin_user', 'clickhouse_admin_password', 'dragonfly_password', 'redis_password', 'redis_conf', 'keydb_password', 'keydb_conf', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
||||||
$teamId = getTeamIdFromToken();
|
$teamId = getTeamIdFromToken();
|
||||||
if (is_null($teamId)) {
|
if (is_null($teamId)) {
|
||||||
return invalidTokenResponse();
|
return invalidTokenResponse();
|
||||||
|
|
@ -344,6 +345,7 @@ public function update_by_uuid(Request $request)
|
||||||
'image' => 'string',
|
'image' => 'string',
|
||||||
'is_public' => 'boolean',
|
'is_public' => 'boolean',
|
||||||
'public_port' => 'numeric|nullable',
|
'public_port' => 'numeric|nullable',
|
||||||
|
'public_port_timeout' => 'integer|nullable|min:1',
|
||||||
'limits_memory' => 'string',
|
'limits_memory' => 'string',
|
||||||
'limits_memory_swap' => 'string',
|
'limits_memory_swap' => 'string',
|
||||||
'limits_memory_swappiness' => 'numeric',
|
'limits_memory_swappiness' => 'numeric',
|
||||||
|
|
@ -375,7 +377,7 @@ public function update_by_uuid(Request $request)
|
||||||
}
|
}
|
||||||
switch ($database->type()) {
|
switch ($database->type()) {
|
||||||
case 'standalone-postgresql':
|
case 'standalone-postgresql':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'postgres_user' => 'string',
|
'postgres_user' => 'string',
|
||||||
'postgres_password' => 'string',
|
'postgres_password' => 'string',
|
||||||
|
|
@ -406,20 +408,20 @@ public function update_by_uuid(Request $request)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'standalone-clickhouse':
|
case 'standalone-clickhouse':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'clickhouse_admin_user', 'clickhouse_admin_password'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'clickhouse_admin_user', 'clickhouse_admin_password'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'clickhouse_admin_user' => 'string',
|
'clickhouse_admin_user' => 'string',
|
||||||
'clickhouse_admin_password' => 'string',
|
'clickhouse_admin_password' => 'string',
|
||||||
]);
|
]);
|
||||||
break;
|
break;
|
||||||
case 'standalone-dragonfly':
|
case 'standalone-dragonfly':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'dragonfly_password'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'dragonfly_password'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'dragonfly_password' => 'string',
|
'dragonfly_password' => 'string',
|
||||||
]);
|
]);
|
||||||
break;
|
break;
|
||||||
case 'standalone-redis':
|
case 'standalone-redis':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'redis_password', 'redis_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'redis_password', 'redis_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'redis_password' => 'string',
|
'redis_password' => 'string',
|
||||||
'redis_conf' => 'string',
|
'redis_conf' => 'string',
|
||||||
|
|
@ -446,7 +448,7 @@ public function update_by_uuid(Request $request)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'standalone-keydb':
|
case 'standalone-keydb':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'keydb_password', 'keydb_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'keydb_password', 'keydb_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'keydb_password' => 'string',
|
'keydb_password' => 'string',
|
||||||
'keydb_conf' => 'string',
|
'keydb_conf' => 'string',
|
||||||
|
|
@ -473,7 +475,7 @@ public function update_by_uuid(Request $request)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'standalone-mariadb':
|
case 'standalone-mariadb':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'mariadb_conf' => 'string',
|
'mariadb_conf' => 'string',
|
||||||
'mariadb_root_password' => 'string',
|
'mariadb_root_password' => 'string',
|
||||||
|
|
@ -503,7 +505,7 @@ public function update_by_uuid(Request $request)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'standalone-mongodb':
|
case 'standalone-mongodb':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'mongo_conf' => 'string',
|
'mongo_conf' => 'string',
|
||||||
'mongo_initdb_root_username' => 'string',
|
'mongo_initdb_root_username' => 'string',
|
||||||
|
|
@ -533,7 +535,7 @@ public function update_by_uuid(Request $request)
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'standalone-mysql':
|
case 'standalone-mysql':
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'mysql_root_password' => 'string',
|
'mysql_root_password' => 'string',
|
||||||
'mysql_password' => 'string',
|
'mysql_password' => 'string',
|
||||||
|
|
@ -1068,6 +1070,7 @@ public function update_backup(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1135,6 +1138,7 @@ public function create_database_postgresql(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1201,6 +1205,7 @@ public function create_database_clickhouse(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1268,6 +1273,7 @@ public function create_database_dragonfly(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1335,6 +1341,7 @@ public function create_database_redis(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1405,6 +1412,7 @@ public function create_database_keydb(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1475,6 +1483,7 @@ public function create_database_mariadb(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1542,6 +1551,7 @@ public function create_database_mysql(Request $request)
|
||||||
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
'image' => ['type' => 'string', 'description' => 'Docker Image of the database'],
|
||||||
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
'is_public' => ['type' => 'boolean', 'description' => 'Is the database public?'],
|
||||||
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
'public_port' => ['type' => 'integer', 'description' => 'Public port of the database'],
|
||||||
|
'public_port_timeout' => ['type' => 'integer', 'description' => 'Public port timeout in seconds (default: 3600)'],
|
||||||
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
'limits_memory' => ['type' => 'string', 'description' => 'Memory limit of the database'],
|
||||||
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
'limits_memory_swap' => ['type' => 'string', 'description' => 'Memory swap limit of the database'],
|
||||||
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
'limits_memory_swappiness' => ['type' => 'integer', 'description' => 'Memory swappiness of the database'],
|
||||||
|
|
@ -1580,7 +1590,7 @@ public function create_database_mongodb(Request $request)
|
||||||
|
|
||||||
public function create_database(Request $request, NewDatabaseTypes $type)
|
public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
{
|
{
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf', 'clickhouse_admin_user', 'clickhouse_admin_password', 'dragonfly_password', 'redis_password', 'redis_conf', 'keydb_password', 'keydb_conf', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf', 'clickhouse_admin_user', 'clickhouse_admin_password', 'dragonfly_password', 'redis_password', 'redis_conf', 'keydb_password', 'keydb_conf', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
||||||
|
|
||||||
$teamId = getTeamIdFromToken();
|
$teamId = getTeamIdFromToken();
|
||||||
if (is_null($teamId)) {
|
if (is_null($teamId)) {
|
||||||
|
|
@ -1670,6 +1680,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
'destination_uuid' => 'string',
|
'destination_uuid' => 'string',
|
||||||
'is_public' => 'boolean',
|
'is_public' => 'boolean',
|
||||||
'public_port' => 'numeric|nullable',
|
'public_port' => 'numeric|nullable',
|
||||||
|
'public_port_timeout' => 'integer|nullable|min:1',
|
||||||
'limits_memory' => 'string',
|
'limits_memory' => 'string',
|
||||||
'limits_memory_swap' => 'string',
|
'limits_memory_swap' => 'string',
|
||||||
'limits_memory_swappiness' => 'numeric',
|
'limits_memory_swappiness' => 'numeric',
|
||||||
|
|
@ -1696,7 +1707,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($type === NewDatabaseTypes::POSTGRESQL) {
|
if ($type === NewDatabaseTypes::POSTGRESQL) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'postgres_user', 'postgres_password', 'postgres_db', 'postgres_initdb_args', 'postgres_host_auth_method', 'postgres_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'postgres_user' => 'string',
|
'postgres_user' => 'string',
|
||||||
'postgres_password' => 'string',
|
'postgres_password' => 'string',
|
||||||
|
|
@ -1755,7 +1766,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::MARIADB) {
|
} elseif ($type === NewDatabaseTypes::MARIADB) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mariadb_conf', 'mariadb_root_password', 'mariadb_user', 'mariadb_password', 'mariadb_database'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'clickhouse_admin_user' => 'string',
|
'clickhouse_admin_user' => 'string',
|
||||||
'clickhouse_admin_password' => 'string',
|
'clickhouse_admin_password' => 'string',
|
||||||
|
|
@ -1811,7 +1822,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::MYSQL) {
|
} elseif ($type === NewDatabaseTypes::MYSQL) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mysql_root_password', 'mysql_password', 'mysql_user', 'mysql_database', 'mysql_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'mysql_root_password' => 'string',
|
'mysql_root_password' => 'string',
|
||||||
'mysql_password' => 'string',
|
'mysql_password' => 'string',
|
||||||
|
|
@ -1870,7 +1881,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::REDIS) {
|
} elseif ($type === NewDatabaseTypes::REDIS) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'redis_password', 'redis_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'redis_password', 'redis_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'redis_password' => 'string',
|
'redis_password' => 'string',
|
||||||
'redis_conf' => 'string',
|
'redis_conf' => 'string',
|
||||||
|
|
@ -1926,7 +1937,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::DRAGONFLY) {
|
} elseif ($type === NewDatabaseTypes::DRAGONFLY) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'dragonfly_password'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'dragonfly_password'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'dragonfly_password' => 'string',
|
'dragonfly_password' => 'string',
|
||||||
]);
|
]);
|
||||||
|
|
@ -1956,7 +1967,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
'uuid' => $database->uuid,
|
'uuid' => $database->uuid,
|
||||||
]))->setStatusCode(201);
|
]))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::KEYDB) {
|
} elseif ($type === NewDatabaseTypes::KEYDB) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'keydb_password', 'keydb_conf'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'keydb_password', 'keydb_conf'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'keydb_password' => 'string',
|
'keydb_password' => 'string',
|
||||||
'keydb_conf' => 'string',
|
'keydb_conf' => 'string',
|
||||||
|
|
@ -2012,7 +2023,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::CLICKHOUSE) {
|
} elseif ($type === NewDatabaseTypes::CLICKHOUSE) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'clickhouse_admin_user', 'clickhouse_admin_password'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'clickhouse_admin_user', 'clickhouse_admin_password'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'clickhouse_admin_user' => 'string',
|
'clickhouse_admin_user' => 'string',
|
||||||
'clickhouse_admin_password' => 'string',
|
'clickhouse_admin_password' => 'string',
|
||||||
|
|
@ -2048,7 +2059,7 @@ public function create_database(Request $request, NewDatabaseTypes $type)
|
||||||
|
|
||||||
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
return response()->json(serializeApiResponse($payload))->setStatusCode(201);
|
||||||
} elseif ($type === NewDatabaseTypes::MONGODB) {
|
} elseif ($type === NewDatabaseTypes::MONGODB) {
|
||||||
$allowedFields = ['name', 'description', 'image', 'public_port', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database'];
|
$allowedFields = ['name', 'description', 'image', 'public_port', 'public_port_timeout', 'is_public', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'limits_memory', 'limits_memory_swap', 'limits_memory_swappiness', 'limits_memory_reservation', 'limits_cpus', 'limits_cpuset', 'limits_cpu_shares', 'mongo_conf', 'mongo_initdb_root_username', 'mongo_initdb_root_password', 'mongo_initdb_database'];
|
||||||
$validator = customApiValidator($request->all(), [
|
$validator = customApiValidator($request->all(), [
|
||||||
'mongo_conf' => 'string',
|
'mongo_conf' => 'string',
|
||||||
'mongo_initdb_root_username' => 'string',
|
'mongo_initdb_root_username' => 'string',
|
||||||
|
|
|
||||||
36
openapi.json
36
openapi.json
|
|
@ -4544,6 +4544,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -4989,6 +4993,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5117,6 +5125,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5241,6 +5253,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5369,6 +5385,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5497,6 +5517,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5637,6 +5661,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5777,6 +5805,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
@ -5905,6 +5937,10 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"description": "Public port of the database"
|
"description": "Public port of the database"
|
||||||
},
|
},
|
||||||
|
"public_port_timeout": {
|
||||||
|
"type": "integer",
|
||||||
|
"description": "Public port timeout in seconds (default: 3600)"
|
||||||
|
},
|
||||||
"limits_memory": {
|
"limits_memory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Memory limit of the database"
|
"description": "Memory limit of the database"
|
||||||
|
|
|
||||||
27
openapi.yaml
27
openapi.yaml
|
|
@ -2873,6 +2873,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3189,6 +3192,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3281,6 +3287,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3370,6 +3379,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3462,6 +3474,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3554,6 +3569,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3655,6 +3673,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3756,6 +3777,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
@ -3848,6 +3872,9 @@ paths:
|
||||||
public_port:
|
public_port:
|
||||||
type: integer
|
type: integer
|
||||||
description: 'Public port of the database'
|
description: 'Public port of the database'
|
||||||
|
public_port_timeout:
|
||||||
|
type: integer
|
||||||
|
description: 'Public port timeout in seconds (default: 3600)'
|
||||||
limits_memory:
|
limits_memory:
|
||||||
type: string
|
type: string
|
||||||
description: 'Memory limit of the database'
|
description: 'Memory limit of the database'
|
||||||
|
|
|
||||||
147
tests/Feature/DatabasePublicPortTimeoutApiTest.php
Normal file
147
tests/Feature/DatabasePublicPortTimeoutApiTest.php
Normal file
|
|
@ -0,0 +1,147 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Models\Environment;
|
||||||
|
use App\Models\InstanceSettings;
|
||||||
|
use App\Models\Project;
|
||||||
|
use App\Models\Server;
|
||||||
|
use App\Models\StandaloneDocker;
|
||||||
|
use App\Models\StandalonePostgresql;
|
||||||
|
use App\Models\StandaloneRedis;
|
||||||
|
use App\Models\Team;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
|
|
||||||
|
uses(RefreshDatabase::class);
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
InstanceSettings::updateOrCreate(['id' => 0]);
|
||||||
|
|
||||||
|
$this->team = Team::factory()->create();
|
||||||
|
$this->user = User::factory()->create();
|
||||||
|
$this->team->members()->attach($this->user->id, ['role' => 'owner']);
|
||||||
|
|
||||||
|
session(['currentTeam' => $this->team]);
|
||||||
|
|
||||||
|
$this->token = $this->user->createToken('test-token', ['*']);
|
||||||
|
$this->bearerToken = $this->token->plainTextToken;
|
||||||
|
|
||||||
|
$this->server = Server::factory()->create(['team_id' => $this->team->id]);
|
||||||
|
$this->destination = StandaloneDocker::where('server_id', $this->server->id)->first();
|
||||||
|
$this->project = Project::factory()->create(['team_id' => $this->team->id]);
|
||||||
|
$this->environment = Environment::factory()->create(['project_id' => $this->project->id]);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('PATCH /api/v1/databases', function () {
|
||||||
|
test('updates public_port_timeout on a postgresql database', function () {
|
||||||
|
$database = StandalonePostgresql::create([
|
||||||
|
'name' => 'test-postgres',
|
||||||
|
'image' => 'postgres:15-alpine',
|
||||||
|
'postgres_user' => 'postgres',
|
||||||
|
'postgres_password' => 'password',
|
||||||
|
'postgres_db' => 'postgres',
|
||||||
|
'environment_id' => $this->environment->id,
|
||||||
|
'destination_id' => $this->destination->id,
|
||||||
|
'destination_type' => $this->destination->getMorphClass(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'Authorization' => 'Bearer '.$this->bearerToken,
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
])->patchJson("/api/v1/databases/{$database->uuid}", [
|
||||||
|
'public_port_timeout' => 7200,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$database->refresh();
|
||||||
|
expect($database->public_port_timeout)->toBe(7200);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('updates public_port_timeout on a redis database', function () {
|
||||||
|
$database = StandaloneRedis::create([
|
||||||
|
'name' => 'test-redis',
|
||||||
|
'image' => 'redis:7',
|
||||||
|
'redis_password' => 'password',
|
||||||
|
'environment_id' => $this->environment->id,
|
||||||
|
'destination_id' => $this->destination->id,
|
||||||
|
'destination_type' => $this->destination->getMorphClass(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'Authorization' => 'Bearer '.$this->bearerToken,
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
])->patchJson("/api/v1/databases/{$database->uuid}", [
|
||||||
|
'public_port_timeout' => 1800,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$database->refresh();
|
||||||
|
expect($database->public_port_timeout)->toBe(1800);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('rejects invalid public_port_timeout value', function () {
|
||||||
|
$database = StandalonePostgresql::create([
|
||||||
|
'name' => 'test-postgres',
|
||||||
|
'image' => 'postgres:15-alpine',
|
||||||
|
'postgres_user' => 'postgres',
|
||||||
|
'postgres_password' => 'password',
|
||||||
|
'postgres_db' => 'postgres',
|
||||||
|
'environment_id' => $this->environment->id,
|
||||||
|
'destination_id' => $this->destination->id,
|
||||||
|
'destination_type' => $this->destination->getMorphClass(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'Authorization' => 'Bearer '.$this->bearerToken,
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
])->patchJson("/api/v1/databases/{$database->uuid}", [
|
||||||
|
'public_port_timeout' => 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(422);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('accepts null public_port_timeout', function () {
|
||||||
|
$database = StandalonePostgresql::create([
|
||||||
|
'name' => 'test-postgres',
|
||||||
|
'image' => 'postgres:15-alpine',
|
||||||
|
'postgres_user' => 'postgres',
|
||||||
|
'postgres_password' => 'password',
|
||||||
|
'postgres_db' => 'postgres',
|
||||||
|
'environment_id' => $this->environment->id,
|
||||||
|
'destination_id' => $this->destination->id,
|
||||||
|
'destination_type' => $this->destination->getMorphClass(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'Authorization' => 'Bearer '.$this->bearerToken,
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
])->patchJson("/api/v1/databases/{$database->uuid}", [
|
||||||
|
'public_port_timeout' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$database->refresh();
|
||||||
|
expect($database->public_port_timeout)->toBeNull();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('POST /api/v1/databases/postgresql', function () {
|
||||||
|
test('creates postgresql database with public_port_timeout', function () {
|
||||||
|
$response = $this->withHeaders([
|
||||||
|
'Authorization' => 'Bearer '.$this->bearerToken,
|
||||||
|
'Content-Type' => 'application/json',
|
||||||
|
])->postJson('/api/v1/databases/postgresql', [
|
||||||
|
'server_uuid' => $this->server->uuid,
|
||||||
|
'project_uuid' => $this->project->uuid,
|
||||||
|
'environment_name' => $this->environment->name,
|
||||||
|
'public_port_timeout' => 5400,
|
||||||
|
'instant_deploy' => false,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
$uuid = $response->json('uuid');
|
||||||
|
$database = StandalonePostgresql::whereUuid($uuid)->first();
|
||||||
|
expect($database)->not->toBeNull();
|
||||||
|
expect($database->public_port_timeout)->toBe(5400);
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in a new issue