|
|
|
@@ -0,0 +1,29 @@ |
|
|
|
import pg from "pg"; |
|
|
|
|
|
|
|
const client = new pg.Client({ |
|
|
|
host: process.env.PROVISION_HOST, |
|
|
|
port: parseInt(process.env.PROVISION_PORT ?? "5432"), |
|
|
|
user: process.env.PROVISION_USER, |
|
|
|
password: process.env.PROVISION_PASSWORD, |
|
|
|
database: process.env.PROVISION_DATABASE, |
|
|
|
}); |
|
|
|
|
|
|
|
await client.connect(); |
|
|
|
|
|
|
|
try { |
|
|
|
// The HAL postgres provisioner names the app user identically to the database. |
|
|
|
// PROVISION_DATABASE = "txt_game_scores" = the app user that server.mjs connects as. |
|
|
|
const appUser = process.env.PROVISION_DATABASE as string; |
|
|
|
|
|
|
|
await client.query( |
|
|
|
`GRANT SELECT, INSERT, UPDATE ON TABLE players, games TO "${appUser}"` |
|
|
|
); |
|
|
|
|
|
|
|
await client.query( |
|
|
|
`GRANT USAGE, SELECT ON SEQUENCE games_id_seq TO "${appUser}"` |
|
|
|
); |
|
|
|
|
|
|
|
console.log(`[txt-game migration-001] permissions granted to ${appUser}`); |
|
|
|
} finally { |
|
|
|
await client.end(); |
|
|
|
} |