addition of new dashboard

This commit is contained in:
2026-08-20 15:08:32 +00:00
parent 0622018d95
commit bf59249ed7
161 changed files with 13170 additions and 119 deletions

View File

@@ -0,0 +1,63 @@
import { getConfig } from "../../common/config.js";
import axios from 'axios';
import { v4 as uuidv4 } from 'uuid';
export async function init() {
const config = getConfig();
// No initialization required
}
export async function check(req) {
// Ref:
// ----
// curl -X POST http://localhost:3592/api/check/resources \
// -H "Content-Type: application/json" \
// -d '{
// "requestId": "test-check-1",
// "principal": {
// "id": "user123",
// "roles": ["user"]
// },
// "resources": [
// {
// "resource": {
// "kind": "privateData",
// "id": "record001",
// "attr": {}
// },
// "actions": ["read"]
// }
// ]
// }'
const r = {
requestId: uuidv4(),
principal: {
id: req.subject.id,
roles: [req.subject.type]
},
resources: [
{
resource: {
kind: req.resource.type,
id: req.resource.id,
attr: {}
},
actions: [req.action.name]
}
]
}
if (req.resource.properties.ownerID) {
r.resources[0].resource.attr = { owner: req.resource.properties.ownerID }
}
const config = getConfig();
const result = await axios.post(
`${config.pdpUrl}/api/check/resources`,
r,
)
console.log(`Auth check: ${JSON.stringify(result.data)}`);
if (result.data?.results[0]?.actions[req.action.name] === 'EFFECT_ALLOW') {
return true;
}
return false;
}

View File

@@ -0,0 +1,35 @@
import { getConfig } from "../../common/config.js";
let evaluator;
export async function loadPep(app) {
const config = getConfig();
if (config.pdpType) {
const pepModulePath = `./${config.pdpType}.js`;
const { init, check } = await import(pepModulePath);
await init();
// // Follow AuthZEN base format
// // {
// // subject: {
// // type: "user",
// // id: "1abc",
// // },
// // action: {
// // name: "read"
// // },
// // resource: {
// // type: "data",
// // id: "2def",
// // properties: {
// // ownerID: "my@me.com"
// // }
// // }
// // }
evaluator = check;
}
}
export async function evaluate(req) {
return await evaluator(req);
}