feat(mindspace): enforce PostgreSQL user data delivery

This commit is contained in:
john
2026-07-13 15:29:29 +08:00
parent b33c943b69
commit a6620fb719
57 changed files with 2779 additions and 164 deletions
+26
View File
@@ -7,6 +7,32 @@ import test from 'node:test';
import { Algorithm as Argon2Algorithm, hashRawSync as argon2HashRawSync } from '@node-rs/argon2';
import { createUserAuth, clearUserLogoutCookies, userLoginCookies } from './user-auth.mjs';
test('ensureAllUserDataSpaces provisions every active non-admin user', async () => {
const calls = [];
const pool = {
async query(sql) {
if (sql.includes("WHERE role = 'user' AND status = 'active'")) {
return [[
{ id: 'user-1', workspace_root: '/tmp/user-1' },
{ id: 'user-2', workspace_root: '/tmp/user-2' },
]];
}
return [[]];
},
};
const auth = createUserAuth(pool, {
persistSessions: false,
provisionUserDataSpace: async (input) => calls.push(input),
});
const result = await auth.ensureAllUserDataSpaces();
assert.equal(result.provisioned, 2);
assert.deepEqual(result.errors, []);
assert.deepEqual(calls, [
{ userId: 'user-1', workspaceRoot: '/tmp/user-1' },
{ userId: 'user-2', workspaceRoot: '/tmp/user-2' },
]);
});
function hashPasswordPbkdf2(password, salt) {
return crypto.pbkdf2Sync(password, salt, 100000, 64, 'sha512').toString('hex');
}