Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0 release #479

Merged
merged 276 commits into from
Jun 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
5bfa7aa
added
Jul 4, 2023
cdfcb93
Merge pull request #334 from mStirner/dev
mStirner Jul 4, 2023
965aa04
Update docker-nightly.yml
mStirner Jul 4, 2023
e8a9169
Merge pull request #336 from OpenHausIO/dependabot/npm_and_yarn/fast-…
mStirner Jul 4, 2023
c929d88
fix #339
mStirner Oct 2, 2023
57a4c41
notes added
mStirner Oct 2, 2023
2de8f4c
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Oct 2, 2023
e3fe10a
test fix for #341
mStirner Oct 2, 2023
fa57636
test fix #341
mStirner Oct 2, 2023
b70543a
fix #343
mStirner Oct 3, 2023
aa17caf
updated newman & nodemon
mStirner Oct 3, 2023
20e91f8
Merge pull request #342 from mStirner/dev
mStirner Oct 9, 2023
417dd00
close handler added. See #337
mStirner Oct 28, 2023
75e27c7
Merge branch 'OpenHausIO:dev' into dev
mStirner Oct 28, 2023
2f73884
Merge pull request #344 from mStirner/dev
mStirner Oct 28, 2023
bad9712
fix #87
mStirner Nov 16, 2023
aaa33a4
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Nov 16, 2023
d5ead04
Merge branch 'OpenHausIO:dev' into dev
mStirner Nov 16, 2023
d1edd64
Merge pull request #348 from mStirner/dev
mStirner Nov 16, 2023
6582612
banner option draft added
mStirner Nov 25, 2023
d0a2c3e
fix #350
mStirner Dec 16, 2023
ef9bcc4
fix #351
mStirner Dec 17, 2023
8680074
fix #355
mStirner Dec 17, 2023
3d77e55
added
mStirner Dec 17, 2023
45d0e8e
`npm run dev:plugin` script added
mStirner Dec 17, 2023
877ab46
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Dec 17, 2023
87b1344
Merge branch 'OpenHausIO:dev' into dev
mStirner Dec 17, 2023
1692b32
Merge pull request #357 from mStirner/dev
mStirner Dec 17, 2023
400ff50
error fix
mStirner Dec 17, 2023
befa4d8
fix #353
mStirner Dec 17, 2023
24a2e62
fix #359
mStirner Dec 17, 2023
d5207ba
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Dec 17, 2023
7b5dcc7
Merge branch 'OpenHausIO:dev' into dev
mStirner Dec 17, 2023
c193a9c
Merge pull request #360 from mStirner/dev
mStirner Dec 17, 2023
e1051ce
fix #358
Dec 19, 2023
953e8ed
Hot fix for #362
Dec 19, 2023
9bcdf1b
fix #364
Dec 19, 2023
7ac1d16
fix #365
Dec 19, 2023
1a6da10
minor fix for http api test
Dec 19, 2023
f46e74b
fix #367
Dec 19, 2023
579db45
fix #366
Dec 19, 2023
17a5c19
fix #287 & fix #368
Dec 19, 2023
a796cb2
fix #363
Dec 20, 2023
1cf51d0
fix minor bug: "`tar.stdin.end()` is not a function"
Dec 20, 2023
eb991e4
updated
Dec 20, 2023
a5fd58b
add http test, fix #370
Dec 20, 2023
ed8a949
Merge pull request #371 from mStirner/dev
mStirner Dec 20, 2023
a67f7d4
fix endless running test
Dec 20, 2023
dd1f15a
test fix
Dec 20, 2023
2a9b2c0
fix githu actions
Dec 20, 2023
5d7296f
github actions test
Dec 20, 2023
3f02b3f
github actions test
Dec 20, 2023
8470769
test github actions
Dec 20, 2023
c5e7fdb
test github actions
Dec 20, 2023
87049bb
test github actions
Dec 20, 2023
e8cede4
logfile routes removed due to #346
Dec 20, 2023
5e532b1
Merge pull request #373 from mStirner/dev
mStirner Dec 20, 2023
d00f56c
fix #356
mStirner Dec 20, 2023
2a17e8c
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Dec 20, 2023
2bd51a6
Merge pull request #374 from mStirner/dev
mStirner Dec 20, 2023
542c1cd
`npm run dev` ignore plugin changes
Dec 21, 2023
db87980
Merge branch 'dev' of github.com:mStirner/backend into dev
Dec 21, 2023
aed5311
removed report output
Dec 21, 2023
33d1849
Merge pull request #375 from mStirner/dev
mStirner Dec 21, 2023
6d3782a
Merge branch 'dev' of github.com:mStirner/backend into dev
Dec 21, 2023
70a747d
Merge pull request #376 from mStirner/dev
mStirner Dec 21, 2023
4c283b5
Test for label array added
Dec 21, 2023
7863bb2
unit test added
Dec 21, 2023
ba2df91
refactor label array, fix #352
Dec 22, 2023
fdced80
fix #378
Dec 22, 2023
b6e6766
labels added
Dec 22, 2023
1251bd5
Merge branch 'dev' of github.com:mStirner/backend into dev
Dec 22, 2023
37fb4c2
Merge pull request #379 from mStirner/dev
mStirner Dec 22, 2023
a500662
minor bug fix
Dec 22, 2023
8644b92
Merge branch 'dev' of github.com:mStirner/backend into dev
Dec 22, 2023
fd6a608
fix #380
Dec 23, 2023
4f627f6
Undo last change
Dec 23, 2023
75018bd
fix #381
mStirner Dec 24, 2023
9df38b7
fix #383
mStirner Dec 29, 2023
2b24291
minor bug fix
mStirner Dec 29, 2023
6c2e54c
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Dec 29, 2023
97c7a42
Merge pull request #384 from mStirner/dev
mStirner Dec 29, 2023
5490860
added `includes` method
mStirner Dec 29, 2023
5f4ebb4
fix #306
mStirner Dec 29, 2023
8122b54
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Dec 29, 2023
abc4dfb
Merge pull request #385 from mStirner/dev
mStirner Dec 29, 2023
5dfbb3f
fix #182
mStirner Dec 29, 2023
c810790
fix #388
mStirner Dec 30, 2023
28108d5
fix #389
mStirner Dec 30, 2023
185a480
Merge pull request #391 from mStirner/dev
mStirner Dec 30, 2023
6a27f2d
fix #392
mStirner Jan 2, 2024
fb56fec
fix #394
Jan 3, 2024
1559096
fix #392
Jan 3, 2024
e6c838c
fix #395
Jan 3, 2024
451fa5e
note added
Jan 4, 2024
5e32c4f
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 4, 2024
71bdafb
Merge pull request #397 from mStirner/dev
mStirner Jan 4, 2024
0c86b89
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Jan 4, 2024
6fe28fc
fix #390
mStirner Jan 7, 2024
e57526c
fixed
mStirner Jan 7, 2024
27420db
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 8, 2024
f2953ad
Merge pull request #400 from mStirner/dev
mStirner Jan 8, 2024
0645228
fix #401
Jan 10, 2024
5dbe58f
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 10, 2024
322fa71
Merge pull request #404 from mStirner/dev
mStirner Jan 10, 2024
4695f97
fix #401
Jan 10, 2024
0e1ac6e
Merge branch 'dev' of github.com:mStirner/backend into dev
Jan 10, 2024
696134c
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 10, 2024
d4de95a
Merge pull request #405 from mStirner/dev
mStirner Jan 10, 2024
c085e5d
fix #408
mStirner Jan 12, 2024
4f04704
updated
mStirner Jan 12, 2024
cbda9e9
error fix
mStirner Jan 12, 2024
8d26179
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 12, 2024
c5520a7
Merge pull request #410 from mStirner/dev
mStirner Jan 12, 2024
0574805
fix #406
Jan 13, 2024
6489b7c
fix #411
Jan 16, 2024
a9c417f
fix #412
Jan 16, 2024
00b0f24
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 16, 2024
8d5b9aa
Merge pull request #413 from mStirner/dev
mStirner Jan 16, 2024
6a1ed51
fix #409
Jan 16, 2024
bee06c1
Merge branch 'dev' of github.com:mStirner/backend into dev
Jan 16, 2024
b65819c
log format changed
Jan 16, 2024
6662c0d
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 16, 2024
0dedbc7
Merge pull request #414 from mStirner/dev
mStirner Jan 16, 2024
da79aef
fix #393
Jan 16, 2024
4913c77
Merge branch 'dev' of github.com:mStirner/backend into dev
Jan 16, 2024
fbdc4c4
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 16, 2024
5209ec9
Merge pull request #415 from mStirner/dev
mStirner Jan 16, 2024
ef4cab2
removed `console.log`
mStirner Jan 16, 2024
6e54a6f
switched to husky foy git hooks, fix #398
mStirner Jan 16, 2024
6ab36f8
remove post install script
mStirner Jan 16, 2024
7c33eac
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 16, 2024
cd8f231
Merge pull request #416 from mStirner/dev
mStirner Jan 16, 2024
702a008
Revert "Switched to husky & removed `console.log`"
mStirner Jan 16, 2024
331ca52
Merge pull request #417 from OpenHausIO/revert-416-dev
mStirner Jan 16, 2024
bf24ffe
removed due to moving to husky
Jan 17, 2024
bd518d0
husky added, fix #398
Jan 17, 2024
3161587
Merge branch 'dev' of github.com:mStirner/backend into dev
Jan 17, 2024
3f05d5c
Merge pull request #418 from mStirner/dev
mStirner Jan 17, 2024
b9a4218
removed `console.log`
mStirner Jan 19, 2024
01d8a6f
fix #419
mStirner Jan 19, 2024
30b80b8
fix #407 & #420
mStirner Jan 19, 2024
502c214
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 20, 2024
59c02ee
Merge pull request #421 from mStirner/dev
mStirner Jan 20, 2024
5969836
fix #345
mStirner Jan 21, 2024
c009482
note added
mStirner Jan 21, 2024
9acaf2e
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Jan 21, 2024
11aaca7
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 21, 2024
dd96f09
Merge pull request #422 from mStirner/dev
mStirner Jan 21, 2024
79b5ffe
keep as backup
Jan 25, 2024
72a122e
refactored, fix#424
Jan 25, 2024
18cc962
remove unecessary `console.log(...)`
Jan 25, 2024
5f56aaf
fix #425
Jan 25, 2024
35852a6
`console.log(...)` removed
mStirner Jan 25, 2024
5d31603
fix #423
mStirner Jan 25, 2024
94d71d8
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 25, 2024
9629630
Merge pull request #427 from mStirner/dev
mStirner Jan 25, 2024
786008f
removed `console.log(...)`
Jan 30, 2024
197ad4c
fix #430
mStirner Jan 30, 2024
95be13a
fix workflow file syntax
mStirner Jan 30, 2024
d0668c2
fix workflow file
mStirner Jan 30, 2024
a00e0ec
Merge branch 'OpenHausIO:dev' into dev
mStirner Jan 30, 2024
d5ad132
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Jan 30, 2024
bb86465
fix #430
mStirner Jan 30, 2024
efce07f
Merge pull request #431 from mStirner/dev
mStirner Jan 30, 2024
9a8ac0e
`TODO` added, see #426
Jan 31, 2024
9502638
Signal handling and error message improved
Jan 31, 2024
666a90d
note for #331 added
Jan 31, 2024
c016972
improve router/signal handling
Jan 31, 2024
db95ea3
Merge branch 'dev' of github.com:mStirner/backend into dev
Jan 31, 2024
6acdc25
version updated
Jan 31, 2024
3e5f9b8
restored, see #434
Feb 1, 2024
a4271ea
updated
Feb 1, 2024
8f61a16
fix #435
Feb 1, 2024
5a09bf3
Merge pull request #433 from mStirner/dev
mStirner Feb 1, 2024
3a9b524
fix #387
Feb 13, 2024
a94e94a
improved param type handling
Feb 13, 2024
a55b5b6
Merge branch 'OpenHausIO:dev' into dev
mStirner Feb 13, 2024
80fd549
todo note added
Feb 13, 2024
0b2c0d6
note added
Feb 13, 2024
77b6d54
added "description" field to schema. see #429
Feb 13, 2024
0b22011
Merge branch 'dev' of github.com:mStirner/backend into dev
Feb 13, 2024
c7946a5
see #426
Feb 13, 2024
949e356
`TODO` added, see #426
Feb 13, 2024
29f6017
Merge pull request #437 from mStirner/dev
mStirner Feb 28, 2024
11b1fbd
run only on merged pr's
Feb 29, 2024
b05a508
trigger changed
Feb 29, 2024
84e8097
Merge pull request #441 from mStirner/dev
mStirner Feb 29, 2024
d17066b
Merge pull request #442 from mStirner/dev
mStirner Feb 29, 2024
7b9b80e
fix #403 (remaining tasks)
mStirner Apr 13, 2024
0cf8232
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Apr 13, 2024
d37fbb9
fix #445
mStirner Apr 13, 2024
6532c76
Merge branch 'OpenHausIO:dev' into dev
mStirner Apr 13, 2024
646eea7
note added see
mStirner Apr 18, 2024
36d4877
`/system` route draft - see #347
Apr 25, 2024
497bdf1
depreaction notice added
Apr 25, 2024
c1f66a7
moved `/api/logs` to `/api/system/logs`
Apr 25, 2024
5232b00
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner Apr 25, 2024
ee80f25
fix #354, see #347
mStirner Apr 28, 2024
b5682ed
fix #451
mStirner Apr 28, 2024
4022b75
added, see #347
mStirner Apr 28, 2024
e90711b
`/api/system/notifications` added
mStirner Apr 28, 2024
cb37c85
comment added
mStirner Apr 28, 2024
2236c30
comment added
Apr 29, 2024
320158a
added "exporter" stream
mStirner Apr 30, 2024
e103c37
splittet &added `/versions/ & `/usage` routes
mStirner Apr 30, 2024
33c3a4e
refactored/improved, see #347
mStirner May 1, 2024
18214da
remove 'console.log' & added "consumer" check for stream
mStirner May 3, 2024
0c411ed
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner May 3, 2024
2524cc6
websocket endpont improved
mStirner May 3, 2024
ca3468b
note added
mStirner May 4, 2024
4f5afb6
fix #444 & fix #436
mStirner May 4, 2024
641640c
renamed
mStirner May 6, 2024
5bd8e97
updated import
mStirner May 6, 2024
07245e2
note added
mStirner May 8, 2024
b8f5200
Merge pull request #452 from mStirner/dev
mStirner May 8, 2024
02ed893
fix #443
May 23, 2024
422136c
improved
May 23, 2024
3d6bd39
version pumped from `v16` to `v20`
May 23, 2024
2c643fb
version pumped from `v16` to `v20`, see #459
May 23, 2024
74c6008
Merge branch 'dev' of github.com:mStirner/backend into dev
May 23, 2024
c9fc8af
`injectMethod` added, see #463
May 24, 2024
0e65d1c
check added
May 24, 2024
5ebf65f
Merge branch 'dev' of github.com:mStirner/backend into dev
mStirner May 25, 2024
5783cc6
header & note added
mStirner May 25, 2024
57c730f
comment/note added
mStirner May 25, 2024
fe8c2a9
fix #460
mStirner May 25, 2024
4c32a6f
note added
mStirner May 25, 2024
72fcfb6
removed test
mStirner May 25, 2024
9b0de28
fix #462
mStirner May 25, 2024
a4f381f
fix #464
mStirner May 26, 2024
518bf50
improved
mStirner May 26, 2024
60cde33
updated
mStirner May 26, 2024
fc1eb7b
fix #462
mStirner May 26, 2024
4472b5c
minor bug fix
mStirner May 26, 2024
500f0b8
Merge pull request #465 from mStirner/dev
mStirner May 30, 2024
154d144
fix #468
mStirner May 30, 2024
d7f8804
note added
mStirner May 31, 2024
f48f85b
typo fixed
mStirner May 31, 2024
2d02fc9
fix #472
mStirner May 31, 2024
a8b1192
fix #471
mStirner May 31, 2024
b96a1bb
Merge pull request #473 from mStirner/dev
mStirner May 31, 2024
1702bde
updated
mStirner May 31, 2024
fd9c389
test updates
mStirner May 31, 2024
0901574
removed http tests
mStirner May 31, 2024
4b7cdaa
fix #455
mStirner Jun 3, 2024
be3a847
comment added
mStirner Jun 15, 2024
5c2b48f
Merge pull request #474 from mStirner/dev
mStirner Jun 16, 2024
2d5deee
Bumped version to `3.0.0`
mStirner Jun 16, 2024
fb865c7
Merge pull request #478 from mStirner/dev
mStirner Jun 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/docker-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Publish Docker nightly image

on:
pull_request:
types:
- closed
branches:
- dev

jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
if: github.repository == 'OpenHausIO/backend' && github.event.pull_request.merged == true
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- run: npm ci
- run: npm run build

- name: Log in to Docker Hub
uses: docker/login-action@v3.0.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5.5.0
with:
images: openhaus/backend

- name: Build and push Docker image
uses: docker/build-push-action@v5.1.0
with:
context: .
file: ./Dockerfile
push: true
tags: openhaus/backend:nightly
labels: ${{ steps.meta.outputs.labels }}
6 changes: 3 additions & 3 deletions .github/workflows/node-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
node-version: [16.x, 17.x, 18.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [16.x, 18.x, 20.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
mongodb-version: ["4.2", "4.4", "5.0"]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

# mongodb setup
- name: Start MongoDB
Expand All @@ -41,7 +41,7 @@ jobs:

# node.js setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
Expand Down
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run lint
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# https://medium.com/@kahana.hagai/docker-compose-with-node-js-and-mongodb-dbdadab5ce0a

# The instructions for the first stage
FROM node:16-alpine as builder
FROM node:20-alpine as builder

ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
Expand All @@ -22,7 +22,7 @@ RUN npm install


# The instructions for second stage
FROM node:16-alpine
FROM node:20-alpine

WORKDIR /opt/OpenHaus/backend
COPY --from=builder node_modules node_modules
Expand Down
11 changes: 10 additions & 1 deletion Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ module.exports = function (grunt) {
options: {
mangle: {
toplevel: true
}
},
//banner: fs.readFileSync(path.join(process.cwd(), "docs/banner.txt"), "utf8")
},
build: {
files: [{
Expand Down Expand Up @@ -99,10 +100,18 @@ module.exports = function (grunt) {
stdio: "inherit"
});

// remove build, use taggin. see: #451
/*
cp.execSync(`docker build . -t openhaus/${pkg.name}:latest ${buildArgs}`, {
env: process.env,
stdio: "inherit"
});
*/

cp.execSync(`docker image tag openhaus/${pkg.name}:${pkg.version} openhaus/${pkg.name}:latest`, {
env: process.env,
stdio: "inherit"
});

});

Expand Down
38 changes: 38 additions & 0 deletions ISSUES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
```systemd
[Unit]
Description=firewalld - dynamic firewall daemon
Before=network-pre.target
Wants=network-pre.target
After=dbus.service
After=polkit.service
Conflicts=iptables.service ip6tables.service ebtables.service ipset.service nftables.service
Documentation=man:firewalld(1)

[Service]
EnvironmentFile=-/etc/sysconfig/firewalld
ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
# supress to log debug and error output also to /var/log/messages
StandardOutput=null
StandardError=null
Type=dbus
BusName=org.fedoraproject.FirewallD1
KillMode=mixed

[Install]
WantedBy=multi-user.target
Alias=dbus-org.fedoraproject.FirewallD1.service
```

https://systemd-devel.freedesktop.narkive.com/dpY7US7K/a-little-help-with-mainpid-please


OpenHaus relevant/verbesserung?!


----------------

Use husky for git hooks?

https://www.npmjs.com/package/husky
https://typicode.github.io/husky/
3 changes: 2 additions & 1 deletion adapter/eol.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module.exports = (options = {}) => {
// https://github.com/OpenHausIO/backend/issues/315
let cr = Buffer.from("\r");
let lf = Buffer.from("\n");
//let eol = Buffer.from("\x1A");
//let eof = Buffer.from("\x1A");
let nl = Buffer.concat([
cr,
lf
Expand All @@ -25,6 +25,7 @@ module.exports = (options = {}) => {
let decode = new Transform({
transform(chunk, encoding, cb) {
log.trace("[encode] (%s) %j", encoding, chunk);
// NOTE (mstirner) is this right?
cb(null, chunk.subarray(0, nl.length));
},
...options
Expand Down
13 changes: 8 additions & 5 deletions backend.service
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
[Unit]
Description=OpenHaus Backend
Documentation=https://docs.open-haus.io
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/node /opt/OpenHaus/backend/index.js
WorkingDirectory=/opt/OpenHaus/backend
Restart=always
EnvironmentFile=/opt/OpenHaus/backend/.env
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
Environment=VAULT_MASTER_PASSWORD=Pa$$w0rd
Environment=USERS_JWT_SECRET=Pa$$w0rd
Environment=UUID=00000000-0000-0000-0000-000000000000
Type=simple
#Environment=NODE_ENV=production
#Environment=VAULT_MASTER_PASSWORD=Pa$$w0rd
#Environment=USERS_JWT_SECRET=Pa$$w0rd
#Environment=UUID=00000000-0000-0000-0000-000000000000

[Install]
WantedBy=multi-user.target
63 changes: 59 additions & 4 deletions components/devices/class.device.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
const Joi = require("joi");
const mongodb = require("mongodb");

const InterfaceStream = require("./class.interfaceStream.js");
const Interface = require("./class.interface.js");
const Item = require("../../system/component/class.item.js");

const mixins = require("../../helper/mixins.js");
const injectMethod = require("../../helper/injectMethod.js");

//const { parse, calculateChecksum } = require("./net-helper.js");

/**
* @description
Expand All @@ -20,17 +27,25 @@ const mixins = require("../../helper/mixins.js");
* @see interface components/devices/class.interface.js
* @see interfaceStream components/devices/class.interfaceStream.js
*/
module.exports = class Device {
constructor(props) {
module.exports = class Device extends Item {
constructor(props, scope) {

super(props);

// removed for #356
// set properties from db
Object.assign(this, props);
this._id = String(props._id);
//Object.assign(this, props);
//this._id = String(props._id);

// create for each interface a interface class instance
// for each interface class, create a interface stream
this.interfaces = props.interfaces.map((obj) => {


// NOTE: refactor interfaceStream in v4
// move .bridge method there and pass device instance?
// > Would this also create a ciruclar reference in Interface class
// > since its stored via `Object.defineProperty(this, "stream",...);`
let stream = new InterfaceStream({
// duplex stream options
emitClose: false
Expand All @@ -43,6 +58,21 @@ module.exports = class Device {
let iface = new Interface(obj, stream);


// inject bridge method into interface instance
// passing deivce instance into Interface class, creates a ciruclar reference
// TODO: Move this into "interfaceStream" (needs to be refactored)
// NOTE: remove "device" for bridging requests (only needed in connector)?
// > See: https://github.com/OpenHausIO/connector/issues/54
// > When done, "device" property can be removed, and the `.bridge()` method can be moved into Interface class
injectMethod(iface, "bridge", (cb) => {
return Interface._bridge({
events: scope.events,
interface: iface,
device: this._id
}, cb);
});


// "hide" stream behind iface object
// so we can use the interface object
// as duplex stream
Expand All @@ -61,4 +91,29 @@ module.exports = class Device {
});

}

static schema() {
return Joi.object({
_id: Joi.string().pattern(/^[0-9a-fA-F]{24}$/).default(() => {
return String(new mongodb.ObjectId());
}),
name: Joi.string().required(),
room: Joi.string().pattern(/^[0-9a-fA-F]{24}$/).allow(null).default(null),
enabled: Joi.boolean().default(true),
//interfaces: Joi.array().items(Interface.schema()).min(1).required()
interfaces: Joi.array().items(Interface.schema()).default([]),
meta: {
manufacturer: Joi.string().allow(null).default(null),
model: Joi.string().allow(null).default(null),
revision: Joi.number().allow(null).default(null),
serial: Joi.string().allow(null).default(null)
},
icon: Joi.string().allow(null).default(null)
});
}

static validate(data) {
return Device.schema().validate(data);
}

};
Loading