Skip to content

Commit 06e8163

Browse files
committed
fix watch, add more grafana mappings, update ver
1 parent 4db6af2 commit 06e8163

11 files changed

Lines changed: 228 additions & 22 deletions

OpenFlow/src/DatabaseConnection.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -434,15 +434,17 @@ export class DatabaseConnection {
434434
});
435435
}
436436

437-
aggregates = JSON.parse(json, (key, value) => {
438-
if (typeof value === 'string' && value.match(isoDatePattern)) {
439-
return new Date(value); // isostring, so cast to js date
440-
} else if (value != null && value != undefined && value.toString().indexOf("__REGEXP ") == 0) {
441-
var m = value.split("__REGEXP ")[1].match(/\/(.*)\/(.*)?/);
442-
return new RegExp(m[1], m[2] || "");
443-
} else
444-
return value; // leave any other value as-is
445-
});
437+
if (!NoderedUtil.IsNullEmpty(json)) {
438+
aggregates = JSON.parse(json, (key, value) => {
439+
if (typeof value === 'string' && value.match(isoDatePattern)) {
440+
return new Date(value); // isostring, so cast to js date
441+
} else if (value != null && value != undefined && value.toString().indexOf("__REGEXP ") == 0) {
442+
var m = value.split("__REGEXP ")[1].match(/\/(.*)\/(.*)?/);
443+
return new RegExp(m[1], m[2] || "");
444+
} else
445+
return value; // leave any other value as-is
446+
});
447+
} else { aggregates = null; }
446448

447449
// TODO: Should we filter on rights other than read ? should a person with reade be allowed to know when it was updated ?
448450
// a person with read, would beablt to know anyway, so guess read should be enough for now ...

OpenFlow/src/OAuthProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ export class OAuthProvider {
193193
var role = "Viewer";
194194
user = TokenUser.From(user);
195195
if (user.HasRoleName("admins")) role = "Admin";
196+
if (user.HasRoleName("grafana editors")) role = "Editor";
197+
if (user.HasRoleName("grafana admins")) role = "Admin";
196198
var result = {
197199
code: code,
198200
client: this.clients[0],

OpenFlowNodeRED/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"name": "openflow-nodered",
3-
"version": "1.0.99",
3+
"version": "1.1.01",
44
"description": "Simple wrapper around NodeRed, RabbitMQ and MongoDB to support a more scaleable NodeRed implementation.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
55
"main": "index.js",
66
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
7+
"test": "echo \"Error: no test specified\" && exit 1",
8+
"postinstall": "node -e \"try{require('./postinstall')}catch(e){console.log(e)}\""
89
},
910
"repository": {
1011
"type": "git",

OpenFlowNodeRED/postinstall.js

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
/* Copy/anspired from https://github.com/nodemailer/nodemailer */
2+
/* eslint no-control-regex:0 */
3+
'use strict';
4+
5+
const packageData = require('./package.json');
6+
const isEnabled = value => !!value && value !== '0' && value !== 'false';
7+
const canUseColor = isEnabled(process.env.npm_config_color);
8+
9+
const title = `=== OpenFlow ${packageData.version} ===`;
10+
const text = `
11+
Thank you for using OpenFlow!
12+
> OpenFlow source ( https://github.com/open-rpa/openflow/ )
13+
> Community chat ( https://rocket.openiap.io/ )
14+
> Documentation ( https://docs.openiap.io/ )
15+
> commercial support ( https://openrpa.dk/ ) enterprise version also avaible
16+
`;
17+
18+
const secs = 4;
19+
20+
const formatCentered = (row, columns) => {
21+
if (columns <= row.length) {
22+
return row;
23+
}
24+
25+
return ' '.repeat(Math.round(columns / 2 - row.length / 2)) + row;
26+
};
27+
28+
const formatRow = (row, columns) => {
29+
if (row.length <= columns) {
30+
return [row];
31+
}
32+
// wrap!
33+
let lines = [];
34+
while (row.length) {
35+
if (row.length <= columns) {
36+
lines.push(row);
37+
break;
38+
}
39+
let slice = row.substr(0, columns);
40+
41+
let prefix = slice.charAt(0) === '>' ? ' ' : '';
42+
43+
let match = slice.match(/(\s+)[^\s]*$/);
44+
if (match && match.index) {
45+
let line = row.substr(0, match.index);
46+
row = prefix + row.substr(line.length + match[1].length);
47+
lines.push(line);
48+
} else {
49+
lines.push(row);
50+
break;
51+
}
52+
}
53+
return lines;
54+
};
55+
56+
57+
const concat = (x, y) => x.concat(y)
58+
59+
const flatMap = (f, xs) => xs.map(f).reduce(concat, [])
60+
61+
if (Array.prototype.flatMap === undefined) {
62+
Array.prototype.flatMap = function (f) {
63+
return flatMap(f, this)
64+
}
65+
}
66+
const wrapText = text => {
67+
let columns = Number(process.stdout.columns) || 80;
68+
columns = Math.min(columns, 80) - 1;
69+
70+
return (formatCentered(title, columns) + '\n' + text)
71+
.split('\n')
72+
.flatMap(row => formatRow(row, columns))
73+
.join('\n');
74+
try {
75+
} catch (error) {
76+
}
77+
};
78+
79+
const banner = wrapText(text)
80+
.replace(/^/gm, '\u001B[96m')
81+
.replace(/$/gm, '\u001B[0m')
82+
.replace(/(https:[^\s)]+)/g, '\u001B[94m $1 \u001B[96m');
83+
84+
85+
86+
console.log(canUseColor ? banner : banner.replace(/\u001B\[\d+m/g, ''));
87+
if (canUseColor) {
88+
process.stdout.write('\u001B[96m');
89+
}
90+
91+
setInterval(() => {
92+
process.stdout.write('.');
93+
}, 500);
94+
95+
setTimeout(() => {
96+
if (canUseColor) {
97+
process.stdout.write('\u001B[0m\n');
98+
}
99+
process.exit(0);
100+
}, secs * 1000 + 100);

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.99
1+
1.1.01

docker-compose-toolbox.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ services:
4545
- "traefik.http.routers.web.rule=Host(`toolbox.openrpa.dk`)"
4646
- "traefik.http.routers.web.entrypoints=web"
4747
- "traefik.frontend.passHostHeader=true"
48-
image: "cloudhack/openflow:1.0.87"
48+
image: "cloudhack/openflow:1.1.01"
4949
container_name: "web"
5050
environment:
5151
- update_acl_based_on_groups=true
@@ -82,7 +82,7 @@ services:
8282
- "traefik.http.routers.nodered.rule=Host(`nodered1.toolbox.openrpa.dk`)"
8383
- "traefik.http.routers.nodered.entrypoints=web"
8484
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
85-
image: "cloudhack/openflownodered:1.0.87"
85+
image: "cloudhack/openflownodered:1.1.01"
8686
container_name: "nodered"
8787
environment:
8888
# - nodered_id=1

docker-compose-traefik-letsencrypt.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ services:
6969
- "traefik.http.routers.web.entrypoints=web,websecure"
7070
- "traefik.frontend.passHostHeader=true"
7171
- "traefik.http.routers.web.tls.certresolver=myresolver"
72-
image: "cloudhack/openflow:1.0.87"
72+
image: "cloudhack/openflow:1.1.01"
7373
container_name: "web"
7474
environment:
7575
- update_acl_based_on_groups=true
@@ -107,7 +107,7 @@ services:
107107
- "traefik.http.routers.nodered.entrypoints=web,websecure"
108108
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
109109
- "traefik.http.routers.nodered.tls.certresolver=myresolver"
110-
image: "cloudhack/openflownodered:1.0.87"
110+
image: "cloudhack/openflownodered:1.1.01"
111111
container_name: "nodered"
112112
environment:
113113
# - nodered_id=1

docker-compose-traefik.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ services:
4545
- "traefik.http.routers.web.rule=Host(`localhost.openrpa.dk`)"
4646
- "traefik.http.routers.web.entrypoints=web"
4747
- "traefik.frontend.passHostHeader=true"
48-
image: "cloudhack/openflow:1.0.87"
48+
image: "cloudhack/openflow:1.1.01"
4949
container_name: "web"
5050
environment:
5151
- update_acl_based_on_groups=true
@@ -82,7 +82,7 @@ services:
8282
- "traefik.http.routers.nodered.rule=Host(`nodered1.localhost.openrpa.dk`)"
8383
- "traefik.http.routers.nodered.entrypoints=web"
8484
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
85-
image: "cloudhack/openflownodered:1.0.87"
85+
image: "cloudhack/openflownodered:1.1.01"
8686
container_name: "nodered"
8787
environment:
8888
# - nodered_id=1

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ services:
1818
- "5672:5672"
1919
- "15672:15672"
2020
web:
21-
image: "cloudhack/openflow:1.0.87"
21+
image: "cloudhack/openflow:1.1.01"
2222
environment:
2323
- update_acl_based_on_groups=true
2424
- multi_tenant=false
@@ -52,7 +52,7 @@ services:
5252
- "80:80"
5353
- "5858:5858"
5454
nodered:
55-
image: "cloudhack/openflownodered:1.0.87"
55+
image: "cloudhack/openflownodered:1.1.01"
5656
environment:
5757
# - nodered_id=1
5858
- nodered_sa=nodered1

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
22
"name": "openiap",
3-
"version": "1.0.99",
3+
"version": "1.1.01",
44
"description": "Simple wrapper around NodeRed, RabbitMQ and MongoDB to support a more scaleable NodeRed implementation.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
55
"main": "index.js",
66
"scripts": {
77
"test": "echo \"Error: no test specified\" && exit 1",
8-
"build": "webpack --mode production"
8+
"build": "webpack --mode production",
9+
"postinstall": "node -e \"try{require('./postinstall')}catch(e){console.log(e)}\""
910
},
1011
"repository": {
1112
"type": "git",

0 commit comments

Comments
 (0)