Fix data table creds setup (#7516)

* fix wrong pg_creds

* revoke permissions
This commit is contained in:
Diego Imbert
2026-01-08 07:25:59 +01:00
committed by GitHub
parent 07b1977cb7
commit b00e65cb19
3 changed files with 22 additions and 2 deletions
@@ -0,0 +1 @@
-- Add down migration script here
@@ -0,0 +1,14 @@
-- Revoke default privileges first
ALTER DEFAULT PRIVILEGES IN SCHEMA public
REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLES FROM custom_instance_user;
REVOKE CREATE ON SCHEMA public FROM custom_instance_user;
REVOKE USAGE ON SCHEMA public FROM custom_instance_user;
DO $$
DECLARE
dbname text := current_database();
BEGIN
EXECUTE format('REVOKE CREATE ON DATABASE %I FROM custom_instance_user', dbname);
EXECUTE format('REVOKE CONNECT ON DATABASE %I FROM custom_instance_user', dbname);
END $$;
+7 -2
View File
@@ -703,7 +703,7 @@ async fn setup_custom_instance_pg_database_inner(
) -> Result<()> {
require_super_admin(db, &authed.email).await?;
logs.super_admin = "OK".to_string();
let pg_creds = PgDatabase::parse_uri(&get_database_url().await?.as_str().await)?;
let wmill_pg_creds = PgDatabase::parse_uri(&get_database_url().await?.as_str().await)?;
logs.database_credentials = "OK".to_string();
// Validate name to ensure it only contains alphanumeric characters
@@ -716,7 +716,7 @@ async fn setup_custom_instance_pg_database_inner(
"Catalog name must be alphanumeric, underscores allowed".to_string(),
));
}
if pg_creds.dbname.trim().eq_ignore_ascii_case(dbname.trim()) {
if wmill_pg_creds.dbname.trim().eq_ignore_ascii_case(dbname.trim()) {
return Err(error::Error::BadRequest(
"Database name cannot be the same as the main database".to_string(),
));
@@ -731,6 +731,11 @@ async fn setup_custom_instance_pg_database_inner(
.await?
.unwrap_or(false);
let pg_creds = PgDatabase {
dbname: dbname.to_string(),
..wmill_pg_creds
};
logs.created_database = "SKIP".to_string();
if !db_exists {
sqlx::query(&format!("CREATE DATABASE \"{dbname}\""))