Compare commits

...

2 Commits

Author SHA1 Message Date
a8223d110b fix 2020-01-21 18:25:35 +01:00
207c7c3ba9 add log clearing, client restriction 2020-01-21 16:14:53 +01:00
4 changed files with 28 additions and 28 deletions

View File

@ -6,5 +6,11 @@
"password": "12345",
"database": "appreports"
},
"port": "8080"
"port": "8080",
"restrictClients": false,
"allowedClients": [
"127.0.0.1",
"::1"
],
"clearLogAfterDays": -1
}

View File

@ -27,11 +27,7 @@ app.use(bodyParser.text({ type: '*/*' }));
app.post('/', (req, res, next) => {
const json = tryParseJSON(req.body);
if (typeof req.query.json != 'undefined') {
switch (json.action) {
case 'delete': {
pg.query('DELETE FROM "Log" WHERE ID = $1', json.data);
}
}
//json mod requests
} else {
pg.query(
`INSERT INTO "Log" ("App", "Type", "Client", "Message", "Misc", "Stack") Values($1, $2, $3, $4, $5, $6)`,
@ -44,6 +40,15 @@ app.post('/', (req, res, next) => {
app.get('/', async (req, res, next) => {
if (typeof req.query.json != 'undefined') {
if (
config.restrictClients &&
!config.allowedClients.includes(req.connection.remoteAddress)
) {
console.log('blocked request from ' + req.connection.remoteAddress);
res.status(403).end();
return;
}
const data = await pg.query(
`SELECT "ID", "Timestamp", "Type", "App", "Client", "Message", "Misc", "Stack" FROM "Log"`
);
@ -59,6 +64,11 @@ app.get('/', async (req, res, next) => {
.end(
JSON.stringify({ headings: headings, data: rows, hidden: hiddenData })
);
try {
const clearLogInterval = Number.parseInt(config.clearLogAfterDays);
if (clearLogInterval > 0)
await pg.query(`DELETE FROM "Log" WHERE "Timestamp" < now() - interval '${clearLogInterval} days'`);
} catch (e) {}
} else {
next();
}

View File

@ -8,7 +8,12 @@
:key="key"
>{{value}}</th>
</tr>
<Item v-for="(row,rowKey) in json.data" :key=rowKey :data=row :hidden=json.hidden></Item>
<tr v-for="(row,rowKey) in json.data" :key=rowKey>
<td
v-for="(value,key) in row.filter((val,ind)=>!json.hidden.includes(ind))"
:key="key"
>{{value}}</td>
</tr>
</table>
</div>
<br />

View File

@ -1,21 +0,0 @@
<template>
<tr id="item">
<td
v-for="(value,key) in data.filter((val,ind)=>!hidden.includes(ind))"
:key="key"
>{{value}}</td>
</tr>
</template>
<script>
export default {
name: "Item",
properties: {
data: Object,
hidden: Array
}
};
</script>
<style scoped>
</style>