mindspace: close authority boundaries

This commit is contained in:
john
2026-07-27 15:34:35 +08:00
parent dfab78c75a
commit e94052ff24
78 changed files with 11962 additions and 2162 deletions
+52 -1
View File
@@ -5,6 +5,9 @@ import os from 'node:os';
import path from 'node:path';
import test from 'node:test';
import { Algorithm as Argon2Algorithm, hashRawSync as argon2HashRawSync } from '@node-rs/argon2';
import {
verifyMindSpaceMcpScopedToken,
} from './mindspace-mcp-scoped-token.mjs';
import { createUserAuth, clearUserLogoutCookies, userLoginCookies } from './user-auth.mjs';
test('ensureAllUserDataSpaces provisions every active non-admin user', async () => {
@@ -164,7 +167,19 @@ function createAgentPolicyPool(userRow) {
if (sql.includes('FROM h5_assets a') && sql.includes('JOIN h5_space_categories')) {
return [[]];
}
if (sql.includes('FROM h5_user_capability_grants')) return [[]];
if (
sql.includes(
'FROM h5_capability_grants',
)
) {
return [[
{
capability_key:
'static_publish',
allowed: 1,
},
]];
}
if (sql.includes('FROM h5_user_policy_grants')) return [[]];
if (sql.includes('FROM h5_user_skill_grants')) return [[]];
if (sql.includes('UPDATE h5_users SET workspace_root = ?')) {
@@ -410,6 +425,10 @@ test('agent session policy preserves sandbox root and exposes workspace ref meta
H5_PORTAL_BASE_URL: 'http://127.0.0.1:18131',
H5_PORT: '18131',
MEMIND_PAGE_DATA_DELIVERY_BASE_URL: 'http://127.0.0.1:18131',
MINDSPACE_MCP_BASE_URL:
'http://mindspace.internal:8082',
MINDSPACE_MCP_TOKEN_SECRET:
'mindspace-user-auth-secret-1234',
},
});
@@ -429,6 +448,38 @@ test('agent session policy preserves sandbox root and exposes workspace ref meta
sandboxFs.envs.MEMIND_PAGE_DATA_DELIVERY_BASE_URL,
'http://127.0.0.1:18131',
);
assert.equal(
sandboxFs.envs.MINDSPACE_MCP_SCOPED_TOKEN,
undefined,
);
const scopedPolicy =
await auth.getAgentSessionPolicy(
userRow.id,
{ sessionId: 'session-1' },
);
const scopedSandbox =
scopedPolicy.extensionOverrides.find(
(item) => item.name === 'sandbox-fs',
);
const claims =
verifyMindSpaceMcpScopedToken({
token:
scopedSandbox.envs
.MINDSPACE_MCP_SCOPED_TOKEN,
secret:
'mindspace-user-auth-secret-1234',
tool: 'write_file',
});
assert.equal(
scopedSandbox.envs.MINDSPACE_PACKAGE_ID,
'cp_session-1',
);
assert.equal(claims.sessionId, 'session-1');
assert.equal(
claims.workspaceRef,
'mindspace://users/user-1/workspace',
);
});
test('admin capabilities include granted platform skills', async () => {