Compare commits
408 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e16c9cb3b7 | ||
|
|
542fb4355e | ||
|
|
f63b910d78 | ||
|
|
8254b635fb | ||
|
|
dfa85982c2 | ||
|
|
8451f9f90d | ||
|
|
c447941755 | ||
|
|
112e2e4faa | ||
|
|
fed9ab4621 | ||
|
|
18461d58d6 | ||
|
|
11095fc0bc | ||
|
|
a567cee47f | ||
|
|
158e2abc12 | ||
|
|
ca2095e867 | ||
|
|
708a9ba4b8 | ||
|
|
91a60eabbb | ||
|
|
7f0e07bd40 | ||
|
|
01b17b9dff | ||
|
|
b7e5cf78b9 | ||
|
|
d92d8c260b | ||
|
|
0576199db8 | ||
|
|
6f5a804d77 | ||
|
|
2f6420152e | ||
|
|
1d1d11bee2 | ||
|
|
594c36a512 | ||
|
|
ec5c852175 | ||
|
|
01ff01029b | ||
|
|
bf5d16b64c | ||
|
|
26ee469467 | ||
|
|
b514c8c189 | ||
|
|
2bbac9a545 | ||
|
|
03386eeba0 | ||
|
|
a09842c8b0 | ||
|
|
847b75b555 | ||
|
|
c839317283 | ||
|
|
1f4fd86845 | ||
|
|
8ed8c6a05c | ||
|
|
a716d54cc6 | ||
|
|
668d00418d | ||
|
|
5c36fa851c | ||
|
|
4352ada83e | ||
|
|
c6d76c4bb0 | ||
|
|
87a1a84d2e | ||
|
|
b02e622fd3 | ||
|
|
ac7e6b915f | ||
|
|
f3e1dccfc1 | ||
|
|
8683ac7677 | ||
|
|
eccb65f930 | ||
|
|
c1c27a387c | ||
|
|
aece287747 | ||
|
|
d6ff2c12fb | ||
|
|
50c8fe003d | ||
|
|
3e6b16fcf6 | ||
|
|
ce43514ee3 | ||
|
|
8318f09e26 | ||
|
|
7711902edd | ||
|
|
94ffa754eb | ||
|
|
48035ddec0 | ||
|
|
7694abe05e | ||
|
|
8eac47c4f9 | ||
|
|
fe90b50862 | ||
|
|
e3f2eaa3c6 | ||
|
|
fc09c689bc | ||
|
|
faf04a726c | ||
|
|
31e04a26ff | ||
|
|
90ea8ebee9 | ||
|
|
4d2e66fce3 | ||
|
|
6057fafd97 | ||
|
|
57671c444c | ||
|
|
11a3111098 | ||
|
|
e74c711dfd | ||
|
|
4f64693550 | ||
|
|
2336961178 | ||
|
|
6b7b508870 | ||
|
|
c7938f62ae | ||
|
|
943cc809a1 | ||
|
|
5399d76a5e | ||
|
|
a0895b222e | ||
|
|
35d7f0ee59 | ||
|
|
00eac442bf | ||
|
|
3ce2e6dad9 | ||
|
|
e3582d834e | ||
|
|
8280d9e7e9 | ||
|
|
07d738e048 | ||
|
|
13fecdccda | ||
|
|
3e11dca340 | ||
|
|
693b9d0eab | ||
|
|
643e85f9fb | ||
|
|
df4d1ec1cd | ||
|
|
16367d54bc | ||
|
|
936cb7eb74 | ||
|
|
e78dab9e67 | ||
|
|
bcb2df9a37 | ||
|
|
020d529d06 | ||
|
|
250d23036e | ||
|
|
3650171b48 | ||
|
|
06f2ca2fa8 | ||
|
|
cc548d9353 | ||
|
|
0ab9f4d4a5 | ||
|
|
5c6f15064f | ||
|
|
47e45af22c | ||
|
|
af21c49ae3 | ||
|
|
34af7116a2 | ||
|
|
5a931ff362 | ||
|
|
e869ce9744 | ||
|
|
732ff620f5 | ||
|
|
e9e00cf0d3 | ||
|
|
8af4af7642 | ||
|
|
8bda3948d7 | ||
|
|
fc0f6d8e6b | ||
|
|
911424c505 | ||
|
|
bd6486ca58 | ||
|
|
8836959cfd | ||
|
|
4a73a286ad | ||
|
|
b82ab62e55 | ||
|
|
8c422cd2d8 | ||
|
|
37934c0677 | ||
|
|
1e0534a395 | ||
|
|
c68a469331 | ||
|
|
7310c5ddeb | ||
|
|
10348f1c72 | ||
|
|
3d27f6ae28 | ||
|
|
a31d1880ee | ||
|
|
b427dc324e | ||
|
|
5cdca12504 | ||
|
|
c28ca51fd8 | ||
|
|
594aa81ad6 | ||
|
|
f5f88ff835 | ||
|
|
47bc834fa7 | ||
|
|
6bbb1ff71f | ||
|
|
271a03816e | ||
|
|
9a9b65e1ba | ||
|
|
d0b2667b25 | ||
|
|
eb20310990 | ||
|
|
f6313ac21f | ||
|
|
e588eba932 | ||
|
|
b46135f9ae | ||
|
|
406a81bc44 | ||
|
|
42750edbb3 | ||
|
|
919e16da4e | ||
|
|
2259654909 | ||
|
|
92c98de4a3 | ||
|
|
ca20e599fa | ||
|
|
d7b415c14c | ||
|
|
3a5bed4c07 | ||
|
|
22b7f2e1a0 | ||
|
|
b752d53578 | ||
|
|
d7481b655d | ||
|
|
a0f870b889 | ||
|
|
2983a49a9a | ||
|
|
4b0a236c96 | ||
|
|
88ee0859de | ||
|
|
85ce6dd41d | ||
|
|
56315fa5e3 | ||
|
|
4c7416e70b | ||
|
|
359535d144 | ||
|
|
2dc5caf6ca | ||
|
|
95bfee5386 | ||
|
|
269877469e | ||
|
|
c3d378d20e | ||
|
|
d9b4f37b30 | ||
|
|
81f6b3b089 | ||
|
|
4a64e17371 | ||
|
|
e08040c84f | ||
|
|
f58c69fe58 | ||
|
|
5871653652 | ||
|
|
84b7c417e5 | ||
|
|
a7411b0cb9 | ||
|
|
eaced5bbe6 | ||
|
|
dac370e7a9 | ||
|
|
a461fa7395 | ||
|
|
6fc356d89f | ||
|
|
2ee8c4ccf0 | ||
|
|
c0f53d4eff | ||
|
|
949a685e27 | ||
|
|
e574802ed3 | ||
|
|
9b6a4d675a | ||
|
|
41c7f3c4fb | ||
|
|
267a91a022 | ||
|
|
0b4b493deb | ||
|
|
eb32b3cd51 | ||
|
|
04c6a02c36 | ||
|
|
6693889f5b | ||
|
|
9959ebafeb | ||
|
|
8462fede09 | ||
|
|
d3216b0d5f | ||
|
|
b609742b7a | ||
|
|
8caba8878e | ||
|
|
25669abb40 | ||
|
|
7aa90c1f2f | ||
|
|
39f7f4ee6e | ||
|
|
46d22574da | ||
|
|
6ca43a4c93 | ||
|
|
b1bd44be59 | ||
|
|
06b1a0a3f7 | ||
|
|
a3a391b9f0 | ||
|
|
950aab68cf | ||
|
|
1078ee8669 | ||
|
|
956280da6e | ||
|
|
ebd7ae876b | ||
|
|
f3a9018b4a | ||
|
|
19f60de911 | ||
|
|
4f8604651b | ||
|
|
a87435966e | ||
|
|
391bc74eea | ||
|
|
bfb54b5b39 | ||
|
|
8a18e8beeb | ||
|
|
dfef81c3ac | ||
|
|
21022aeb13 | ||
|
|
4f787f80e9 | ||
|
|
fcef7e8f9d | ||
|
|
534effad18 | ||
|
|
5c190610db | ||
|
|
e37c5c95a1 | ||
|
|
a0435f5a1b | ||
|
|
df65490d4a | ||
|
|
16561939b1 | ||
|
|
f5dab43799 | ||
|
|
6bc9e97433 | ||
|
|
6af1163a17 | ||
|
|
e682799aaf | ||
|
|
a40aba6fba | ||
|
|
c07c900cda | ||
|
|
765aff8e79 | ||
|
|
4dc7741289 | ||
|
|
bdc4c5f4f2 | ||
|
|
c8d1af6daf | ||
|
|
b66fcd0ce7 | ||
|
|
0978c5a2b8 | ||
|
|
e2f885b11b | ||
|
|
8156309a6a | ||
|
|
6af9abcb89 | ||
|
|
ca30a7b8b6 | ||
|
|
7d9bcdfb2e | ||
|
|
e84ffa9424 | ||
|
|
35b6ae5058 | ||
|
|
dfeb32c523 | ||
|
|
4538b8ff66 | ||
|
|
a21a7b43d5 | ||
|
|
27f5f96ba9 | ||
|
|
68ca9af88c | ||
|
|
40b25a4aa3 | ||
|
|
12917cc0f1 | ||
|
|
c053d43333 | ||
|
|
57faa1c60b | ||
|
|
50b9743a4b | ||
|
|
e1f697c57f | ||
|
|
3674641224 | ||
|
|
9d155fd7dd | ||
|
|
90df26cac7 | ||
|
|
20f09bc600 | ||
|
|
95d98922cb | ||
|
|
2ebbe8befd | ||
|
|
439fcae85f | ||
|
|
cfb8edfab3 | ||
|
|
55d3d6e158 | ||
|
|
4eb2879a3e | ||
|
|
beb245c4cb | ||
|
|
8f12b1da70 | ||
|
|
38b1b93b00 | ||
|
|
fa18563aa0 | ||
|
|
b143439818 | ||
|
|
a5a6b05b80 | ||
|
|
1dcaa3c4c5 | ||
|
|
a309d64e19 | ||
|
|
4499f7ca93 | ||
|
|
1d0f4131da | ||
|
|
b5687811c4 | ||
|
|
537c0c6c22 | ||
|
|
d79569d96e | ||
|
|
4f4f717cac | ||
|
|
b17381426e | ||
|
|
74f4fdaf42 | ||
|
|
6a5cc2f7bb | ||
|
|
251c2fb215 | ||
|
|
2a4b8b39fa | ||
|
|
e370dd118d | ||
|
|
89183a77eb | ||
|
|
9311daac8b | ||
|
|
4084149121 | ||
|
|
b6444f5eae | ||
|
|
797f7bab93 | ||
|
|
9f12aaa7d9 | ||
|
|
3e1d0746e2 | ||
|
|
645e3e10a1 | ||
|
|
9d06f248d0 | ||
|
|
d6df4dcf4c | ||
|
|
3c22648eb3 | ||
|
|
65720cd818 | ||
|
|
f4a40573be | ||
|
|
b69a5d39e8 | ||
|
|
f9f74c51c6 | ||
|
|
f6be026d7c | ||
|
|
0a8f70e106 | ||
|
|
09967cbe73 | ||
|
|
afa32b4f9f | ||
|
|
89108842b1 | ||
|
|
7f3d4c30ee | ||
|
|
7385ecc0e0 | ||
|
|
7041d1428e | ||
|
|
192921b96e | ||
|
|
e88f49e9ec | ||
|
|
8833cdc17e | ||
|
|
ba5f26d53e | ||
|
|
69ba8ea57e | ||
|
|
6a90fdd680 | ||
|
|
702f9f8c04 | ||
|
|
b8bf936733 | ||
|
|
d846adce45 | ||
|
|
52efca3669 | ||
|
|
1efee60805 | ||
|
|
964afdeae6 | ||
|
|
4636b16638 | ||
|
|
60453e7f89 | ||
|
|
3035364056 | ||
|
|
497cf84225 | ||
|
|
109fcf9cba | ||
|
|
97fad39d27 | ||
|
|
a474af6c0f | ||
|
|
2966924bcd | ||
|
|
92a75def12 | ||
|
|
b662549308 | ||
|
|
17826923f9 | ||
|
|
39fabdf081 | ||
|
|
8c7f733c65 | ||
|
|
fdd59d5c6c | ||
|
|
2b3f041001 | ||
|
|
1406b74c21 | ||
|
|
438b6e5537 | ||
|
|
bf8b9527b6 | ||
|
|
d6c693a674 | ||
|
|
bba2fa2ed3 | ||
|
|
60ba22b15e | ||
|
|
b3871ca767 | ||
|
|
c97a211c67 | ||
|
|
8f1bcd584f | ||
|
|
ee57e0eb48 | ||
|
|
7ada72b442 | ||
|
|
4a912c0388 | ||
|
|
21928b1989 | ||
|
|
7a6884127b | ||
|
|
284c8af3d6 | ||
|
|
78aee4c850 | ||
|
|
f553d1c995 | ||
|
|
f8b1823aa8 | ||
|
|
f5f4473905 | ||
|
|
d8b22ae77b | ||
|
|
e409f3ec0e | ||
|
|
3e4dae820b | ||
|
|
6868f74ec0 | ||
|
|
875dbd6415 | ||
|
|
e227c70c08 | ||
|
|
d9e551e0c7 | ||
|
|
94b01d8cd4 | ||
|
|
757ea664ed | ||
|
|
862d85b063 | ||
|
|
aaea2ef2d1 | ||
|
|
1a57017911 | ||
|
|
1d675eb1ab | ||
|
|
3687e50d37 | ||
|
|
28a480681b | ||
|
|
894eafec43 | ||
|
|
11b234cca6 | ||
|
|
7dd77a505c | ||
|
|
5dd8a3750b | ||
|
|
491128105a | ||
|
|
0cc0c033f5 | ||
|
|
6d6bcb796d | ||
|
|
df16909e71 | ||
|
|
1d3c07326e | ||
|
|
d00d97caa1 | ||
|
|
bda2aca4cd | ||
|
|
5fbe6214dc | ||
|
|
10bdcd98c4 | ||
|
|
7665c833bf | ||
|
|
ae7870245d | ||
|
|
0965ff9814 | ||
|
|
df9c09dd0f | ||
|
|
df21f61cb9 | ||
|
|
384cd4ff57 | ||
|
|
f148ecff87 | ||
|
|
d1e655cfb2 | ||
|
|
acd26f07dc | ||
|
|
8704b4cea8 | ||
|
|
3d1d17641c | ||
|
|
9016dde40c | ||
|
|
c5f66bd882 | ||
|
|
f757f17646 | ||
|
|
28b1dbfdae | ||
|
|
594062cbd7 | ||
|
|
5c0d8be312 | ||
|
|
2b0a32a7be | ||
|
|
8206c79dc4 | ||
|
|
11b7a113ed | ||
|
|
a2dffc2c00 | ||
|
|
294a1ee067 | ||
|
|
618415f23f | ||
|
|
8e2308aa3c | ||
|
|
73953901db | ||
|
|
069063d50f | ||
|
|
efa97b1cc5 | ||
|
|
874c6cce50 | ||
|
|
3a7c356f26 | ||
|
|
e0a4009cf6 | ||
|
|
00982ef5d2 | ||
|
|
5aaa8b650c | ||
|
|
7e947ce5b7 | ||
|
|
1cb1151be4 |
@@ -45,7 +45,8 @@
|
||||
"workbox": true,
|
||||
"importScripts": true,
|
||||
"$TSFixMe": true,
|
||||
"NodeJS": true
|
||||
"NodeJS": true,
|
||||
"JSX": true
|
||||
},
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"rules": {
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
title: 'Bug: <Title of the issue>'
|
||||
labels: 'bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
title: 'Enhancement: <Title of the issue>'
|
||||
labels: 'enhancement'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/request-for-test.md
vendored
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: Request for Test
|
||||
about: 'Request more tests for product code in the platform. '
|
||||
title: Tests for [FIleName]
|
||||
title: Tests for [FileName]
|
||||
labels: 'write tests'
|
||||
assignees: ''
|
||||
|
||||
|
||||
20
.github/workflows/code-analysis.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: Code Analysis
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
jobs:
|
||||
sonarcloud:
|
||||
name: SonarCloud
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
- name: SonarCloud Scan
|
||||
uses: SonarSource/sonarcloud-github-action@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
16
.github/workflows/compile.yml
vendored
@@ -105,6 +105,22 @@ jobs:
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd CommonUI && npm install --force
|
||||
- run: cd DashboardAPI && npm install && npm run compile
|
||||
|
||||
|
||||
compile-admin-dashboard:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd CommonUI && npm install --force
|
||||
- run: cd AdminDashboard && npm install && npm run compile
|
||||
|
||||
compile-dashboard:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
15
.github/workflows/docker-build.yml
vendored
@@ -71,6 +71,21 @@ jobs:
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./DashboardAPI/Dockerfile .
|
||||
|
||||
docker-build-admin-dashboard:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Preinstall
|
||||
run: npm run prerun
|
||||
|
||||
# build image for home
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./AdminDashboard/Dockerfile .
|
||||
|
||||
docker-build-dashboard:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
|
||||
209
.github/workflows/release.yml
vendored
@@ -51,8 +51,8 @@ jobs:
|
||||
oneuptime/nginx
|
||||
ghcr.io/oneuptime/nginx
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -95,6 +95,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
test-server-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -108,8 +111,8 @@ jobs:
|
||||
oneuptime/test-server
|
||||
ghcr.io/oneuptime/test-server
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -152,6 +155,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
workflow-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -165,8 +171,8 @@ jobs:
|
||||
oneuptime/workflow
|
||||
ghcr.io/oneuptime/workflow
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -209,6 +215,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
link-shortener-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -222,8 +231,8 @@ jobs:
|
||||
oneuptime/link-shortener
|
||||
ghcr.io/oneuptime/link-shortener
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -266,6 +275,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
workers-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -279,8 +291,8 @@ jobs:
|
||||
oneuptime/workers
|
||||
ghcr.io/oneuptime/workers
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -323,6 +335,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
status-page-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -336,8 +351,8 @@ jobs:
|
||||
oneuptime/status-page
|
||||
ghcr.io/oneuptime/status-page
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -380,6 +395,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
realtime-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -393,8 +411,8 @@ jobs:
|
||||
oneuptime/realtime
|
||||
ghcr.io/oneuptime/realtime
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -437,6 +455,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
probe-api-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -450,8 +471,8 @@ jobs:
|
||||
oneuptime/probe-api
|
||||
ghcr.io/oneuptime/probe-api
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -494,6 +515,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
notification-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -507,8 +531,8 @@ jobs:
|
||||
oneuptime/notification
|
||||
ghcr.io/oneuptime/notification
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -551,6 +575,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
licensing-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -564,8 +591,8 @@ jobs:
|
||||
oneuptime/licensing
|
||||
ghcr.io/oneuptime/licensing
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -608,6 +635,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
integrations-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -621,8 +651,8 @@ jobs:
|
||||
oneuptime/integrations
|
||||
ghcr.io/oneuptime/integrations
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -665,6 +695,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
probe-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -678,8 +711,8 @@ jobs:
|
||||
oneuptime/probe
|
||||
ghcr.io/oneuptime/probe
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -722,6 +755,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
identity-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -735,8 +771,8 @@ jobs:
|
||||
oneuptime/identity
|
||||
ghcr.io/oneuptime/identity
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -779,6 +815,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
home-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -792,8 +831,8 @@ jobs:
|
||||
oneuptime/home
|
||||
ghcr.io/oneuptime/home
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -836,6 +875,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
helm-chart-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -849,8 +891,8 @@ jobs:
|
||||
oneuptime/helm-chart
|
||||
ghcr.io/oneuptime/helm-chart
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -893,6 +935,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
haraka-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -906,8 +951,8 @@ jobs:
|
||||
oneuptime/haraka
|
||||
ghcr.io/oneuptime/haraka
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -950,6 +995,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
file-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -963,8 +1011,8 @@ jobs:
|
||||
oneuptime/file
|
||||
ghcr.io/oneuptime/file
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -1007,6 +1055,71 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
|
||||
admin-dashboard-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/admin-dashboard
|
||||
ghcr.io/oneuptime/admin-dashboard
|
||||
tags: |
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Generate Dockerfile from Dockerfile.tpl
|
||||
run: npm run prerun
|
||||
|
||||
# Build and deploy admin-dashboard.
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
file: ./AdminDashboard/Dockerfile
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
|
||||
dashboard-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1020,8 +1133,8 @@ jobs:
|
||||
oneuptime/dashboard
|
||||
ghcr.io/oneuptime/dashboard
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -1064,6 +1177,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
dashboard-api-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1077,8 +1193,8 @@ jobs:
|
||||
oneuptime/dashboard-api
|
||||
ghcr.io/oneuptime/dashboard-api
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -1121,6 +1237,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
api-reference-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1134,8 +1253,8 @@ jobs:
|
||||
oneuptime/api-reference
|
||||
ghcr.io/oneuptime/api-reference
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -1178,6 +1297,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
accounts-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1191,8 +1313,8 @@ jobs:
|
||||
oneuptime/accounts
|
||||
ghcr.io/oneuptime/accounts
|
||||
tags: |
|
||||
type=raw,value=release,enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'release') }}
|
||||
type=raw,value=release,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -1235,3 +1357,6 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
208
.github/workflows/test-release.yaml
vendored
@@ -31,8 +31,8 @@ jobs:
|
||||
oneuptime/nginx
|
||||
ghcr.io/oneuptime/nginx
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -76,6 +76,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
test-server-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -89,8 +92,8 @@ jobs:
|
||||
oneuptime/test-server
|
||||
ghcr.io/oneuptime/test-server
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -134,6 +137,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
workflow-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -147,8 +153,8 @@ jobs:
|
||||
oneuptime/workflow
|
||||
ghcr.io/oneuptime/workflow
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -192,6 +198,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
link-shortener-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -205,8 +214,8 @@ jobs:
|
||||
oneuptime/link-shortener
|
||||
ghcr.io/oneuptime/link-shortener
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -250,6 +259,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
workers-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -263,8 +275,8 @@ jobs:
|
||||
oneuptime/workers
|
||||
ghcr.io/oneuptime/workers
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -308,6 +320,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
status-page-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -321,8 +336,8 @@ jobs:
|
||||
oneuptime/status-page
|
||||
ghcr.io/oneuptime/status-page
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -366,6 +381,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
realtime-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -379,8 +397,8 @@ jobs:
|
||||
oneuptime/realtime
|
||||
ghcr.io/oneuptime/realtime
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -424,6 +442,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
probe-api-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -437,8 +458,8 @@ jobs:
|
||||
oneuptime/probe-api
|
||||
ghcr.io/oneuptime/probe-api
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -482,6 +503,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
notification-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -495,8 +519,8 @@ jobs:
|
||||
oneuptime/notification
|
||||
ghcr.io/oneuptime/notification
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -540,6 +564,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
licensing-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -553,8 +580,8 @@ jobs:
|
||||
oneuptime/licensing
|
||||
ghcr.io/oneuptime/licensing
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -598,6 +625,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
integrations-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -611,8 +641,8 @@ jobs:
|
||||
oneuptime/integrations
|
||||
ghcr.io/oneuptime/integrations
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -656,6 +686,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
probe-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -669,8 +702,8 @@ jobs:
|
||||
oneuptime/probe
|
||||
ghcr.io/oneuptime/probe
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -714,6 +747,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
identity-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -727,8 +763,8 @@ jobs:
|
||||
oneuptime/identity
|
||||
ghcr.io/oneuptime/identity
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -772,6 +808,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
home-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -785,8 +824,8 @@ jobs:
|
||||
oneuptime/home
|
||||
ghcr.io/oneuptime/home
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -830,6 +869,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
helm-chart-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -843,8 +885,8 @@ jobs:
|
||||
oneuptime/helm-chart
|
||||
ghcr.io/oneuptime/helm-chart
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -888,6 +930,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
haraka-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -901,8 +946,8 @@ jobs:
|
||||
oneuptime/haraka
|
||||
ghcr.io/oneuptime/haraka
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -946,6 +991,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
file-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -959,8 +1007,8 @@ jobs:
|
||||
oneuptime/file
|
||||
ghcr.io/oneuptime/file
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -1004,6 +1052,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
dashboard-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1017,8 +1068,8 @@ jobs:
|
||||
oneuptime/dashboard
|
||||
ghcr.io/oneuptime/dashboard
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -1062,6 +1113,70 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
admin-dashboard-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/admin-dashboard
|
||||
ghcr.io/oneuptime/admin-dashboard
|
||||
tags: |
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Generate Dockerfile from Dockerfile.tpl
|
||||
run: npm run prerun
|
||||
|
||||
# Build and deploy admin-dashboard.
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
file: ./AdminDashboard/Dockerfile
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
dashboard-api-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1075,8 +1190,8 @@ jobs:
|
||||
oneuptime/dashboard-api
|
||||
ghcr.io/oneuptime/dashboard-api
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -1120,6 +1235,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
api-reference-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1133,8 +1251,8 @@ jobs:
|
||||
oneuptime/api-reference
|
||||
ghcr.io/oneuptime/api-reference
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -1178,6 +1296,9 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
accounts-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -1191,8 +1312,8 @@ jobs:
|
||||
oneuptime/accounts
|
||||
ghcr.io/oneuptime/accounts
|
||||
tags: |
|
||||
type=raw,value=test,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
|
||||
type=raw,value=test,enable=true
|
||||
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
|
||||
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
@@ -1236,3 +1357,6 @@ jobs:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
5
.gitignore
vendored
@@ -85,3 +85,8 @@ Backups/*.sql
|
||||
Backups/*.tar
|
||||
|
||||
.env
|
||||
|
||||
Haraka/dkim/keys/private_base64.txt
|
||||
Haraka/dkim/keys/public_base64.txt
|
||||
|
||||
.eslintcache
|
||||
|
||||
@@ -3,13 +3,22 @@
|
||||
#
|
||||
|
||||
# Pull base image nodejs image.
|
||||
FROM node:18.13.0-alpine
|
||||
FROM node:current-alpine AS base
|
||||
USER root
|
||||
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
|
||||
|
||||
RUN npm config set fetch-retry-maxtimeout 6000000
|
||||
RUN npm config set fetch-retry-mintimeout 1000000
|
||||
|
||||
ARG GIT_SHA
|
||||
ARG APP_VERSION
|
||||
|
||||
ENV GIT_SHA=${GIT_SHA}
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
|
||||
|
||||
# Install bash.
|
||||
RUN apk update && apk add bash && apk add curl
|
||||
RUN apk add bash && apk add curl
|
||||
|
||||
#Use bash shell by default
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
@@ -18,7 +27,8 @@ SHELL ["/bin/bash", "-c"]
|
||||
RUN mkdir /usr/src
|
||||
|
||||
# Install common
|
||||
RUN mkdir /usr/src/Common
|
||||
|
||||
FROM base AS common
|
||||
WORKDIR /usr/src/Common
|
||||
COPY ./Common/package*.json /usr/src/Common/
|
||||
RUN npm install
|
||||
@@ -27,7 +37,8 @@ COPY ./Common /usr/src/Common
|
||||
|
||||
|
||||
# Install Model
|
||||
RUN mkdir /usr/src/Model
|
||||
|
||||
FROM base AS model
|
||||
WORKDIR /usr/src/Model
|
||||
COPY ./Model/package*.json /usr/src/Model/
|
||||
RUN npm install
|
||||
@@ -36,7 +47,8 @@ COPY ./Model /usr/src/Model
|
||||
|
||||
|
||||
# Install CommonServer
|
||||
RUN mkdir /usr/src/CommonServer
|
||||
|
||||
FROM base AS commonserver
|
||||
WORKDIR /usr/src/CommonServer
|
||||
COPY ./CommonServer/package*.json /usr/src/CommonServer/
|
||||
RUN npm install
|
||||
@@ -46,7 +58,8 @@ COPY ./CommonServer /usr/src/CommonServer
|
||||
|
||||
|
||||
# Install CommonUI
|
||||
RUN mkdir /usr/src/CommonUI
|
||||
|
||||
FROM base AS commonui
|
||||
WORKDIR /usr/src/CommonUI
|
||||
COPY ./CommonUI/package*.json /usr/src/CommonUI/
|
||||
RUN npm install --force
|
||||
@@ -55,11 +68,25 @@ COPY ./CommonUI /usr/src/CommonUI
|
||||
|
||||
|
||||
#SET ENV Variables
|
||||
# Install app
|
||||
FROM base AS app
|
||||
|
||||
WORKDIR /usr/src/Common
|
||||
COPY --from=common /usr/src/Common .
|
||||
|
||||
WORKDIR /usr/src/Model
|
||||
COPY --from=model /usr/src/Model .
|
||||
|
||||
WORKDIR /usr/src/CommonServer
|
||||
COPY --from=commonserver /usr/src/CommonServer .
|
||||
|
||||
WORKDIR /usr/src/CommonUI
|
||||
COPY --from=commonui /usr/src/CommonUI .
|
||||
|
||||
|
||||
ENV PRODUCTION=true
|
||||
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
|
||||
RUN mkdir /usr/src/app
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Install app dependencies
|
||||
|
||||
@@ -7,7 +7,7 @@ export const APP_NAME: string = 'accounts';
|
||||
|
||||
const app: ExpressApplication = Express.getExpressApp();
|
||||
|
||||
const init: Function = async (): Promise<void> => {
|
||||
const init: () => Promise<void> = async (): Promise<void> => {
|
||||
try {
|
||||
// init the app
|
||||
await App(APP_NAME, undefined, true);
|
||||
@@ -17,6 +17,8 @@ const init: Function = async (): Promise<void> => {
|
||||
}
|
||||
};
|
||||
|
||||
init();
|
||||
init().catch((err: Error) => {
|
||||
logger.error(err);
|
||||
});
|
||||
|
||||
export default app;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"watch": ["webpack.config.js"],
|
||||
"exec": "export DEBUG=express:* && printenv > /usr/src/app/dev-env/.env && webpack-dev-server --port=3003 --mode=development"
|
||||
"exec": "export DEBUG=express:* && printenv > /usr/src/app/dev-env/.env && echo 'HOST=localhost' >> /usr/src/app/dev-env/.env && echo 'USE_HTTPS=false' >> /usr/src/app/dev-env/.env && webpack-dev-server --port=3003 --mode=development"
|
||||
}
|
||||
43
Accounts/package-lock.json
generated
@@ -20,7 +20,8 @@
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-scripts": "5.0.1",
|
||||
"the-new-css-reset": "^1.7.3",
|
||||
"typescript": "^4.6.4"
|
||||
"typescript": "^4.6.4",
|
||||
"use-async-effect": "^2.2.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@testing-library/jest-dom": "^5.16.4",
|
||||
@@ -61,7 +62,7 @@
|
||||
"moment-timezone": "^0.5.40",
|
||||
"nanoid": "^3.3.2",
|
||||
"nanoid-dictionary": "^4.3.0",
|
||||
"posthog-js": "^1.37.0",
|
||||
"posthog-js": "^1.77.0",
|
||||
"process": "^0.11.10",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"slugify": "^1.6.5",
|
||||
@@ -69,7 +70,7 @@
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "^6.3.1",
|
||||
"@faker-js/faker": "^8.0.2",
|
||||
"@types/jest": "^27.5.2",
|
||||
"@types/node": "^17.0.22",
|
||||
"jest": "^27.5.1",
|
||||
@@ -81,6 +82,7 @@
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@clickhouse/client": "^0.2.1",
|
||||
"@elastic/elasticsearch": "^8.1.0",
|
||||
"@opentelemetry/api": "^1.1.0",
|
||||
"@opentelemetry/auto-instrumentations-node": "^0.31.0",
|
||||
@@ -101,6 +103,7 @@
|
||||
"express": "^4.17.3",
|
||||
"gridfs-stream": "^1.1.1",
|
||||
"handlebars": "^4.7.7",
|
||||
"ioredis": "^5.3.2",
|
||||
"json2csv": "^5.0.7",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"markdown-it": "^13.0.1",
|
||||
@@ -109,7 +112,6 @@
|
||||
"nodemailer": "^6.7.3",
|
||||
"nodemailer-express-handlebars": "^5.0.0",
|
||||
"pg": "^8.7.3",
|
||||
"redis": "^4.2.0",
|
||||
"socket.io": "^4.4.1",
|
||||
"stripe": "^10.17.0",
|
||||
"twilio": "^4.13.0",
|
||||
@@ -10754,9 +10756,9 @@
|
||||
"integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ=="
|
||||
},
|
||||
"node_modules/nodemon": {
|
||||
"version": "2.0.20",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
|
||||
"integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
|
||||
"version": "2.0.22",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
|
||||
"integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chokidar": "^3.5.2",
|
||||
@@ -15015,6 +15017,14 @@
|
||||
"requires-port": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/use-async-effect": {
|
||||
"version": "2.2.7",
|
||||
"resolved": "https://registry.npmjs.org/use-async-effect/-/use-async-effect-2.2.7.tgz",
|
||||
"integrity": "sha512-Vq94tKPyo/9Nok4LOapV0GoGgZPhbeDW/bP6bulLPV4+lIoftaBRBBbGjTbM+j5W1Bm2EkUHJgapeu5YnQvKEA==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
@@ -19843,7 +19853,7 @@
|
||||
"Common": {
|
||||
"version": "file:../Common",
|
||||
"requires": {
|
||||
"@faker-js/faker": "^6.3.1",
|
||||
"@faker-js/faker": "^8.0.2",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/jest": "^27.5.2",
|
||||
"@types/nanoid-dictionary": "^4.2.0",
|
||||
@@ -19857,7 +19867,7 @@
|
||||
"moment-timezone": "^0.5.40",
|
||||
"nanoid": "^3.3.2",
|
||||
"nanoid-dictionary": "^4.3.0",
|
||||
"posthog-js": "^1.37.0",
|
||||
"posthog-js": "^1.77.0",
|
||||
"process": "^0.11.10",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"slugify": "^1.6.5",
|
||||
@@ -19884,6 +19894,7 @@
|
||||
"CommonServer": {
|
||||
"version": "file:../CommonServer",
|
||||
"requires": {
|
||||
"@clickhouse/client": "^0.2.1",
|
||||
"@elastic/elasticsearch": "^8.1.0",
|
||||
"@faker-js/faker": "^6.3.1",
|
||||
"@opentelemetry/api": "^1.1.0",
|
||||
@@ -19910,6 +19921,7 @@
|
||||
"express": "^4.17.3",
|
||||
"gridfs-stream": "^1.1.1",
|
||||
"handlebars": "^4.7.7",
|
||||
"ioredis": "^5.3.2",
|
||||
"jest": "^27.5.1",
|
||||
"json2csv": "^5.0.7",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
@@ -19919,7 +19931,6 @@
|
||||
"nodemailer": "^6.7.3",
|
||||
"nodemailer-express-handlebars": "^5.0.0",
|
||||
"pg": "^8.7.3",
|
||||
"redis": "^4.2.0",
|
||||
"socket.io": "^4.4.1",
|
||||
"stripe": "^10.17.0",
|
||||
"ts-jest": "^27.1.4",
|
||||
@@ -23855,9 +23866,9 @@
|
||||
"integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ=="
|
||||
},
|
||||
"nodemon": {
|
||||
"version": "2.0.20",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
|
||||
"integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
|
||||
"version": "2.0.22",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
|
||||
"integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": "^3.5.2",
|
||||
@@ -26759,6 +26770,12 @@
|
||||
"requires-port": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"use-async-effect": {
|
||||
"version": "2.2.7",
|
||||
"resolved": "https://registry.npmjs.org/use-async-effect/-/use-async-effect-2.2.7.tgz",
|
||||
"integrity": "sha512-Vq94tKPyo/9Nok4LOapV0GoGgZPhbeDW/bP6bulLPV4+lIoftaBRBBbGjTbM+j5W1Bm2EkUHJgapeu5YnQvKEA==",
|
||||
"requires": {}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-scripts": "5.0.1",
|
||||
"the-new-css-reset": "^1.7.3",
|
||||
"typescript": "^4.6.4"
|
||||
"typescript": "^4.6.4",
|
||||
"use-async-effect": "^2.2.7"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "npx nodemon",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
const Footer: FunctionComponent = () => {
|
||||
const Footer: () => JSX.Element = () => {
|
||||
return (
|
||||
<div className="footer">
|
||||
<p>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { FunctionComponent, useState } from 'react';
|
||||
import React, { useState } from 'react';
|
||||
import ModelForm, { FormType } from 'CommonUI/src/Components/Forms/ModelForm';
|
||||
import User from 'Model/Models/User';
|
||||
import Route from 'Common/Types/API/Route';
|
||||
@@ -8,7 +8,7 @@ import Link from 'CommonUI/src/Components/Link/Link';
|
||||
import { FORGOT_PASSWORD_API_URL } from '../Utils/ApiPaths';
|
||||
import URL from 'Common/Types/API/URL';
|
||||
|
||||
const ForgotPassword: FunctionComponent = () => {
|
||||
const ForgotPassword: () => JSX.Element = () => {
|
||||
const apiUrl: URL = FORGOT_PASSWORD_API_URL;
|
||||
|
||||
const [isSuccess, setIsSuccess] = useState<boolean>(false);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { FunctionComponent, useState } from 'react';
|
||||
import React, { useState } from 'react';
|
||||
import User from 'Model/Models/User';
|
||||
import Route from 'Common/Types/API/Route';
|
||||
import FormFieldSchemaType from 'CommonUI/src/Components/Forms/Types/FormFieldSchemaType';
|
||||
@@ -12,23 +12,29 @@ import LoginUtil from '../Utils/Login';
|
||||
import UserUtil from 'CommonUI/src/Utils/User';
|
||||
import Navigation from 'CommonUI/src/Utils/Navigation';
|
||||
import { DASHBOARD_URL } from 'CommonUI/src/Config';
|
||||
import Alert, { AlertType } from 'CommonUI/src/Components/Alerts/Alert';
|
||||
import UiAnalytics from 'CommonUI/src/Utils/Analytics';
|
||||
|
||||
const LoginPage: FunctionComponent = () => {
|
||||
const LoginPage: () => JSX.Element = () => {
|
||||
const apiUrl: URL = LOGIN_API_URL;
|
||||
|
||||
if (UserUtil.isLoggedIn()) {
|
||||
Navigation.navigate(DASHBOARD_URL);
|
||||
}
|
||||
|
||||
const showSsoMessage: boolean = Boolean(
|
||||
Navigation.getQueryStringByName('sso')
|
||||
);
|
||||
|
||||
const [showSsoTip, setShowSSOTip] = useState<boolean>(false);
|
||||
|
||||
return (
|
||||
<div className="flex min-h-full flex-col justify-center py-12 sm:px-6 lg:px-8">
|
||||
<div className="sm:mx-auto sm:w-full sm:max-w-md">
|
||||
<div className="">
|
||||
<img
|
||||
className="mx-auto h-12 w-auto"
|
||||
src={OneUptimeLogo}
|
||||
alt="Your Company"
|
||||
alt="OneUptime"
|
||||
/>
|
||||
<h2 className="mt-6 text-center text-2xl tracking-tight text-gray-900">
|
||||
Sign in to your account
|
||||
@@ -39,6 +45,16 @@ const LoginPage: FunctionComponent = () => {
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{showSsoMessage && (
|
||||
<div className="sm:mx-auto sm:w-full sm:max-w-md mt-8">
|
||||
{' '}
|
||||
<Alert
|
||||
type={AlertType.DANGER}
|
||||
title="You must be logged into OneUptime account to use single sign-on (SSO) for your project. Logging in to OneUptime account and single sign on (SSO) for your project are two separate steps. Please use the form below to log in to your OneUptime account before you use SSO."
|
||||
/>{' '}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
|
||||
<div className="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10">
|
||||
<ModelForm<User>
|
||||
@@ -74,8 +90,19 @@ const LoginPage: FunctionComponent = () => {
|
||||
apiUrl={apiUrl}
|
||||
formType={FormType.Create}
|
||||
submitButtonText={'Login'}
|
||||
onSuccess={(value: JSONObject) => {
|
||||
LoginUtil.login(value);
|
||||
onSuccess={(
|
||||
value: User,
|
||||
miscData: JSONObject | undefined
|
||||
) => {
|
||||
if (value && value.email) {
|
||||
UiAnalytics.userAuth(value.email);
|
||||
UiAnalytics.capture('accounts/login');
|
||||
}
|
||||
|
||||
LoginUtil.login({
|
||||
user: value,
|
||||
token: miscData ? miscData['token'] : undefined,
|
||||
});
|
||||
}}
|
||||
maxPrimaryButtonWidth={true}
|
||||
footer={
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import React from 'react';
|
||||
|
||||
const LoginPage: FunctionComponent = () => {
|
||||
const LoginPage: () => JSX.Element = () => {
|
||||
return (
|
||||
<div className="flex min-h-full flex-col justify-center py-12 sm:px-6 lg:px-8">
|
||||
<div className="sm:mx-auto sm:w-full sm:max-w-md">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { FunctionComponent } from 'react';
|
||||
import React, { useState } from 'react';
|
||||
import ModelForm, { FormType } from 'CommonUI/src/Components/Forms/ModelForm';
|
||||
import User from 'Model/Models/User';
|
||||
import Link from 'CommonUI/src/Components/Link/Link';
|
||||
@@ -13,14 +13,85 @@ import { BILLING_ENABLED, DASHBOARD_URL } from 'CommonUI/src/Config';
|
||||
import URL from 'Common/Types/API/URL';
|
||||
import { SIGNUP_API_URL } from '../Utils/ApiPaths';
|
||||
import Fields from 'CommonUI/src/Components/Forms/Types/Fields';
|
||||
import Dictionary from 'Common/Types/Dictionary';
|
||||
import UiAnalytics from 'CommonUI/src/Utils/Analytics';
|
||||
import LocalStorage from 'CommonUI/src/Utils/LocalStorage';
|
||||
import Reseller from 'Model/Models/Reseller';
|
||||
import ModelAPI, { ListResult } from 'CommonUI/src/Utils/ModelAPI/ModelAPI';
|
||||
import BaseAPI from 'CommonUI/src/Utils/API/API';
|
||||
import ErrorMessage from 'CommonUI/src/Components/ErrorMessage/ErrorMessage';
|
||||
import PageLoader from 'CommonUI/src/Components/Loader/PageLoader';
|
||||
import useAsyncEffect from 'use-async-effect';
|
||||
|
||||
const RegisterPage: FunctionComponent = () => {
|
||||
const RegisterPage: () => JSX.Element = () => {
|
||||
const apiUrl: URL = SIGNUP_API_URL;
|
||||
|
||||
const [initialValues, setInitialValues] = React.useState<JSONObject>({});
|
||||
|
||||
const [error, setError] = useState<string>('');
|
||||
|
||||
const [isLoading, setIsLoading] = React.useState<boolean>(false);
|
||||
|
||||
const [reseller, setResller] = React.useState<Reseller | undefined>(
|
||||
undefined
|
||||
);
|
||||
|
||||
if (UserUtil.isLoggedIn()) {
|
||||
Navigation.navigate(DASHBOARD_URL);
|
||||
}
|
||||
|
||||
const fetchReseller: Function = async (
|
||||
resellerId: string
|
||||
): Promise<void> => {
|
||||
setIsLoading(true);
|
||||
|
||||
try {
|
||||
const reseller: ListResult<Reseller> =
|
||||
await ModelAPI.getList<Reseller>(
|
||||
Reseller,
|
||||
{
|
||||
resellerId: resellerId,
|
||||
},
|
||||
1,
|
||||
0,
|
||||
{
|
||||
hidePhoneNumberOnSignup: true,
|
||||
},
|
||||
{},
|
||||
{}
|
||||
);
|
||||
|
||||
if (reseller.data.length > 0) {
|
||||
setResller(reseller.data[0]);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(BaseAPI.getFriendlyMessage(err));
|
||||
}
|
||||
|
||||
setIsLoading(false);
|
||||
};
|
||||
|
||||
useAsyncEffect(async () => {
|
||||
// if promo code is found, please save it in localstorage.
|
||||
if (Navigation.getQueryStringByName('promoCode')) {
|
||||
LocalStorage.setItem(
|
||||
'promoCode',
|
||||
Navigation.getQueryStringByName('promoCode')
|
||||
);
|
||||
}
|
||||
|
||||
if (Navigation.getQueryStringByName('email')) {
|
||||
setInitialValues({
|
||||
email: Navigation.getQueryStringByName('email'),
|
||||
});
|
||||
}
|
||||
|
||||
// if promo code is found, please save it in localstorage.
|
||||
if (Navigation.getQueryStringByName('partnerId')) {
|
||||
await fetchReseller(Navigation.getQueryStringByName('partnerId')!);
|
||||
}
|
||||
}, []);
|
||||
|
||||
let formFields: Fields<User> = [
|
||||
{
|
||||
field: {
|
||||
@@ -29,6 +100,7 @@ const RegisterPage: FunctionComponent = () => {
|
||||
fieldType: FormFieldSchemaType.Email,
|
||||
placeholder: 'jeff@example.com',
|
||||
required: true,
|
||||
disabled: Boolean(initialValues && initialValues['email']),
|
||||
title: 'Email',
|
||||
},
|
||||
{
|
||||
@@ -53,7 +125,11 @@ const RegisterPage: FunctionComponent = () => {
|
||||
required: true,
|
||||
title: 'Company Name',
|
||||
},
|
||||
{
|
||||
]);
|
||||
|
||||
// If reseller wants to hide phone number on sign up, we hide it.
|
||||
if (!reseller || !reseller.hidePhoneNumberOnSignup) {
|
||||
formFields.push({
|
||||
field: {
|
||||
companyPhoneNumber: true,
|
||||
},
|
||||
@@ -61,8 +137,8 @@ const RegisterPage: FunctionComponent = () => {
|
||||
required: true,
|
||||
placeholder: '+11234567890',
|
||||
title: 'Phone Number',
|
||||
},
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
formFields = formFields.concat([
|
||||
@@ -95,13 +171,21 @@ const RegisterPage: FunctionComponent = () => {
|
||||
},
|
||||
]);
|
||||
|
||||
if (error) {
|
||||
return <ErrorMessage error={error} />;
|
||||
}
|
||||
|
||||
if (isLoading) {
|
||||
return <PageLoader isVisible={true} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex min-h-full flex-col justify-center py-12 sm:px-6 lg:px-8">
|
||||
<div className="sm:mx-auto sm:w-full sm:max-w-md">
|
||||
<img
|
||||
className="mx-auto h-12 w-auto"
|
||||
src={OneUptimeLogo}
|
||||
alt="Your Company"
|
||||
alt="OneUptime"
|
||||
/>
|
||||
<h2 className="mt-6 text-center text-2xl tracking-tight text-gray-900">
|
||||
Create your OneUptime account
|
||||
@@ -120,23 +204,48 @@ const RegisterPage: FunctionComponent = () => {
|
||||
<ModelForm<User>
|
||||
modelType={User}
|
||||
id="register-form"
|
||||
showAsColumns={2}
|
||||
showAsColumns={reseller ? 1 : 2}
|
||||
name="Register"
|
||||
initialValues={initialValues}
|
||||
maxPrimaryButtonWidth={true}
|
||||
initialValues={{
|
||||
email: '',
|
||||
name: '',
|
||||
companyName: '',
|
||||
companyPhoneNumber: '',
|
||||
password: '',
|
||||
confirmPassword: '',
|
||||
}}
|
||||
fields={formFields}
|
||||
apiUrl={apiUrl}
|
||||
onBeforeCreate={(item: User): Promise<User> => {
|
||||
const utmParams: Dictionary<string> =
|
||||
UserUtil.getUtmParams();
|
||||
|
||||
if (
|
||||
utmParams &&
|
||||
Object.keys(utmParams).length > 0
|
||||
) {
|
||||
item.utmSource = utmParams['utmSource'] || '';
|
||||
item.utmMedium = utmParams['utmMedium'] || '';
|
||||
item.utmCampaign =
|
||||
utmParams['utmCampaign'] || '';
|
||||
item.utmTerm = utmParams['utmTerm'] || '';
|
||||
item.utmContent = utmParams['utmContent'] || '';
|
||||
item.utmUrl = utmParams['utmUrl'] || '';
|
||||
|
||||
UiAnalytics.capture('utm_event', utmParams);
|
||||
}
|
||||
|
||||
return Promise.resolve(item);
|
||||
}}
|
||||
formType={FormType.Create}
|
||||
submitButtonText={'Sign Up'}
|
||||
onSuccess={(value: JSONObject) => {
|
||||
LoginUtil.login(value);
|
||||
onSuccess={(
|
||||
value: User,
|
||||
miscData: JSONObject | undefined
|
||||
) => {
|
||||
if (value && value.email) {
|
||||
UiAnalytics.userAuth(value.email);
|
||||
UiAnalytics.capture('accounts/register');
|
||||
}
|
||||
|
||||
LoginUtil.login({
|
||||
user: value,
|
||||
token: miscData ? miscData['token'] : undefined,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { FunctionComponent, useState } from 'react';
|
||||
import React, { useState } from 'react';
|
||||
import ModelForm, { FormType } from 'CommonUI/src/Components/Forms/ModelForm';
|
||||
import User from 'Model/Models/User';
|
||||
import Link from 'CommonUI/src/Components/Link/Link';
|
||||
@@ -10,7 +10,7 @@ import URL from 'Common/Types/API/URL';
|
||||
import { RESET_PASSWORD_API_URL } from '../Utils/ApiPaths';
|
||||
import Navigation from 'CommonUI/src/Utils/Navigation';
|
||||
|
||||
const RegisterPage: FunctionComponent = () => {
|
||||
const RegisterPage: () => JSX.Element = () => {
|
||||
const apiUrl: URL = RESET_PASSWORD_API_URL;
|
||||
const [isSuccess, setIsSuccess] = useState<boolean>(false);
|
||||
|
||||
@@ -47,20 +47,16 @@ const RegisterPage: FunctionComponent = () => {
|
||||
modelType={User}
|
||||
id="register-form"
|
||||
name="Reset Password"
|
||||
onBeforeCreate={(item: User) => {
|
||||
onBeforeCreate={(item: User): Promise<User> => {
|
||||
item.resetPasswordToken =
|
||||
Navigation.getLastParam()
|
||||
?.toString()
|
||||
.replace('/', '')
|
||||
.toString() || '';
|
||||
return item;
|
||||
return Promise.resolve(item);
|
||||
}}
|
||||
showAsColumns={1}
|
||||
maxPrimaryButtonWidth={true}
|
||||
initialValues={{
|
||||
password: '',
|
||||
confirmPassword: '',
|
||||
}}
|
||||
fields={[
|
||||
{
|
||||
field: {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { FunctionComponent, useEffect, useState } from 'react';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import Route from 'Common/Types/API/Route';
|
||||
import OneUptimeLogo from 'CommonUI/src/Images/logos/OneUptimeSVG/3-transparent.svg';
|
||||
import Link from 'CommonUI/src/Components/Link/Link';
|
||||
@@ -12,12 +12,12 @@ import ObjectID from 'Common/Types/ObjectID';
|
||||
import URL from 'Common/Types/API/URL';
|
||||
import API from 'CommonUI/src/Utils/API/API';
|
||||
|
||||
const VerifyEmail: FunctionComponent = () => {
|
||||
const VerifyEmail: () => JSX.Element = () => {
|
||||
const apiUrl: URL = VERIFY_EMAIL_API_URL;
|
||||
const [error, setError] = useState<string>('');
|
||||
const [isLoading, setIsLoading] = useState<boolean>(true);
|
||||
|
||||
const init: Function = async (): Promise<void> => {
|
||||
const init: () => Promise<void> = async (): Promise<void> => {
|
||||
// Ping an API here.
|
||||
setError('');
|
||||
setIsLoading(true);
|
||||
|
||||
@@ -15,12 +15,14 @@ export default abstract class LoginUtil {
|
||||
value['user'] as JSONObject,
|
||||
User
|
||||
) as User;
|
||||
|
||||
const token: string = value['token'] as string;
|
||||
|
||||
UserUtil.setAccessToken(token);
|
||||
UserUtil.setEmail(user.email as Email);
|
||||
UserUtil.setUserId(user.id as ObjectID);
|
||||
UserUtil.setName(user.name as Name);
|
||||
UserUtil.setIsMasterAdmin(user.isMasterAdmin as boolean);
|
||||
|
||||
Analytics.userAuth(user.email!);
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ const readEnvFile = (pathToFile) => {
|
||||
|
||||
const parsed = dotenv.config({ path: pathToFile }).parsed;
|
||||
|
||||
const env = {};
|
||||
const env = {
|
||||
};
|
||||
|
||||
for (const key in parsed) {
|
||||
env[key] = JSON.stringify(parsed[key]);
|
||||
}
|
||||
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,22 @@
|
||||
#
|
||||
|
||||
# Pull base image nodejs image.
|
||||
FROM node:18.13.0-alpine
|
||||
FROM node:current-alpine AS base
|
||||
USER root
|
||||
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
|
||||
|
||||
RUN npm config set fetch-retry-maxtimeout 6000000
|
||||
RUN npm config set fetch-retry-mintimeout 1000000
|
||||
|
||||
ARG GIT_SHA
|
||||
ARG APP_VERSION
|
||||
|
||||
ENV GIT_SHA=${GIT_SHA}
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
|
||||
|
||||
# Install bash.
|
||||
RUN apk update && apk add bash && apk add curl
|
||||
RUN apk add bash && apk add curl
|
||||
|
||||
#Use bash shell by default
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
@@ -18,7 +27,8 @@ SHELL ["/bin/bash", "-c"]
|
||||
RUN mkdir /usr/src
|
||||
|
||||
# Install common
|
||||
RUN mkdir /usr/src/Common
|
||||
|
||||
FROM base AS common
|
||||
WORKDIR /usr/src/Common
|
||||
COPY ./Common/package*.json /usr/src/Common/
|
||||
RUN npm install
|
||||
@@ -26,7 +36,8 @@ COPY ./Common /usr/src/Common
|
||||
|
||||
|
||||
# Install Model
|
||||
RUN mkdir /usr/src/Model
|
||||
|
||||
FROM base AS model
|
||||
WORKDIR /usr/src/Model
|
||||
COPY ./Model/package*.json /usr/src/Model/
|
||||
RUN npm install
|
||||
@@ -35,7 +46,8 @@ COPY ./Model /usr/src/Model
|
||||
|
||||
|
||||
# Install CommonServer
|
||||
RUN mkdir /usr/src/CommonServer
|
||||
|
||||
FROM base AS commonserver
|
||||
WORKDIR /usr/src/CommonServer
|
||||
COPY ./CommonServer/package*.json /usr/src/CommonServer/
|
||||
RUN npm install
|
||||
@@ -45,7 +57,8 @@ COPY ./CommonServer /usr/src/CommonServer
|
||||
|
||||
|
||||
# Install CommonUI
|
||||
RUN mkdir /usr/src/CommonUI
|
||||
|
||||
FROM base AS commonui
|
||||
WORKDIR /usr/src/CommonUI
|
||||
COPY ./CommonUI/package*.json /usr/src/CommonUI/
|
||||
RUN npm install --force
|
||||
@@ -53,11 +66,25 @@ COPY ./CommonUI /usr/src/CommonUI
|
||||
|
||||
|
||||
#SET ENV Variables
|
||||
# Install app
|
||||
FROM base AS app
|
||||
|
||||
WORKDIR /usr/src/Common
|
||||
COPY --from=common /usr/src/Common .
|
||||
|
||||
WORKDIR /usr/src/Model
|
||||
COPY --from=model /usr/src/Model .
|
||||
|
||||
WORKDIR /usr/src/CommonServer
|
||||
COPY --from=commonserver /usr/src/CommonServer .
|
||||
|
||||
WORKDIR /usr/src/CommonUI
|
||||
COPY --from=commonui /usr/src/CommonUI .
|
||||
|
||||
|
||||
ENV PRODUCTION=true
|
||||
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
|
||||
RUN mkdir /usr/src/app
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Install app dependencies
|
||||
@@ -65,12 +92,13 @@ COPY ./AdminDashboard/package*.json /usr/src/app/
|
||||
RUN npm install
|
||||
|
||||
# Expose ports.
|
||||
# - 3005: AdminDashboard
|
||||
EXPOSE 3005
|
||||
|
||||
# - 3158: AdminDashboard
|
||||
EXPOSE 3158
|
||||
|
||||
{{ if eq .Env.ENVIRONMENT "development" }}
|
||||
#Run the app
|
||||
RUN mkdir /usr/src/app/dev-env
|
||||
RUN touch /usr/src/app/dev-env/.env
|
||||
CMD [ "npm", "run", "dev" ]
|
||||
{{ else }}
|
||||
# Copy app source
|
||||
@@ -80,4 +108,3 @@ RUN npm run build
|
||||
#Run the app
|
||||
CMD [ "npm", "start" ]
|
||||
{{ end }}
|
||||
|
||||
|
||||
46
AdminDashboard/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Getting Started with Create React App
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
## Available Scripts
|
||||
|
||||
In the project directory, you can run:
|
||||
|
||||
### `npm start`
|
||||
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
|
||||
|
||||
The page will reload if you make edits.\
|
||||
You will also see any lint errors in the console.
|
||||
|
||||
### `npm test`
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
|
||||
### `npm run build`
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
|
||||
### `npm run eject`
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
|
||||
|
||||
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
|
||||
|
||||
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
23
AdminDashboard/Serve.ts
Executable file
@@ -0,0 +1,23 @@
|
||||
import App from 'CommonServer/Utils/StartServer';
|
||||
import Express, { ExpressApplication } from 'CommonServer/Utils/Express';
|
||||
import logger from 'CommonServer/Utils/Logger';
|
||||
|
||||
export const APP_NAME: string = 'admin';
|
||||
|
||||
const app: ExpressApplication = Express.getExpressApp();
|
||||
|
||||
const init: () => Promise<void> = async (): Promise<void> => {
|
||||
try {
|
||||
// init the app
|
||||
await App(APP_NAME, undefined, true);
|
||||
} catch (err) {
|
||||
logger.error('App Init Failed:');
|
||||
logger.error(err);
|
||||
}
|
||||
};
|
||||
|
||||
init().catch((err: Error) => {
|
||||
logger.error(err);
|
||||
});
|
||||
|
||||
export default app;
|
||||
1
AdminDashboard/dev-env/README.md
Normal file
@@ -0,0 +1 @@
|
||||
This is where env will be stored for the dev environment. This is where you will find the .env file when you exec into the container.
|
||||
4
AdminDashboard/index.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
declare module '*.png';
|
||||
declare module '*.svg';
|
||||
declare module '*.jpg';
|
||||
declare module '*.gif';
|
||||
4
AdminDashboard/nodemon.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"watch": ["webpack.config.js"],
|
||||
"exec": "export DEBUG=express:* && printenv > /usr/src/app/dev-env/.env && echo 'HOST=localhost' >> /usr/src/app/dev-env/.env && echo 'USE_HTTPS=false' >> /usr/src/app/dev-env/.env && webpack-dev-server --port=3158 --mode=development"
|
||||
}
|
||||
32648
AdminDashboard/package-lock.json
generated
Normal file
71
AdminDashboard/package.json
Normal file
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"name": "admin-dashboard",
|
||||
"version": "0.1.0",
|
||||
"private": false,
|
||||
"dependencies": {
|
||||
"@headlessui/react": "^1.7.7",
|
||||
"@heroicons/react": "^2.0.13",
|
||||
"@stripe/react-stripe-js": "^1.15.0",
|
||||
"@stripe/stripe-js": "^1.44.1",
|
||||
"Common": "file:../Common",
|
||||
"CommonServer": "file:../CommonServer",
|
||||
"CommonUI": "file:../CommonUI",
|
||||
"Model": "file:../Model",
|
||||
"react": "^18.1.0",
|
||||
"react-dnd": "^16.0.1",
|
||||
"react-dnd-html5-backend": "^16.0.1",
|
||||
"react-dom": "^18.1.0",
|
||||
"react-icons": "^4.4.0",
|
||||
"react-router": "^6.3.0",
|
||||
"react-router-dom": "^6.3.0",
|
||||
"reactflow": "^11.5.3",
|
||||
"stripe": "^11.0.0",
|
||||
"the-new-css-reset": "^1.7.3",
|
||||
"typescript": "^4.6.4",
|
||||
"use-async-effect": "^2.2.6"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "npx nodemon",
|
||||
"build": "webpack build --mode=production",
|
||||
"test": "react-app-rewired test",
|
||||
"eject": "webpack eject",
|
||||
"compile": "tsc",
|
||||
"start": "node --require ts-node/register Serve.ts",
|
||||
"audit": "npm audit --audit-level=low",
|
||||
"configure": "npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
|
||||
"dep-check": "depcheck ./ --skip-missing=true'"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@testing-library/jest-dom": "^5.16.4",
|
||||
"@testing-library/react": "^13.2.0",
|
||||
"@testing-library/user-event": "^13.5.0",
|
||||
"@types/jest": "^27.5.1",
|
||||
"@types/node": "^16.11.35",
|
||||
"@types/react": "^18.0.9",
|
||||
"@types/react-dom": "^18.0.4",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
"css-loader": "^6.7.1",
|
||||
"customize-cra": "^1.0.0",
|
||||
"nodemon": "^2.0.20",
|
||||
"react-app-rewired": "^2.2.1",
|
||||
"sass": "^1.51.0",
|
||||
"sass-loader": "^12.6.0",
|
||||
"ts-loader": "^9.3.0",
|
||||
"ts-node": "^10.9.1",
|
||||
"webpack": "^5.76.0",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack-dev-server": "^4.9.0"
|
||||
}
|
||||
}
|
||||
BIN
AdminDashboard/public/assets/fonts/camphor/font1.woff2
Executable file
BIN
AdminDashboard/public/assets/fonts/camphor/font2.woff2
Executable file
BIN
AdminDashboard/public/assets/fonts/camphor/font3.woff2
Executable file
BIN
AdminDashboard/public/assets/fonts/camphor/font4.woff2
Executable file
BIN
AdminDashboard/public/assets/fonts/rw-widgets/rw-widgets.eot
Executable file
24
AdminDashboard/public/assets/fonts/rw-widgets/rw-widgets.svg
Executable file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2017 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="rw-widgets" horiz-adv-x="1000" >
|
||||
<font-face font-family="rw-widgets" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="up-dir" unicode="" d="M571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="search" unicode="" d="M643 386q0 103-73 176t-177 74-177-74-73-176 73-177 177-73 177 73 73 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 153-31 125-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="down-dir" unicode="" d="M571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
|
||||
|
||||
<glyph glyph-name="calendar" unicode="" d="M71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-7 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 37 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 37 27 63t63 26h35q37 0 64-26t26-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="clock" unicode="" d="M500 546v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13z m232-196q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="angle-left" unicode="" d="M350 546q0-7-6-12l-219-220 219-219q6-6 6-13t-6-13l-28-28q-5-5-12-5t-13 5l-260 261q-6 5-6 12t6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13z" horiz-adv-x="357.1" />
|
||||
|
||||
<glyph glyph-name="angle-right" unicode="" d="M332 314q0-7-5-12l-261-261q-5-5-12-5t-13 5l-28 28q-6 6-6 13t6 13l219 219-219 220q-6 5-6 12t6 13l28 28q5 6 13 6t12-6l261-260q5-5 5-13z" horiz-adv-x="357.1" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
AdminDashboard/public/assets/fonts/rw-widgets/rw-widgets.ttf
Executable file
BIN
AdminDashboard/public/assets/fonts/rw-widgets/rw-widgets.woff
Executable file
BIN
AdminDashboard/public/assets/fonts/rw-widgets/rw-widgets.woff2
Executable file
1
AdminDashboard/public/assets/img/OneUptimeSVG/1.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
1
AdminDashboard/public/assets/img/OneUptimeSVG/2.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
1
AdminDashboard/public/assets/img/OneUptimeSVG/3.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
1
AdminDashboard/public/assets/img/OneUptimeSVG/4.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
1
AdminDashboard/public/assets/img/OneUptimeSVG/5.svg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
1
AdminDashboard/public/assets/img/OneUptimeSVG/6.svg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 870 B |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 902 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 924 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
BIN
AdminDashboard/public/assets/img/favicons/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#121212</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
AdminDashboard/public/assets/img/favicons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 804 B |
BIN
AdminDashboard/public/assets/img/favicons/favicon-194x194.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
AdminDashboard/public/assets/img/favicons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
AdminDashboard/public/assets/img/favicons/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
9
AdminDashboard/public/assets/img/favicons/html_code.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="194x194" href="/favicon-194x194.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#121212">
|
||||
<meta name="theme-color" content="#121212">
|
||||
BIN
AdminDashboard/public/assets/img/favicons/mstile-144x144.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
AdminDashboard/public/assets/img/favicons/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
AdminDashboard/public/assets/img/favicons/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
AdminDashboard/public/assets/img/favicons/mstile-310x310.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
AdminDashboard/public/assets/img/favicons/mstile-70x70.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M864 4667 c-7 -19 2 -1540 9 -1567 4 -13 9 -42 12 -63 14 -91 70
|
||||
-225 138 -331 28 -44 106 -121 162 -162 103 -73 173 -100 368 -144 72 -16 315
|
||||
-4 402 19 268 72 459 246 551 498 31 85 41 129 59 253 5 34 10 1314 6 1482
|
||||
l-1 27 -210 -1 c-208 0 -210 0 -211 -22 0 -11 -2 -340 -4 -731 -1 -390 -5
|
||||
-728 -9 -750 -29 -182 -125 -315 -258 -361 -74 -26 -252 -26 -325 -1 -135 47
|
||||
-231 205 -249 409 -4 45 -8 391 -8 768 l-1 685 -213 2 c-154 1 -215 -2 -218
|
||||
-10z"/>
|
||||
<path d="M3663 4169 c-125 -14 -257 -70 -354 -149 l-46 -38 -38 40 c-68 69
|
||||
-161 105 -294 114 l-87 6 -42 -154 c-23 -84 -45 -167 -48 -184 l-6 -31 50 5
|
||||
c62 5 118 -12 134 -41 9 -17 13 -257 14 -992 1 -533 2 -972 3 -975 0 -3 94 -5
|
||||
208 -5 l208 1 0 359 c1 198 4 361 8 362 4 2 35 -10 69 -26 114 -51 159 -62
|
||||
283 -66 169 -7 323 46 454 155 310 258 414 756 241 1161 -131 309 -435 493
|
||||
-757 458z m169 -412 c75 -34 140 -102 182 -191 46 -97 60 -163 59 -286 0 -251
|
||||
-105 -431 -280 -483 -57 -17 -157 -16 -221 2 -44 12 -139 66 -181 102 l-25 20
|
||||
0 357 -1 357 30 28 c50 47 114 88 168 107 75 27 193 21 269 -13z"/>
|
||||
<path d="M4932 4013 c-18 -6 -35 -13 -36 -15 -24 -27 -26 -83 -26 -688 l0
|
||||
-642 29 -29 29 -29 650 0 649 0 26 25 c13 14 26 36 28 48 3 12 4 303 4 647 -1
|
||||
587 -2 627 -19 653 -10 15 -30 30 -43 33 -49 13 -1255 10 -1291 -3z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
56
AdminDashboard/public/assets/img/favicons/site.webmanifest
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"name": "OneUptime Account",
|
||||
"short_name": "OneUptime",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/accounts/assets/img/favicons/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"theme_color": "#121212",
|
||||
"background_color": "#121212",
|
||||
"display": "standalone"
|
||||
}
|
||||
|
||||
BIN
AdminDashboard/public/assets/img/icon-96-96.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
11
AdminDashboard/public/assets/js/landing.base.js
Executable file
@@ -0,0 +1,11 @@
|
||||
|
||||
$(document).ready(function() {
|
||||
setTimeout(()=>{
|
||||
|
||||
$('div.bar').tipsy({
|
||||
gravity: 'se',
|
||||
html: true,
|
||||
offset: 1
|
||||
});
|
||||
},1000);
|
||||
});
|
||||
BIN
AdminDashboard/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
AdminDashboard/public/img/placeholder.png
Normal file
|
After Width: | Height: | Size: 173 KiB |
130
AdminDashboard/public/index.html
Normal file
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta charSet='utf-8' />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<meta name="slack-app-id" content="ACVBMTPJQ">
|
||||
<meta name="description" content="OneUptime — the complete open-source observability platform.">
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-PKQD5WH');
|
||||
</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<link rel="manifest" href="/admin/assets/img/favicons/ma">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/admin/assets/img/favicons/apple-touch-icon.png">
|
||||
<link rel="shortcut icon" href="/admin/assets/img/favicons/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/admin/assets/img/favicons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="194x194" href="/admin/assets/img/favicons/favicon-194x194.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/admin/assets/img/favicons/android-chrome-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/admin/assets/img/favicons/favicon-16x16.png">
|
||||
<link rel="mask-icon" href="/admin/assets/img/favicons/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#121212">
|
||||
<meta name="msapplication-TileImage" content="/admin/assets/img/favicons/mstile-144x144.png">
|
||||
<meta name="theme-color" content="#121212">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* {
|
||||
font-family: Inter;
|
||||
}
|
||||
|
||||
|
||||
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
|
||||
background: transparent;
|
||||
bottom: 0;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
input[type="date"]::-webkit-calendar-picker-indicator {
|
||||
background: transparent;
|
||||
bottom: 0;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
height: auto;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: auto;
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
|
||||
<script src="/admin/env.js"></script>
|
||||
|
||||
|
||||
<title>OneUptime Admin Dashboard</title>
|
||||
|
||||
|
||||
<!-- Preload light, regular, medium and bold, which are fonts that are used on home
|
||||
<link rel="preload" href="/admin/assets/fonts/camphor/font1.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="/admin/assets/fonts/camphor/font2.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="/admin/assets/fonts/camphor/font3.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="/admin/assets/fonts/camphor/font4.woff2" as="font" type="font/woff2" crossorigin=""> -->
|
||||
|
||||
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
</head>
|
||||
<body class="h-full bg-gray-50">
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PKQD5WH"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
<script src="/admin/dist/bundle.js"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend:
|
||||
{
|
||||
fontFamily: {
|
||||
'display': ['Inter', 'sans-serif'],
|
||||
'body': ['Inter', 'sans-serif']
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
1
AdminDashboard/public/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
AdminDashboard/public/logo192.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
AdminDashboard/public/logo512.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
25
AdminDashboard/public/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"short_name": "React App",
|
||||
"name": "Create React App Sample",
|
||||
"icons": [
|
||||
{
|
||||
"src": "./assets/img/favicons/favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "logo192.png",
|
||||
"type": "image/png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "logo512.png",
|
||||
"type": "image/png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
||||
3
AdminDashboard/public/robots.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||
119
AdminDashboard/src/App.tsx
Normal file
@@ -0,0 +1,119 @@
|
||||
import React from 'react';
|
||||
import {
|
||||
Routes,
|
||||
Route as PageRoute,
|
||||
useNavigate,
|
||||
useLocation,
|
||||
useParams,
|
||||
} from 'react-router-dom';
|
||||
import Navigation from 'CommonUI/src/Utils/Navigation';
|
||||
import User from 'CommonUI/src/Utils/User';
|
||||
import URL from 'Common/Types/API/URL';
|
||||
import { ACCOUNTS_URL, DASHBOARD_URL } from 'CommonUI/src/Config';
|
||||
import MasterPage from './Components/MasterPage/MasterPage';
|
||||
import RouteMap from './Utils/RouteMap';
|
||||
import PageMap from './Utils/PageMap';
|
||||
import Init from './Pages/Init/Init';
|
||||
import Projects from './Pages/Projects/Index';
|
||||
import Users from './Pages/Users/Index';
|
||||
import Logout from './Pages/Logout/Logout';
|
||||
|
||||
// Settings Pages.
|
||||
import SettingsHost from './Pages/Settings/Host/Index';
|
||||
import SettingsEmail from './Pages/Settings/SMTP/Index';
|
||||
import SettingsCallSMS from './Pages/Settings/CallSMS/Index';
|
||||
import SettingsProbes from './Pages/Settings/Probes/Index';
|
||||
import SettingsAuthentication from './Pages/Settings/Authentication/Index';
|
||||
import SettingsAPIKey from './Pages/Settings/APIKey/Index';
|
||||
|
||||
const App: () => JSX.Element = () => {
|
||||
Navigation.setNavigateHook(useNavigate());
|
||||
Navigation.setLocation(useLocation());
|
||||
Navigation.setParams(useParams());
|
||||
|
||||
if (!User.isLoggedIn()) {
|
||||
if (Navigation.getQueryStringByName('sso_token')) {
|
||||
Navigation.navigate(
|
||||
URL.fromString(ACCOUNTS_URL.toString()).addQueryParam(
|
||||
'sso',
|
||||
'true'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
Navigation.navigate(URL.fromString(ACCOUNTS_URL.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
if (!User.isMasterAdmin()) {
|
||||
Navigation.navigate(URL.fromString(DASHBOARD_URL.toString()));
|
||||
}
|
||||
|
||||
return (
|
||||
<MasterPage>
|
||||
<Routes>
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.INIT]?.toString() || ''}
|
||||
element={<Init />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.PROJECTS]?.toString() || ''}
|
||||
element={<Projects />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.USERS]?.toString() || ''}
|
||||
element={<Users />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.LOGOUT]?.toString() || ''}
|
||||
element={<Logout />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.SETTINGS]?.toString() || ''}
|
||||
element={<SettingsHost />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.SETTINGS_HOST]?.toString() || ''}
|
||||
element={<SettingsHost />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.SETTINGS_SMTP]?.toString() || ''}
|
||||
element={<SettingsEmail />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={
|
||||
RouteMap[PageMap.SETTINGS_CALL_AND_SMS]?.toString() ||
|
||||
''
|
||||
}
|
||||
element={<SettingsCallSMS />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.SETTINGS_PROBES]?.toString() || ''}
|
||||
element={<SettingsProbes />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={
|
||||
RouteMap[PageMap.SETTINGS_AUTHENTICATION]?.toString() ||
|
||||
''
|
||||
}
|
||||
element={<SettingsAuthentication />}
|
||||
/>
|
||||
|
||||
<PageRoute
|
||||
path={RouteMap[PageMap.SETTINGS_API_KEY]?.toString() || ''}
|
||||
element={<SettingsAPIKey />}
|
||||
/>
|
||||
</Routes>
|
||||
</MasterPage>
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||