Compare commits
1082 Commits
7.0.2639
...
dashboardi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d4b8b7881 | ||
|
|
4626520f62 | ||
|
|
7c04569a14 | ||
|
|
bd8b1ca909 | ||
|
|
13dddab5e5 | ||
|
|
771b0e4645 | ||
|
|
d99111b2f9 | ||
|
|
c2bb44f823 | ||
|
|
7ece118acd | ||
|
|
9b4ef72682 | ||
|
|
25ba824d79 | ||
|
|
9b35836dc8 | ||
|
|
809f9a38bc | ||
|
|
df08f2b188 | ||
|
|
9512b9d001 | ||
|
|
995026f65f | ||
|
|
d619d2afff | ||
|
|
1affe3cdda | ||
|
|
0bee18fa63 | ||
|
|
2ad7face9a | ||
|
|
33604bba3c | ||
|
|
9d6c34b796 | ||
|
|
052c3040fb | ||
|
|
89804ebbd1 | ||
|
|
e21572af6d | ||
|
|
3865f6cb06 | ||
|
|
296791ed25 | ||
|
|
017216b8a6 | ||
|
|
6fb6329356 | ||
|
|
477da276b2 | ||
|
|
dbf90bf114 | ||
|
|
d6fa9b3905 | ||
|
|
95573032e7 | ||
|
|
82699e5276 | ||
|
|
54b95107c3 | ||
|
|
e54b337c45 | ||
|
|
75ab4bd946 | ||
|
|
b31ffab577 | ||
|
|
8f2da2bdc5 | ||
|
|
6ae31ac0da | ||
|
|
da22f2ef51 | ||
|
|
a882507aff | ||
|
|
04c74de8e3 | ||
|
|
f13adebc04 | ||
|
|
5573d1cd6c | ||
|
|
24d15c98ef | ||
|
|
97de3ff6c7 | ||
|
|
7bcecd0a1d | ||
|
|
b050dfdc1c | ||
|
|
05a2fe6665 | ||
|
|
986479e8d5 | ||
|
|
16fad55f9f | ||
|
|
4f03f448e8 | ||
|
|
f3e72a30d3 | ||
|
|
cf319c5afb | ||
|
|
3afd4ed5b5 | ||
|
|
00a783acca | ||
|
|
3733c99b67 | ||
|
|
e9daf776de | ||
|
|
aced5f2124 | ||
|
|
74ff0adefe | ||
|
|
4cefa756d6 | ||
|
|
365e44ebf9 | ||
|
|
b7d34e878f | ||
|
|
15b2bf2071 | ||
|
|
5e85e73c0b | ||
|
|
b9b5ca3325 | ||
|
|
d89ee302fd | ||
|
|
a39db4ffc9 | ||
|
|
bbced15076 | ||
|
|
1b3cde35f3 | ||
|
|
f1dda4a7b3 | ||
|
|
f50120d19a | ||
|
|
9d50f77908 | ||
|
|
f0a3ddbf2e | ||
|
|
8a35eb47e6 | ||
|
|
6ccf8961bf | ||
|
|
fab8ca112b | ||
|
|
bb81d4cf27 | ||
|
|
931999c39f | ||
|
|
2e1e112b42 | ||
|
|
3b7a7c3c49 | ||
|
|
5d9252d1ff | ||
|
|
7c85fb4ded | ||
|
|
9e45f4cea9 | ||
|
|
f5d2c61a70 | ||
|
|
d072a29cf8 | ||
|
|
0d262429d9 | ||
|
|
7b1960f00c | ||
|
|
e253be732f | ||
|
|
eaf4193cb0 | ||
|
|
d7f881c468 | ||
|
|
8270934564 | ||
|
|
8590cfa4c0 | ||
|
|
09196f397e | ||
|
|
bc714759bc | ||
|
|
06d0dba258 | ||
|
|
40cd066473 | ||
|
|
7a38a0d9da | ||
|
|
add11806e0 | ||
|
|
97bf26ab03 | ||
|
|
09955a5ba9 | ||
|
|
30db4e58ff | ||
|
|
7eebd75088 | ||
|
|
d17b687e03 | ||
|
|
f08dbf6e8f | ||
|
|
4be7675b74 | ||
|
|
6acb0fb486 | ||
|
|
54cd18896a | ||
|
|
b5596968a5 | ||
|
|
25f2d527f8 | ||
|
|
7a052d69d0 | ||
|
|
b151eaace7 | ||
|
|
8e2336f753 | ||
|
|
b0a4bcc5fb | ||
|
|
c8d4bea49b | ||
|
|
facc564616 | ||
|
|
591b3ab41c | ||
|
|
cfc1fb47be | ||
|
|
4a7ac0ffab | ||
|
|
bb5a019afd | ||
|
|
b624bd49ee | ||
|
|
249a9d991c | ||
|
|
49a2ee18a1 | ||
|
|
11a4f3442d | ||
|
|
f25f7f1f81 | ||
|
|
d60d9c5a80 | ||
|
|
56e8c24449 | ||
|
|
bf63badd19 | ||
|
|
cc1d60af11 | ||
|
|
e6b47d85d6 | ||
|
|
ae79417fbc | ||
|
|
eaed1f8b64 | ||
|
|
333b06bc8a | ||
|
|
cb8cf089c0 | ||
|
|
22f5633a32 | ||
|
|
2f47a3e808 | ||
|
|
c217eea478 | ||
|
|
1c6a242f3b | ||
|
|
7a0cf315fc | ||
|
|
e5bb7dccc7 | ||
|
|
c789438c62 | ||
|
|
bc0e8e323f | ||
|
|
fd15e66f83 | ||
|
|
c833bcb37a | ||
|
|
7c941da7df | ||
|
|
a2e71afd53 | ||
|
|
84fcb265f6 | ||
|
|
ae493aaee7 | ||
|
|
cc0670c291 | ||
|
|
0733c15363 | ||
|
|
8727914521 | ||
|
|
32fa57c63b | ||
|
|
346891e85d | ||
|
|
979e58ebf5 | ||
|
|
e9dfe14801 | ||
|
|
3f8c62747a | ||
|
|
9a38675676 | ||
|
|
3d7b118e37 | ||
|
|
c1beb9c0a0 | ||
|
|
299707f748 | ||
|
|
d48b725f6a | ||
|
|
a0d77ac104 | ||
|
|
20b5e43b26 | ||
|
|
a10a83ad32 | ||
|
|
bf01322fbd | ||
|
|
73fc3e3a08 | ||
|
|
221f3774de | ||
|
|
b79dafc9df | ||
|
|
ed7a693966 | ||
|
|
4982febd74 | ||
|
|
98fe5deba7 | ||
|
|
54e8a4c224 | ||
|
|
7465a44690 | ||
|
|
dab51a837d | ||
|
|
003fdb4de4 | ||
|
|
2e5ec1df6f | ||
|
|
8afa3810a1 | ||
|
|
e9b611b19f | ||
|
|
700dbe2a4d | ||
|
|
897aa6044d | ||
|
|
3220a0ccb8 | ||
|
|
dbad05baa6 | ||
|
|
63af60967e | ||
|
|
ca7745cfad | ||
|
|
61a275ee34 | ||
|
|
b35122d575 | ||
|
|
34a54fbdfc | ||
|
|
e7bfe6ea47 | ||
|
|
211ac4835a | ||
|
|
1577f72b87 | ||
|
|
0afa4f4664 | ||
|
|
08d3bd535d | ||
|
|
b34b92dec7 | ||
|
|
51334d8a8c | ||
|
|
1d0e7826f9 | ||
|
|
e5dcec62fc | ||
|
|
7b02c6dd44 | ||
|
|
063b9b3a43 | ||
|
|
2c2bc3a7fa | ||
|
|
d6530cbaf7 | ||
|
|
e6bc276d54 | ||
|
|
ebcb2e8239 | ||
|
|
9784f1f34c | ||
|
|
03cb414ae4 | ||
|
|
3809b4585a | ||
|
|
9be007cbda | ||
|
|
a0031a868a | ||
|
|
49ce5c3524 | ||
|
|
0aba3d9071 | ||
|
|
80d0993aff | ||
|
|
1ec3bbd6b0 | ||
|
|
da1afcd921 | ||
|
|
3b4fb6bff6 | ||
|
|
fd8b1a9865 | ||
|
|
44c0c7564d | ||
|
|
80eb76108b | ||
|
|
8669de393f | ||
|
|
45b00b3116 | ||
|
|
85b33f0f64 | ||
|
|
57cbc7e47c | ||
|
|
ffbdb1c9b5 | ||
|
|
e554ff5beb | ||
|
|
a49ca14fde | ||
|
|
0480e47c23 | ||
|
|
ceb688726b | ||
|
|
7ecf4257d5 | ||
|
|
402c777a6b | ||
|
|
ea0a9d94bc | ||
|
|
89da4dea4c | ||
|
|
91bec9d58f | ||
|
|
43815f1ab9 | ||
|
|
a2cb72e729 | ||
|
|
d79d17e230 | ||
|
|
6c73747564 | ||
|
|
9a7ea2ce59 | ||
|
|
97f4d3612d | ||
|
|
21ea8d0aa2 | ||
|
|
af177d0569 | ||
|
|
cd64280ad7 | ||
|
|
da78c0bfee | ||
|
|
4f0526b7ec | ||
|
|
187c12e47f | ||
|
|
b50478e886 | ||
|
|
d5a9b3fba3 | ||
|
|
7dd809caab | ||
|
|
a6f6b12ae2 | ||
|
|
7cd6c0f3a9 | ||
|
|
5776e5d734 | ||
|
|
10878547ff | ||
|
|
02f4ae806a | ||
|
|
3ea955b55b | ||
|
|
59b6742e63 | ||
|
|
34db66f130 | ||
|
|
55aa602952 | ||
|
|
8004c2e283 | ||
|
|
5725d30e8a | ||
|
|
2d1b1720d5 | ||
|
|
1b74d94d0a | ||
|
|
c90c575d42 | ||
|
|
fe161465dd | ||
|
|
26e3bb2074 | ||
|
|
bee38554ea | ||
|
|
68389cda85 | ||
|
|
1cdf9ecdf1 | ||
|
|
1091801ca7 | ||
|
|
cc8c3f7d9e | ||
|
|
e2ef8ae2ce | ||
|
|
1a15cb31f7 | ||
|
|
7d3f7ba551 | ||
|
|
8d95d02ac6 | ||
|
|
94f0446802 | ||
|
|
6ff776f185 | ||
|
|
96a5de2df2 | ||
|
|
b55c1b9acd | ||
|
|
290d3bf2c1 | ||
|
|
db02cbecae | ||
|
|
61084af45a | ||
|
|
ae996dbe07 | ||
|
|
a35d26bc6a | ||
|
|
841183566c | ||
|
|
6aa9895e72 | ||
|
|
1fefa11f35 | ||
|
|
ffb5d42b8b | ||
|
|
215c1e95b0 | ||
|
|
1f3c041fc9 | ||
|
|
8892fe9030 | ||
|
|
aa51c5538a | ||
|
|
59f666e83d | ||
|
|
75f46d5187 | ||
|
|
a12bcbfdde | ||
|
|
969982056e | ||
|
|
dcb9e167e1 | ||
|
|
29adbaa2ec | ||
|
|
86168a50ee | ||
|
|
5a31785895 | ||
|
|
684abc02a0 | ||
|
|
f728a94a80 | ||
|
|
dc37d723e6 | ||
|
|
5f5a051136 | ||
|
|
1d85490c55 | ||
|
|
956ac101a2 | ||
|
|
a5bd73a13b | ||
|
|
25755c4810 | ||
|
|
8f7cac7108 | ||
|
|
51ff018a61 | ||
|
|
2a345a3948 | ||
|
|
8f49a8202f | ||
|
|
be5c11263c | ||
|
|
20e56fb1d7 | ||
|
|
72ffaace2d | ||
|
|
4b8c799617 | ||
|
|
6b9a46b4ba | ||
|
|
8e74997b48 | ||
|
|
505eb26b90 | ||
|
|
6736e6c74e | ||
|
|
21c9facc02 | ||
|
|
1b5058685c | ||
|
|
c0c8feabe9 | ||
|
|
974a55df9b | ||
|
|
bdb2dbbbbc | ||
|
|
4febd87ff8 | ||
|
|
0f8317d250 | ||
|
|
09370dbc41 | ||
|
|
dcc724a94d | ||
|
|
0bcc23655d | ||
|
|
5f1243216b | ||
|
|
bc794f32ff | ||
|
|
c57fb025f0 | ||
|
|
9b981f1181 | ||
|
|
cc1a4df787 | ||
|
|
9fbdc6800b | ||
|
|
97c2e65b15 | ||
|
|
6a99c01e8a | ||
|
|
303bf52767 | ||
|
|
da323939f2 | ||
|
|
c5cf48dccd | ||
|
|
c324b86cbe | ||
|
|
f62f571586 | ||
|
|
ea5ee48dde | ||
|
|
72ebef1c2d | ||
|
|
4d4949da34 | ||
|
|
5feb51f030 | ||
|
|
efcf99f902 | ||
|
|
2e962d918c | ||
|
|
e517a1b8fa | ||
|
|
d3da823e71 | ||
|
|
40698c4218 | ||
|
|
e074633c6c | ||
|
|
ec4268cce7 | ||
|
|
24bd374baa | ||
|
|
0f58e16702 | ||
|
|
2c49b8b457 | ||
|
|
cbf3156b28 | ||
|
|
e3c68fdb4c | ||
|
|
1682a25513 | ||
|
|
bdb747b8e7 | ||
|
|
3925354332 | ||
|
|
6037c30765 | ||
|
|
6e3ec31e0e | ||
|
|
e7377f6c8f | ||
|
|
d9fca7e669 | ||
|
|
5bfe38736e | ||
|
|
eac7134630 | ||
|
|
94eaab9ca4 | ||
|
|
ddf0b67546 | ||
|
|
0aa4d39ab0 | ||
|
|
848b61033a | ||
|
|
e11ab9ee5c | ||
|
|
806fada436 | ||
|
|
10eb7239dc | ||
|
|
62bf2ee6f3 | ||
|
|
87234c95ce | ||
|
|
c4fbc7fadd | ||
|
|
fb1f129089 | ||
|
|
989a082d3e | ||
|
|
eb4d8325a5 | ||
|
|
af3455eedb | ||
|
|
7a0600836e | ||
|
|
50c3bbb845 | ||
|
|
99daa9f25b | ||
|
|
b30789cd75 | ||
|
|
39ff367afe | ||
|
|
012c9299ed | ||
|
|
0559997c01 | ||
|
|
b8fad24329 | ||
|
|
e907c235a9 | ||
|
|
258914731c | ||
|
|
465691ee31 | ||
|
|
d5af7a907d | ||
|
|
a993db8675 | ||
|
|
1822107c49 | ||
|
|
bd5808b2d4 | ||
|
|
4facc12e44 | ||
|
|
6a10bdff56 | ||
|
|
9be38d55c6 | ||
|
|
74d210bffd | ||
|
|
4b986346ae | ||
|
|
507b214cc1 | ||
|
|
7904d36650 | ||
|
|
a23039afb6 | ||
|
|
5be761dd7c | ||
|
|
6398fea83e | ||
|
|
4b0f71b4e4 | ||
|
|
4314920cd7 | ||
|
|
d2cb9a8eeb | ||
|
|
7512145a50 | ||
|
|
b3f4406c3c | ||
|
|
06ac018ec6 | ||
|
|
c76237f785 | ||
|
|
97e60faa22 | ||
|
|
b857555cd7 | ||
|
|
6541fc41f0 | ||
|
|
8bb2c3c865 | ||
|
|
e34cdd77db | ||
|
|
6b0d48ce4f | ||
|
|
6fb477383d | ||
|
|
2269681487 | ||
|
|
6e10739479 | ||
|
|
1f3cb96f0a | ||
|
|
e85f8c19df | ||
|
|
bc9a8c5151 | ||
|
|
9b83202e58 | ||
|
|
3ca4d5d481 | ||
|
|
5c4d4b2c63 | ||
|
|
fd0a95d436 | ||
|
|
23c65cecf0 | ||
|
|
5c3dcf7bc9 | ||
|
|
108940678f | ||
|
|
3df72091a2 | ||
|
|
b1de73a16a | ||
|
|
f715b14b74 | ||
|
|
17eef6408e | ||
|
|
bc288100c0 | ||
|
|
c4a01058b7 | ||
|
|
cb10647285 | ||
|
|
fb8b00d383 | ||
|
|
4563f42794 | ||
|
|
a6072634f2 | ||
|
|
646908e66b | ||
|
|
ed150c1482 | ||
|
|
fac59332ed | ||
|
|
64725b3973 | ||
|
|
3636b160fb | ||
|
|
fee3264350 | ||
|
|
5bcd451bc8 | ||
|
|
7c2d6dc9e5 | ||
|
|
185eb20d1b | ||
|
|
cc7696f481 | ||
|
|
a3856588bb | ||
|
|
1a9668a877 | ||
|
|
92e519c49e | ||
|
|
3c296f72d8 | ||
|
|
f0e701c5bb | ||
|
|
7fa461e652 | ||
|
|
66b4fbded1 | ||
|
|
e7fc9bb9a5 | ||
|
|
2f3dbebe9a | ||
|
|
a6a5f189c3 | ||
|
|
67f1ad9ef1 | ||
|
|
4e7d1d5c7a | ||
|
|
b9dd9eb8de | ||
|
|
3c86293864 | ||
|
|
b202b07353 | ||
|
|
9db1c59893 | ||
|
|
ac7d4f974b | ||
|
|
6251dfe482 | ||
|
|
dbdca789d4 | ||
|
|
12e766e9d4 | ||
|
|
ba2a480d4f | ||
|
|
3b141d7e90 | ||
|
|
61541ac7c9 | ||
|
|
abde6ee7cb | ||
|
|
9aae86cc78 | ||
|
|
222027f2e0 | ||
|
|
adfb3e1db4 | ||
|
|
fe8aa54f1c | ||
|
|
5237384d08 | ||
|
|
aca766a252 | ||
|
|
ee29277cb9 | ||
|
|
310ca572ff | ||
|
|
3d13620a28 | ||
|
|
1c069c60fc | ||
|
|
7146b341c5 | ||
|
|
8f8e40aa71 | ||
|
|
0e9c752aae | ||
|
|
d37f8a4049 | ||
|
|
26dd72eea2 | ||
|
|
462105c6fd | ||
|
|
5662d45826 | ||
|
|
32ebb26960 | ||
|
|
235fed6f17 | ||
|
|
a51c0c45e4 | ||
|
|
8ea54108c1 | ||
|
|
cba6e9e2a0 | ||
|
|
bd1e1792e4 | ||
|
|
e5c9b20c64 | ||
|
|
8145f07e51 | ||
|
|
56654085a4 | ||
|
|
a6ddba16ec | ||
|
|
b3cf198649 | ||
|
|
4dd7285c13 | ||
|
|
5347b5c109 | ||
|
|
24b956c55f | ||
|
|
32c9d6d2df | ||
|
|
c883ce6a34 | ||
|
|
3851c1f963 | ||
|
|
dd5cb900ff | ||
|
|
47a4fe1937 | ||
|
|
0d0e64f633 | ||
|
|
cc432dfa1c | ||
|
|
0fd161d251 | ||
|
|
a6cb80f640 | ||
|
|
5dbd8b9b35 | ||
|
|
3df855c52a | ||
|
|
183ff170ae | ||
|
|
946e53b5c5 | ||
|
|
c8f8b79cea | ||
|
|
cf71ba0c72 | ||
|
|
90ffb7233d | ||
|
|
7742318b74 | ||
|
|
5a1705cf12 | ||
|
|
fe55d39d14 | ||
|
|
a820b53d65 | ||
|
|
d2a9d9fed4 | ||
|
|
c9a69db7f2 | ||
|
|
69dd24128a | ||
|
|
7c2238eac7 | ||
|
|
2e850ed6ab | ||
|
|
7e54fc33ae | ||
|
|
bc15416103 | ||
|
|
b61fb75e36 | ||
|
|
a2d2ed038b | ||
|
|
f36ea78168 | ||
|
|
14cf7f047f | ||
|
|
c64c3d7012 | ||
|
|
8cb15df390 | ||
|
|
32da3f7c94 | ||
|
|
9355f185a9 | ||
|
|
c53584e9d5 | ||
|
|
01be73612d | ||
|
|
99a80ab9b6 | ||
|
|
95dca8e8c6 | ||
|
|
eddc5f1845 | ||
|
|
c965c18943 | ||
|
|
3c20f424e9 | ||
|
|
0ef7ca93f8 | ||
|
|
ca7c55b557 | ||
|
|
a72373994a | ||
|
|
fc0071162e | ||
|
|
3eef55a29d | ||
|
|
aa5dc27427 | ||
|
|
900e567748 | ||
|
|
a88b14747c | ||
|
|
1619b23996 | ||
|
|
6ed7e19538 | ||
|
|
41a3bc8a72 | ||
|
|
2621dc7cc2 | ||
|
|
c40ec85ce3 | ||
|
|
ff6369389c | ||
|
|
9211c91510 | ||
|
|
3e778fe503 | ||
|
|
77308cd9b7 | ||
|
|
60a33b5b0c | ||
|
|
679649e7ac | ||
|
|
719272e360 | ||
|
|
ca7907973a | ||
|
|
86e5a33bd9 | ||
|
|
3eb6f4da5f | ||
|
|
dea6c55365 | ||
|
|
ce9e449ba1 | ||
|
|
12530a1d0d | ||
|
|
4e81ed92f2 | ||
|
|
21047e77b1 | ||
|
|
67a326e6af | ||
|
|
23318f093f | ||
|
|
805a9b928f | ||
|
|
63202cc51f | ||
|
|
bb646bbcf1 | ||
|
|
000012cd03 | ||
|
|
1ed9dfc429 | ||
|
|
491b89cbb4 | ||
|
|
bfc8619095 | ||
|
|
8ec5e4bb8a | ||
|
|
c0c596346c | ||
|
|
e27d47e5bb | ||
|
|
524863dff3 | ||
|
|
5bc054504a | ||
|
|
6fd43622a3 | ||
|
|
725a58d5fb | ||
|
|
9bf3856c95 | ||
|
|
5fc95eb02e | ||
|
|
3f7cfa3110 | ||
|
|
bca44b5faf | ||
|
|
02f91d26ff | ||
|
|
5221c20ee2 | ||
|
|
ea0d1a479f | ||
|
|
ea3c357be1 | ||
|
|
b1c3a9e3c8 | ||
|
|
9ec136bf78 | ||
|
|
c4611848e3 | ||
|
|
a096591c52 | ||
|
|
b29fb6e833 | ||
|
|
2e2ade0b16 | ||
|
|
525ad8c664 | ||
|
|
434c55f88f | ||
|
|
c968156fa7 | ||
|
|
36a0dad41c | ||
|
|
52630b16d1 | ||
|
|
7b994675c8 | ||
|
|
d0692ebc8f | ||
|
|
63197d263f | ||
|
|
13b1998261 | ||
|
|
29764ae7c7 | ||
|
|
5c3175f9e7 | ||
|
|
8caac12041 | ||
|
|
d84cf5b8ec | ||
|
|
a49709992c | ||
|
|
21b078040c | ||
|
|
70371a32af | ||
|
|
f45985e0ce | ||
|
|
f1d7e0d13f | ||
|
|
3f8a5291f0 | ||
|
|
e60b06d014 | ||
|
|
c9e67311e7 | ||
|
|
0b10880f58 | ||
|
|
d49a6ce009 | ||
|
|
9b8a5c9c43 | ||
|
|
9dc31fe536 | ||
|
|
0d40be3db1 | ||
|
|
6754167e57 | ||
|
|
3bf74edae4 | ||
|
|
8a77ae977e | ||
|
|
6fbca4b6cb | ||
|
|
5cf1a7f675 | ||
|
|
7339f4873b | ||
|
|
0872b1e8a2 | ||
|
|
8307f4deca | ||
|
|
0ac88b3679 | ||
|
|
2c5bbbb6da | ||
|
|
88216cdebb | ||
|
|
a24822bd56 | ||
|
|
b1ce674788 | ||
|
|
8f4538a75c | ||
|
|
14be322ef7 | ||
|
|
b50f05b290 | ||
|
|
e215b5b1ba | ||
|
|
c93f58227f | ||
|
|
538e40c4ae | ||
|
|
4a03abe3d5 | ||
|
|
c218a6f209 | ||
|
|
a8f04a8204 | ||
|
|
642b1616ca | ||
|
|
9afbac2cbc | ||
|
|
b6b49a1255 | ||
|
|
1cd89851bb | ||
|
|
229b5cd772 | ||
|
|
2b1ad303d9 | ||
|
|
54b0f355dc | ||
|
|
10ed38197e | ||
|
|
cc4dab2dcf | ||
|
|
8852e2ab61 | ||
|
|
50b6a746f4 | ||
|
|
df8d2f25ee | ||
|
|
ee3de663b5 | ||
|
|
a4d1ed7f01 | ||
|
|
05a26d0b3f | ||
|
|
0a5094db37 | ||
|
|
2f2c4891e3 | ||
|
|
83cb3b66e0 | ||
|
|
63575f3065 | ||
|
|
bf031f64fa | ||
|
|
04f1cfe414 | ||
|
|
f11863df0f | ||
|
|
599fc23c1a | ||
|
|
fa03d9296c | ||
|
|
df9bb5184f | ||
|
|
ca7b06d4bc | ||
|
|
59d6ef240f | ||
|
|
5ae034ffdf | ||
|
|
be75960aff | ||
|
|
708f104dfc | ||
|
|
23c34cc71a | ||
|
|
3bf76168f1 | ||
|
|
3499850c6d | ||
|
|
273a153311 | ||
|
|
b248dc324d | ||
|
|
7d7b4110a7 | ||
|
|
262436f906 | ||
|
|
2c7b845cb6 | ||
|
|
3c9284915a | ||
|
|
ba97a1e14b | ||
|
|
e552a8130f | ||
|
|
1ed2548be2 | ||
|
|
5c697105f3 | ||
|
|
b2bdd5d1af | ||
|
|
72e0f200f7 | ||
|
|
3f0d75d799 | ||
|
|
519f2ef312 | ||
|
|
cfbe92e40a | ||
|
|
8ef66650fb | ||
|
|
07973e85a3 | ||
|
|
34ca901007 | ||
|
|
09883b1129 | ||
|
|
b94b775e46 | ||
|
|
1c3b7d9982 | ||
|
|
ff062cb6a2 | ||
|
|
2cabc922a0 | ||
|
|
b6aaea8ae4 | ||
|
|
886aa086ec | ||
|
|
6c44201e1c | ||
|
|
3a72c5d04f | ||
|
|
ea162322d2 | ||
|
|
222c857354 | ||
|
|
d2d705783e | ||
|
|
75a7308647 | ||
|
|
d61ade1eb4 | ||
|
|
55e1f6b504 | ||
|
|
8b95f2887c | ||
|
|
2bd1693d1f | ||
|
|
b1eaded3fd | ||
|
|
7e486d34ae | ||
|
|
c930caa2bb | ||
|
|
e654b65e71 | ||
|
|
a145b346a4 | ||
|
|
f090654ab6 | ||
|
|
c2e14c378b | ||
|
|
77996b2066 | ||
|
|
5fce72fe59 | ||
|
|
9f8764d741 | ||
|
|
9ce44cc416 | ||
|
|
f5f542cae6 | ||
|
|
de4eea4d24 | ||
|
|
104535b723 | ||
|
|
6f5dfceb34 | ||
|
|
1ec61a473a | ||
|
|
abf4faade7 | ||
|
|
6a9ee5ba75 | ||
|
|
b696e52145 | ||
|
|
8af8eb34ad | ||
|
|
e600fac4fd | ||
|
|
1772953b34 | ||
|
|
44e3c99da8 | ||
|
|
5fa0f23689 | ||
|
|
5a9a53dfea | ||
|
|
9dae8e1764 | ||
|
|
2c8b58c293 | ||
|
|
57686c87e3 | ||
|
|
738fb77773 | ||
|
|
51a714f4bd | ||
|
|
358b785fe0 | ||
|
|
a464723729 | ||
|
|
5ab959cec5 | ||
|
|
97bb269ccf | ||
|
|
85c70bbc17 | ||
|
|
7effd05896 | ||
|
|
3123b5304d | ||
|
|
6ea6f94694 | ||
|
|
4b91e598ce | ||
|
|
07293006c3 | ||
|
|
8f86a4651e | ||
|
|
74857d58d8 | ||
|
|
e93b74665b | ||
|
|
3c0eeeb81d | ||
|
|
8de13e75f2 | ||
|
|
f57a487b13 | ||
|
|
2eb0f51636 | ||
|
|
4741d8f9e7 | ||
|
|
4ce5abc918 | ||
|
|
f041a6cbbb | ||
|
|
394e5460b5 | ||
|
|
7a8043f4db | ||
|
|
7fe26603fd | ||
|
|
a50cce6c6f | ||
|
|
3c839799da | ||
|
|
5a11df0153 | ||
|
|
bb8b4430cf | ||
|
|
c6961b9a0b | ||
|
|
754e6b165e | ||
|
|
5f2430ff06 | ||
|
|
80b9961bd8 | ||
|
|
886f753422 | ||
|
|
9ea0c6389c | ||
|
|
f29bcc6641 | ||
|
|
60aa7032c5 | ||
|
|
4d8ba7d3a3 | ||
|
|
c87744c51e | ||
|
|
9841ba52a9 | ||
|
|
b16df022ed | ||
|
|
c3d8acc61a | ||
|
|
04fbb15405 | ||
|
|
2cd61dbbac | ||
|
|
e6bc8e4b30 | ||
|
|
e9f0510d3c | ||
|
|
9c0cf6a3db | ||
|
|
bca58a58ae | ||
|
|
2c0fbfef19 | ||
|
|
395f9bcdb7 | ||
|
|
4587e3136b | ||
|
|
2a458ec7e6 | ||
|
|
2c02a62e63 | ||
|
|
1afd76b080 | ||
|
|
5fae51fa01 | ||
|
|
d8366efee8 | ||
|
|
5f3cfa3f0d | ||
|
|
84740444ec | ||
|
|
3881ad163c | ||
|
|
f7f43ed16c | ||
|
|
39b5982d67 | ||
|
|
0f0f2c1b81 | ||
|
|
7e05939977 | ||
|
|
c5062b5bc5 | ||
|
|
90355ae7ed | ||
|
|
da67dc6930 | ||
|
|
71151ea92e | ||
|
|
d97211d52c | ||
|
|
d0e31ad95e | ||
|
|
7c796e110b | ||
|
|
137cdb7716 | ||
|
|
0a02aba790 | ||
|
|
652e81e984 | ||
|
|
4dacd9b8b4 | ||
|
|
71fb83e698 | ||
|
|
d514059d5d | ||
|
|
3c29278cc1 | ||
|
|
5d1ad931fc | ||
|
|
4e0d56de54 | ||
|
|
a33b1f20f8 | ||
|
|
9fa61dac31 | ||
|
|
263c1ee613 | ||
|
|
c648a6bf79 | ||
|
|
ed954d79a4 | ||
|
|
113e95a059 | ||
|
|
4d31b85c4d | ||
|
|
58cf3abda9 | ||
|
|
9227324ac3 | ||
|
|
e5c608e20b | ||
|
|
8a41d48941 | ||
|
|
eb19465e56 | ||
|
|
93ee819457 | ||
|
|
7931ac475e | ||
|
|
6286c203fe | ||
|
|
9d43a2d98b | ||
|
|
5271bcd49f | ||
|
|
54db88dd96 | ||
|
|
dd336896d2 | ||
|
|
75ad6697cd | ||
|
|
2862d1e69b | ||
|
|
5e486e4ce6 | ||
|
|
6b17d6d6dc | ||
|
|
272a29aad1 | ||
|
|
d21e333c9e | ||
|
|
b5195c27c0 | ||
|
|
3f436861ad | ||
|
|
3982d49136 | ||
|
|
e007fb1b72 | ||
|
|
ccba9482de | ||
|
|
8dfa8c2e09 | ||
|
|
af0a5d1022 | ||
|
|
43a22d9973 | ||
|
|
d8c8a76c1d | ||
|
|
e40dc2e9ff | ||
|
|
e0769f1d2b | ||
|
|
e336d2ad38 | ||
|
|
6ca6daf38d | ||
|
|
ffa6f143ac | ||
|
|
04650f165f | ||
|
|
214c4e4839 | ||
|
|
fad530cf86 | ||
|
|
6b9e0c8b99 | ||
|
|
5a66e9a393 | ||
|
|
ddd5813266 | ||
|
|
e246e3fbcd | ||
|
|
e1f4cc22ac | ||
|
|
6911cf59f4 | ||
|
|
5172d7f349 | ||
|
|
55e043f3bd | ||
|
|
bdee2f0585 | ||
|
|
833ca82cb7 | ||
|
|
6751972d7f | ||
|
|
44ed919f95 | ||
|
|
c8ad2a1ac8 | ||
|
|
232b537969 | ||
|
|
d5c8e7836f | ||
|
|
e897955466 | ||
|
|
4f3ae06e59 | ||
|
|
e971bdaee9 | ||
|
|
d165ce86df | ||
|
|
45d327e55d | ||
|
|
ec704cbe34 | ||
|
|
658cb9fee3 | ||
|
|
3234112644 | ||
|
|
0c7db14e99 | ||
|
|
34118d5892 | ||
|
|
2ee80ee2f9 | ||
|
|
aaacaa654b | ||
|
|
d8c38a3564 | ||
|
|
add77694c3 | ||
|
|
66171e8035 | ||
|
|
932d218455 | ||
|
|
33a295c191 | ||
|
|
4c0f1b08c8 | ||
|
|
f58e935cb9 | ||
|
|
ad48ea5a3f | ||
|
|
3a4ae31872 | ||
|
|
48996b0810 | ||
|
|
d450c99560 | ||
|
|
51884a31cd | ||
|
|
5251b93fc9 | ||
|
|
ac3635511c | ||
|
|
0990ef0846 | ||
|
|
294b245d88 | ||
|
|
3eb3564c57 | ||
|
|
851f061018 | ||
|
|
e9a2c64d67 | ||
|
|
f9b72e0155 | ||
|
|
834fd23542 | ||
|
|
14b45b95a4 | ||
|
|
74d4a6545e | ||
|
|
646c0f37d6 | ||
|
|
1fdc36fea2 | ||
|
|
a34a6657f0 | ||
|
|
95f87567e8 | ||
|
|
9ad97b1fe0 | ||
|
|
9b9e6d666b | ||
|
|
24845b267f | ||
|
|
448326ee88 | ||
|
|
12dab7bdda | ||
|
|
3eba4da4a8 | ||
|
|
b947ed2ed1 | ||
|
|
6eef29e4a3 | ||
|
|
74c2de8adc | ||
|
|
f53b314b59 | ||
|
|
e4bf81fcc1 | ||
|
|
00b48b16ce | ||
|
|
5b00b5dac1 | ||
|
|
97306d47fa | ||
|
|
5df9f9fd69 | ||
|
|
d9ce813689 | ||
|
|
93f1b97e88 | ||
|
|
c617e49a63 | ||
|
|
de7d06e5d7 | ||
|
|
9b862162b6 | ||
|
|
0ecf3fa1e0 | ||
|
|
b5fa564cb3 | ||
|
|
b771e1486e | ||
|
|
3f1479d8f5 | ||
|
|
dcdf1e21ae | ||
|
|
cc3f003be5 | ||
|
|
0e53e26695 | ||
|
|
ad1e5fefc6 | ||
|
|
8ea77dc6d1 | ||
|
|
2222ca301f | ||
|
|
0f66c70205 | ||
|
|
88dc64f182 | ||
|
|
94c50b980a | ||
|
|
9866919873 | ||
|
|
e025f996e4 | ||
|
|
cd4c326f6e | ||
|
|
c668731389 | ||
|
|
e6a10edca6 | ||
|
|
847f7fa5c9 | ||
|
|
03cb9a67b4 | ||
|
|
9791aa1259 | ||
|
|
0df7209723 | ||
|
|
0de8e2d818 | ||
|
|
5f9a1091de | ||
|
|
6ef17b1720 | ||
|
|
9c41a20ebb | ||
|
|
eddb5a81c9 | ||
|
|
3861d09930 | ||
|
|
733901a870 | ||
|
|
131c3034d6 | ||
|
|
0c9175c728 | ||
|
|
e2eff652e3 | ||
|
|
43e9530fdb | ||
|
|
0000cbc53e | ||
|
|
8b26cac8f0 | ||
|
|
e8417b23d9 | ||
|
|
1bd5671d17 | ||
|
|
56d3e7e1f2 | ||
|
|
34888e9b7f | ||
|
|
7c09423766 | ||
|
|
9ba8251c58 | ||
|
|
7a5efd99ca | ||
|
|
1e595be586 | ||
|
|
1d63168606 | ||
|
|
82601a3e8f | ||
|
|
17bf63e83b | ||
|
|
885a6ca36e | ||
|
|
dec35bbc03 | ||
|
|
77dcb16e8b | ||
|
|
b10a4c7db8 | ||
|
|
8d82f1128b | ||
|
|
056c069c69 | ||
|
|
0466950c2d | ||
|
|
4442437ad7 | ||
|
|
1192c4b6f0 | ||
|
|
08f39af9ec | ||
|
|
7bf58d23bc | ||
|
|
afb0cbcc2a | ||
|
|
7393d9c2bc | ||
|
|
7b8efb2785 | ||
|
|
efea6f4c11 | ||
|
|
8dbf724f36 | ||
|
|
fa4c705023 | ||
|
|
106e41206e | ||
|
|
dc0c71b063 | ||
|
|
0cadb54117 | ||
|
|
0ba315342c | ||
|
|
d87b292691 | ||
|
|
ea3abf2ca0 | ||
|
|
3e507c0259 | ||
|
|
5385c8e65c | ||
|
|
771ad54110 | ||
|
|
6743193872 | ||
|
|
b94d862cae | ||
|
|
77d9b2f98f | ||
|
|
2565087dba | ||
|
|
5f330b5ea6 | ||
|
|
c5f6816d7b | ||
|
|
585b98c83d | ||
|
|
40635d5b07 | ||
|
|
fd96f7a1ec | ||
|
|
f585ffe756 | ||
|
|
9a86978c9d | ||
|
|
3bf87cf9eb | ||
|
|
b7b5288f9c | ||
|
|
2833dbb474 | ||
|
|
2a6dda5fe2 | ||
|
|
e9e5b5a329 | ||
|
|
c0e055343e | ||
|
|
c657397d3b | ||
|
|
91cf4995b1 | ||
|
|
7b7c1e5951 | ||
|
|
b67583f8d3 | ||
|
|
460b8459d4 | ||
|
|
8328ece011 | ||
|
|
6f4045ffe9 | ||
|
|
54ce2c71c0 | ||
|
|
0a00cd9581 | ||
|
|
162c5d9db9 | ||
|
|
8be8c23ed9 | ||
|
|
f2b6fffb4c | ||
|
|
626312d495 | ||
|
|
77287868c4 | ||
|
|
f7d221900a | ||
|
|
d51a420532 | ||
|
|
0567f92ddd | ||
|
|
e88e29f9e5 | ||
|
|
e50f6e14f0 | ||
|
|
933b3e96a1 | ||
|
|
00b67974ed | ||
|
|
a05a7d9122 | ||
|
|
fdf440f308 | ||
|
|
34c6a32c48 | ||
|
|
0b078226f3 | ||
|
|
e0a5927bd1 | ||
|
|
bed1f0dbb5 | ||
|
|
4fef8ccfb5 | ||
|
|
bb29b4be4b | ||
|
|
e649a6f25a | ||
|
|
078d89d8ae | ||
|
|
a13c172d6d | ||
|
|
6b4727bc9f | ||
|
|
95aaa68010 | ||
|
|
976686b5af | ||
|
|
f59064108e | ||
|
|
44d8254e7d | ||
|
|
d284a6ff54 | ||
|
|
1908f02447 | ||
|
|
f50e20d896 | ||
|
|
bd8ed04e1b | ||
|
|
27c54221cb | ||
|
|
cf589ba0c6 | ||
|
|
43eaff3a6d | ||
|
|
30e96de2d9 | ||
|
|
43c4f44f1f | ||
|
|
af6f5af11d | ||
|
|
79603c9bb4 | ||
|
|
e2074b010e | ||
|
|
2187edc158 |
68
.bash_profile
Normal file
@@ -0,0 +1,68 @@
|
||||
# These are aliases that will make your life simple when you're building OneUptime
|
||||
|
||||
# Make directory and change directory at the same time.
|
||||
mkcdir ()
|
||||
{
|
||||
mkdir -p -- "$1" &&
|
||||
cd -P -- "$1"
|
||||
}
|
||||
|
||||
# Git aliases
|
||||
alias g="git"
|
||||
alias gs="git status"
|
||||
alias ga="git add"
|
||||
alias gc="git checkout"
|
||||
alias gb="git branch"
|
||||
alias gp="git pull"
|
||||
alias gpo="git push origin"
|
||||
alias gl="git log"
|
||||
alias gd="git diff"
|
||||
alias gm="git merge"
|
||||
|
||||
# Kubernetes aliases
|
||||
alias k="kubectl"
|
||||
alias kg="kubectl get"
|
||||
alias kd="kubectl describe"
|
||||
alias kc="kubectl create"
|
||||
alias kdel="kubectl delete"
|
||||
alias klo="kubectl logs"
|
||||
alias klof="kubectl logs -f"
|
||||
alias kex="kubectl exec"
|
||||
alias kexi="kubectl exec -it"
|
||||
|
||||
# Docker aliases
|
||||
alias d="docker"
|
||||
alias dc="docker compose"
|
||||
alias dcu="docker compose up"
|
||||
alias dcd="docker compose down"
|
||||
|
||||
# Node aliases
|
||||
alias n="npm"
|
||||
alias ni="npm install"
|
||||
alias nis="npm install --save"
|
||||
alias nid="npm install --save-dev"
|
||||
alias nr="npm run"
|
||||
alias nt="npm test"
|
||||
alias ns="npm start"
|
||||
alias nb="npm build"
|
||||
|
||||
# Rust aliases
|
||||
alias c="cargo"
|
||||
alias cb="cargo build"
|
||||
alias cr="cargo run"
|
||||
|
||||
# OneUptime Specific Aliases
|
||||
# --------------------------
|
||||
|
||||
alias nrd="npm run dev"
|
||||
alias nrl="npm run logs"
|
||||
alias nrb="npm run build"
|
||||
alias nrfb="npm run force-build"
|
||||
alias nrps="npm run ps-dev"
|
||||
|
||||
# OneUptime LLM Server
|
||||
alias nrfbl="npm run force-build-llm"
|
||||
alias nrdl="npm run dev-llm"
|
||||
alias nrll="npm run logs-llm"
|
||||
alias nrbl="npm run build-llm"
|
||||
|
||||
@@ -56,5 +56,4 @@ settings.json
|
||||
|
||||
GoSDK/tester/
|
||||
|
||||
Llama/Models/*
|
||||
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: 'Bug: <Title of the issue>'
|
||||
title: '<Title of the issue>'
|
||||
labels: 'bug'
|
||||
assignees: ''
|
||||
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: 'Enhancement: <Title of the issue>'
|
||||
title: '<Title of the issue>'
|
||||
labels: 'enhancement'
|
||||
assignees: ''
|
||||
|
||||
|
||||
75
.github/workflows/build.yml
vendored
@@ -40,6 +40,81 @@ jobs:
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./IsolatedVM/Dockerfile .
|
||||
|
||||
docker-build-home:
|
||||
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 accounts service
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./Home/Dockerfile .
|
||||
|
||||
docker-build-worker:
|
||||
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 accounts service
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./Worker/Dockerfile .
|
||||
|
||||
docker-build-workflow:
|
||||
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 accounts service
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./Workflow/Dockerfile .
|
||||
|
||||
docker-build-api-reference:
|
||||
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 accounts service
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./APIReference/Dockerfile .
|
||||
|
||||
docker-build-docs:
|
||||
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 accounts service
|
||||
- name: build docker image
|
||||
run: sudo docker build -f ./Docs/Dockerfile .
|
||||
|
||||
|
||||
docker-build-otel-collector:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
133
.github/workflows/compile.yml
vendored
@@ -20,9 +20,6 @@ jobs:
|
||||
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 Accounts && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-isolated-vm:
|
||||
@@ -35,35 +32,8 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd IsolatedVM && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-common-server:
|
||||
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 && npm run compile && npm run dep-check
|
||||
|
||||
compile-common-ui:
|
||||
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 CommonUI && npm install --force && npm run compile && npm run dep-check
|
||||
|
||||
compile-common:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
@@ -73,8 +43,7 @@ jobs:
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install && npm run compile && npm run dep-check
|
||||
- run: cd Common && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-app:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -86,11 +55,68 @@ jobs:
|
||||
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 App && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-home:
|
||||
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 Home && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-worker:
|
||||
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 Worker && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-workflow:
|
||||
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 Workflow && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-api-reference:
|
||||
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 APIReference && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-docs-reference:
|
||||
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 Docs && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-copilot:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
@@ -101,8 +127,6 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd Copilot && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-nginx:
|
||||
@@ -115,9 +139,7 @@ jobs:
|
||||
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 Nginx && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-infrastructure-agent:
|
||||
@@ -141,9 +163,7 @@ jobs:
|
||||
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 && npm run dep-check
|
||||
|
||||
compile-dashboard:
|
||||
@@ -156,25 +176,10 @@ jobs:
|
||||
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 Dashboard && npm install && npm run compile && npm run dep-check
|
||||
|
||||
|
||||
compile-model:
|
||||
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 Model && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-e2e:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
@@ -197,8 +202,6 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd Probe && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-ingestor:
|
||||
@@ -211,8 +214,6 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd Ingestor && npm install && npm run compile && npm run dep-check
|
||||
|
||||
|
||||
@@ -226,9 +227,7 @@ jobs:
|
||||
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 StatusPage && npm install && npm run compile && npm run dep-check
|
||||
|
||||
compile-test-server:
|
||||
@@ -241,6 +240,4 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd Model && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd TestServer && npm install && npm run compile && npm run dep-check
|
||||
@@ -1,16 +0,0 @@
|
||||
name: Misc / Dependabot Automerge
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
merge:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||
with:
|
||||
target: minor
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
31
.github/workflows/playwright.yml.skip
vendored
@@ -1,31 +0,0 @@
|
||||
name: Playwright Tests
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
jobs:
|
||||
test:
|
||||
timeout-minutes: 60
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
BASE_URL: http://localhost
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Run Server in Docker
|
||||
run: npm run dev
|
||||
- name: Install Playwright Browsers
|
||||
run: npx playwright install --with-deps
|
||||
- name: Run Playwright tests
|
||||
run: cd Playwright && npm install && npx playwright install && npx playwright test
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: playwright-report
|
||||
path: playwright-report/
|
||||
retention-days: 30
|
||||
424
.github/workflows/release.yml
vendored
@@ -248,6 +248,69 @@ jobs:
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
home-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/home
|
||||
ghcr.io/oneuptime/home
|
||||
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@v4
|
||||
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 isolated-vm.
|
||||
|
||||
- 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: ./Home/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
test-server-docker-image-deploy:
|
||||
needs: [generate-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
@@ -988,12 +1051,365 @@ jobs:
|
||||
run: npm run prerun
|
||||
- name: Publish Infrastructure Agent
|
||||
run: bash ./Scripts/NPM/PublishAllPackages.sh
|
||||
|
||||
|
||||
llm-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
android: true
|
||||
dotnet: true
|
||||
haskell: true
|
||||
large-packages: true
|
||||
docker-images: true
|
||||
swap-storage: true
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/llm
|
||||
ghcr.io/oneuptime/llm
|
||||
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@v4
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
|
||||
# - name: Setup Git LFS
|
||||
# run: git lfs install
|
||||
|
||||
# # Cannot do this, no space on the gitHub standard runner. We need to use the large runner which is selfhosted
|
||||
# - name: Download the Model from Hugging Face
|
||||
# run: mkdir -p ./LLM/Models && cd ./LLM/Models && git clone https://${{ secrets.HUGGING_FACE_USERNAME }}:${{ secrets.HUGGING_FACE_PASSWORD }}@huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
|
||||
|
||||
- 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 nginx.
|
||||
|
||||
- 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: ./LLM/Dockerfile
|
||||
context: ./LLM
|
||||
platforms: linux/amd64
|
||||
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}}
|
||||
|
||||
docs-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/docs
|
||||
ghcr.io/oneuptime/docs
|
||||
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@v4
|
||||
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 nginx.
|
||||
|
||||
- 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: ./Docs/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
worker-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/worker
|
||||
ghcr.io/oneuptime/worker
|
||||
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@v4
|
||||
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 nginx.
|
||||
|
||||
- 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: ./Worker/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
workflow-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/workflow
|
||||
ghcr.io/oneuptime/workflow
|
||||
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@v4
|
||||
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 nginx.
|
||||
|
||||
- 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: ./Workflow/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
api-reference-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/api-reference
|
||||
ghcr.io/oneuptime/api-reference
|
||||
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@v4
|
||||
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 nginx.
|
||||
|
||||
- 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: ./APIReference/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
test-e2e-release-saas:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [copilot-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
|
||||
needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
@@ -1020,7 +1436,7 @@ jobs:
|
||||
- name: Wait for server to start
|
||||
run: bash ./Tests/Scripts/status-check.sh http://localhost
|
||||
- name: Run E2E Tests. Run docker container e2e in docker compose file
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker-compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker-compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v4
|
||||
# Run this on failure
|
||||
@@ -1046,7 +1462,7 @@ jobs:
|
||||
test-e2e-release-self-hosted:
|
||||
runs-on: ubuntu-latest
|
||||
# After all the jobs runs
|
||||
needs: [copilot-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
|
||||
needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
@@ -1073,7 +1489,7 @@ jobs:
|
||||
- name: Wait for server to start
|
||||
run: bash ./Tests/Scripts/status-check.sh http://localhost
|
||||
- name: Run E2E Tests. Run docker container e2e in docker compose file
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker-compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker-compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v4
|
||||
# Run this on failure
|
||||
|
||||
32
.github/workflows/reliability-copilot.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
name: "OneUptime Reliability Copilot"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
# Run every day at midnight UTC
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze Code
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
# Run Reliability Copilot in Docker Container
|
||||
- name: Run Copilot
|
||||
run: |
|
||||
docker run --rm \
|
||||
-e ONEUPTIME_URL="https://test.oneuptime.com" \
|
||||
-e ONEUPTIME_REPOSITORY_SECRET_KEY="${{ secrets.COPILOT_ONEUPTIME_REPOSITORY_SECRET_KEY }}" \
|
||||
-e CODE_REPOSITORY_PASSWORD="${{ github.token }}" \
|
||||
-e CODE_REPOSITORY_USERNAME="simlarsen" \
|
||||
-e OPENAI_API_KEY="${{ secrets.OPENAI_API_KEY }}" \
|
||||
--net=host oneuptime/copilot:test
|
||||
20
.github/workflows/test-app.yaml
vendored
@@ -1,20 +0,0 @@
|
||||
name: App Test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'hotfix-*' # excludes hotfix branches
|
||||
- 'release'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
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 App && npm install && npm run test
|
||||
408
.github/workflows/test-release.yaml
vendored
@@ -6,6 +6,7 @@ on:
|
||||
- "master"
|
||||
|
||||
jobs:
|
||||
|
||||
generate-build-number:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
@@ -18,6 +19,92 @@ jobs:
|
||||
token: ${{secrets.github_token}}
|
||||
- run: echo "Build number is ${{ steps.buildnumber.outputs.build_number }}"
|
||||
|
||||
llm-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
android: true
|
||||
dotnet: true
|
||||
haskell: true
|
||||
large-packages: true
|
||||
docker-images: true
|
||||
swap-storage: true
|
||||
|
||||
- name: Docker Meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
oneuptime/llm
|
||||
ghcr.io/oneuptime/llm
|
||||
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@v4
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
|
||||
# - name: Setup Git LFS
|
||||
# run: git lfs install
|
||||
|
||||
# # Cannot do this, no space on the gitHub standard runner. We need to use the large runner which is selfhosted
|
||||
# - name: Download the Model from Hugging Face
|
||||
# run: mkdir -p ./LLM/Models && cd ./LLM/Models && git clone https://${{ secrets.HUGGING_FACE_USERNAME }}:${{ secrets.HUGGING_FACE_PASSWORD }}@huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
|
||||
|
||||
- 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 nginx.
|
||||
|
||||
- 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: ./LLM/Dockerfile
|
||||
context: ./LLM
|
||||
# arm64 is not supported by the base image of the LLM
|
||||
platforms: linux/amd64
|
||||
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}}
|
||||
|
||||
|
||||
nginx-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -325,6 +412,69 @@ jobs:
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
home-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/home
|
||||
ghcr.io/oneuptime/home
|
||||
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@v4
|
||||
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 isolated-vm.
|
||||
|
||||
- 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: ./Home/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}}
|
||||
|
||||
|
||||
|
||||
status-page-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
runs-on: ubuntu-latest
|
||||
@@ -815,6 +965,72 @@ jobs:
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
|
||||
|
||||
|
||||
api-reference-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/api-reference
|
||||
ghcr.io/oneuptime/api-reference
|
||||
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@v4
|
||||
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 app.
|
||||
|
||||
- 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: ./APIReference/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}}
|
||||
|
||||
|
||||
|
||||
accounts-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
runs-on: ubuntu-latest
|
||||
@@ -876,6 +1092,66 @@ jobs:
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
worker-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/worker
|
||||
ghcr.io/oneuptime/worker
|
||||
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@v4
|
||||
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 accounts.
|
||||
|
||||
- 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: ./Worker/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.copilot-docker-image-deploybuild_number}}
|
||||
|
||||
copilot-docker-image-deploy:
|
||||
needs: generate-build-number
|
||||
@@ -938,10 +1214,136 @@ jobs:
|
||||
GIT_SHA=${{ github.sha }}
|
||||
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
|
||||
|
||||
|
||||
workflow-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/workflow
|
||||
ghcr.io/oneuptime/workflow
|
||||
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@v4
|
||||
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 accounts.
|
||||
|
||||
- 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: ./Workflow/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}}
|
||||
|
||||
|
||||
docs-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/docs
|
||||
ghcr.io/oneuptime/docs
|
||||
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@v4
|
||||
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 accounts.
|
||||
|
||||
- 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: ./Docs/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}}
|
||||
|
||||
|
||||
|
||||
|
||||
test-helm-chart:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [copilot-docker-image-deploy, isolated-vm-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, ingestor-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy]
|
||||
needs: [llm-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, ingestor-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy]
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
steps:
|
||||
@@ -980,7 +1382,7 @@ jobs:
|
||||
- name: Wait for server to start
|
||||
run: bash ./Tests/Scripts/status-check.sh http://localhost
|
||||
- name: Run E2E Tests. Run docker container e2e in docker compose file
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker-compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker-compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v4
|
||||
# Run this on failure
|
||||
@@ -1033,7 +1435,7 @@ jobs:
|
||||
- name: Wait for server to start
|
||||
run: bash ./Tests/Scripts/status-check.sh http://localhost
|
||||
- name: Run E2E Tests. Run docker container e2e in docker compose file
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker-compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker-compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v4
|
||||
# Run this on failure
|
||||
|
||||
24
.github/workflows/test.common-server.yaml
vendored
@@ -1,24 +0,0 @@
|
||||
name: Common Server Test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'hotfix-*' # excludes hotfix branches
|
||||
- 'release'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
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 CommonServer && bash test-setup.sh
|
||||
- run: export $(grep -v '^#' config.env | xargs) && cd CommonServer && rm -rf build && npm run test
|
||||
7
.github/workflows/test.common.yaml
vendored
@@ -12,11 +12,12 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CI_PIPELINE_ID: ${{github.run_number}}
|
||||
BILLING_PRIVATE_KEY: ${{secrets.TEST_BILLING_PRIVATE_KEY}}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Model && npm install
|
||||
- run: cd Common && npm install && npm run test
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && bash test-setup.sh
|
||||
- run: cd Common && npm install && rm -rf build && npm run test
|
||||
|
||||
23
.github/workflows/test.commonui.yaml
vendored
@@ -1,23 +0,0 @@
|
||||
name: CommonUI Test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'hotfix-*' # excludes hotfix branches
|
||||
- 'release'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
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 CommonUI && npm install --force && npm run test
|
||||
|
||||
2
.github/workflows/test.e2e.yaml
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
- name: Wait for server to start
|
||||
run: bash ./Tests/Scripts/status-check.sh http://localhost
|
||||
- name: Run E2E Tests. Run docker container e2e in docker compose file
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker-compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker-compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v4
|
||||
# Run this on failure
|
||||
|
||||
23
.github/workflows/test.model.yaml
vendored
@@ -1,23 +0,0 @@
|
||||
name: Model Test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'hotfix-*' # excludes hotfix branches
|
||||
- 'release'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
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 Model && npm install && npm run test
|
||||
|
||||
1
.github/workflows/test.probe.yaml
vendored
@@ -18,7 +18,6 @@ jobs:
|
||||
with:
|
||||
node-version: 18.3.0
|
||||
- run: cd Common && npm install
|
||||
- run: cd CommonServer && npm install
|
||||
- run: cd Probe && npm install
|
||||
- run: cd Probe && npm run test
|
||||
|
||||
42
.github/workflows/test.yaml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'hotfix-*' # excludes hotfix branches
|
||||
- 'release'
|
||||
|
||||
jobs:
|
||||
test-app:
|
||||
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 App && npm install && npm run test
|
||||
|
||||
test-home:
|
||||
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 Home && npm install && npm run test
|
||||
|
||||
test-worker:
|
||||
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 Worker && npm install && npm run test
|
||||
7
.gitignore
vendored
@@ -93,12 +93,9 @@ Haraka/dkim/keys/public_base64.txt
|
||||
|
||||
HelmChart/Values/*.values.yaml
|
||||
|
||||
Llama/Models/tokenizer*
|
||||
Llama/Models/llama*
|
||||
LLM/__pycache__/*
|
||||
|
||||
Llama/__pycache__/*
|
||||
|
||||
Llama/Models/*
|
||||
LLM/Models/*
|
||||
|
||||
Examples/otel-dotnet/obj/*
|
||||
|
||||
|
||||
15
.oneuptime/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
## OneUptime Copilot
|
||||
|
||||
This folder contains the configuration files for the OneUptime Copilot. The Copilot is a tool that automatically improves your code. It can fix issues, improve code quality, and help you ship faster.
|
||||
|
||||
This folder has the following structure:
|
||||
|
||||
- `config.js`: The configuration file for the Copilot. You can customize the Copilot's behavior by changing this file.
|
||||
- `scripts`: A folder containing scripts that the Copilot runs. These are hooks that run at different stages of the Copilot's process.
|
||||
- `on-after-clone.sh`: A script that runs after the Copilot clones your repository.
|
||||
- `on-before-code-change.sh`: A script that runs before the Copilot makes changes to your code.
|
||||
- `on-after-code-change.sh`: A script that runs after the Copilot makes changes to your code.
|
||||
- `on-before-commit.sh`: A script that runs before the Copilot commits changes to your repository.
|
||||
- `on-after-commit.sh`: A script that runs after the Copilot commits changes to your repository.
|
||||
|
||||
|
||||
10
.oneuptime/config.js
Normal file
@@ -0,0 +1,10 @@
|
||||
// This is the configuration file for the oneuptime copilot.
|
||||
|
||||
const getCopilotConfig = () => {
|
||||
return {
|
||||
// The version of the schema for this configuration file.
|
||||
schemaVersion: '1.0',
|
||||
}
|
||||
}
|
||||
|
||||
export default getCopilotConfig;
|
||||
16
.oneuptime/scripts/on-after-clone.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
# Description: Copilot clones your repository and to improve your code.
|
||||
# This scirpt runs after the clone process is completed.
|
||||
# Some of the common tasks you can do here are:
|
||||
# 1. Install dependencies
|
||||
# 2. Run linting
|
||||
# 3. Run tests
|
||||
# 4. Run build
|
||||
# 5. Run any other command that you want to run after the clone process is completed.
|
||||
# If this script fails, copilot will not proceed with the next steps to improve your code.
|
||||
# This step is to ensure that the code is in a good state before we start improving it.
|
||||
# If you want to skip this script, you can keep this file empty.
|
||||
# It's highly recommended to run linting and tests in this script to ensure the code is in a good state.
|
||||
# This scirpt will run on ubuntu machine. So, make sure the commands you run are compatible with ubuntu.
|
||||
|
||||
npm install
|
||||
npm run lint
|
||||
13
.oneuptime/scripts/on-after-code-change.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
# Description: Copilot will run this script after we make improvements to your code and write it to disk.
|
||||
# Some of the common tasks you can do here are:
|
||||
# 1. Run linting
|
||||
# 2. Run tests
|
||||
# 3. Run build
|
||||
# 4. Run any other command that you want to run after the code is changed.
|
||||
# If this script fails, copilot will not commit the changes to your repository.
|
||||
# This step is to ensure that the code is in a good state before we commit the changes.
|
||||
# If you want to skip this script, you can keep this file empty.
|
||||
# It's highly recommended to run linting and tests in this script to ensure the code is in a good state.
|
||||
# This scirpt will run on ubuntu machine. So, make sure the commands you run are compatible with ubuntu.
|
||||
|
||||
npm run fix
|
||||
1
.oneuptime/scripts/on-after-commit.sh
Normal file
@@ -0,0 +1 @@
|
||||
# Description: Copilot will run this script after the commit process is completed.
|
||||
9
.oneuptime/scripts/on-before-code-change.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
# Description: Copilot will run this script before we make changes to your code.
|
||||
# Some of the common tasks you can do here are:
|
||||
# 1. Install dependencies
|
||||
# 2. Run any other command that you want to run before the code is changed.
|
||||
# If this script fails, copilot will not make any changes to the code.
|
||||
# This step is to ensure that the code is in a good state before we start making changes.
|
||||
# If you want to skip this script, you can keep this file empty.
|
||||
# It's highly recommended to run things like installing dependencies in this script.
|
||||
# This scirpt will run on ubuntu machine. So, make sure the commands you run are compatible with ubuntu.
|
||||
1
.oneuptime/scripts/on-before-commit.sh
Normal file
@@ -0,0 +1 @@
|
||||
# Description: Copilot will run this script before we commit the changes to your repository.
|
||||
@@ -51,6 +51,3 @@ licenses/*
|
||||
certifications/*
|
||||
ApiReference/public/assets/*
|
||||
JavaScriptSDK/src/cli/server-monitor/out/scripts/prettify/*
|
||||
|
||||
|
||||
CommonServer/Tests/TestingUtils/__mocks__/Stripe.mock.ts
|
||||
92
.vscode/launch.json
vendored
@@ -20,18 +20,18 @@
|
||||
],
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug: Copilot Locally",
|
||||
"request": "launch",
|
||||
"localRoot": "${workspaceFolder}/Copilot",
|
||||
"runtimeArgs": [
|
||||
"run-script",
|
||||
"start"
|
||||
],
|
||||
"runtimeExecutable": "npm",
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/TestServer",
|
||||
"name": "Copilot: Debug with Docker",
|
||||
"port": 9985,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node"
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"name": "Debug Infrastructure Agent",
|
||||
@@ -63,6 +63,76 @@
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/Home",
|
||||
"name": "Home: Debug with Docker",
|
||||
"port": 9212,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/Worker",
|
||||
"name": "Worker: Debug with Docker",
|
||||
"port": 8734,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/Worker",
|
||||
"name": "Workflow: Debug with Docker",
|
||||
"port": 8735,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/Worker",
|
||||
"name": "Docs: Debug with Docker",
|
||||
"port": 8738,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/Worker",
|
||||
"name": "API Reference: Debug with Docker",
|
||||
"port": 8737,
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"request": "attach",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"localRoot": "${workspaceFolder}/TestServer",
|
||||
@@ -218,12 +288,12 @@
|
||||
"autoAttachChildProcesses": true
|
||||
},
|
||||
{
|
||||
"name": "CommonServer: Debug Tests",
|
||||
"name": "Common: Debug Tests",
|
||||
"type": "node",
|
||||
"restart": true,
|
||||
"autoAttachChildProcesses": true,
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceRoot}/CommonServer",
|
||||
"cwd": "${workspaceRoot}/Common",
|
||||
"runtimeExecutable": "npm",
|
||||
"runtimeArgs": [
|
||||
"run-script",
|
||||
|
||||
0
CommonServer/.dockerignore → APIReference/.dockerignore
Normal file → Executable file
1
APIReference/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.js text eol=lf
|
||||
30
APIReference/.gitignore
vendored
Executable file
@@ -0,0 +1,30 @@
|
||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
#/backend/node_modules
|
||||
/kubernetes
|
||||
/node_modules
|
||||
.idea
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
yarn.lock
|
||||
|
||||
**/*/paymentService.test.js
|
||||
apiTest.rest
|
||||
|
||||
application_security_dir
|
||||
container_security_dir
|
||||
|
||||
# coverage
|
||||
/coverage
|
||||
/.nyc_output
|
||||
|
||||
/greenlock.d/config.json
|
||||
/greenlock.d/config.json.bak
|
||||
/.greenlockrc
|
||||
70
APIReference/Dockerfile.tpl
Normal file
@@ -0,0 +1,70 @@
|
||||
#
|
||||
# OneUptime-App Dockerfile
|
||||
#
|
||||
|
||||
# Pull base image nodejs image.
|
||||
FROM public.ecr.aws/docker/library/node:21.2-alpine3.18
|
||||
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-retries 5
|
||||
RUN npm config set fetch-retry-mintimeout 100000
|
||||
RUN npm config set fetch-retry-maxtimeout 600000
|
||||
|
||||
|
||||
|
||||
ARG GIT_SHA
|
||||
ARG APP_VERSION
|
||||
|
||||
ENV GIT_SHA=${GIT_SHA}
|
||||
ENV APP_VERSION=${APP_VERSION}
|
||||
|
||||
|
||||
# IF APP_VERSION is not set, set it to 1.0.0
|
||||
RUN if [ -z "$APP_VERSION" ]; then export APP_VERSION=1.0.0; fi
|
||||
|
||||
|
||||
# Install bash.
|
||||
RUN apk add bash && apk add curl
|
||||
|
||||
|
||||
# Install python
|
||||
RUN apk update && apk add --no-cache --virtual .gyp python3 make g++
|
||||
|
||||
#Use bash shell by default
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
|
||||
RUN mkdir /usr/src
|
||||
|
||||
WORKDIR /usr/src/Common
|
||||
COPY ./Common/package*.json /usr/src/Common/
|
||||
# Set version in ./Common/package.json to the APP_VERSION
|
||||
RUN sed -i "s/\"version\": \".*\"/\"version\": \"$APP_VERSION\"/g" /usr/src/Common/package.json
|
||||
RUN npm install
|
||||
COPY ./Common /usr/src/Common
|
||||
|
||||
ENV PRODUCTION=true
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Install app dependencies
|
||||
COPY ./APIReference/package*.json /usr/src/app/
|
||||
# Set version in ./App/package.json to the APP_VERSION
|
||||
RUN sed -i "s/\"version\": \".*\"/\"version\": \"$APP_VERSION\"/g" /usr/src/app/package.json
|
||||
RUN npm install
|
||||
|
||||
# Expose ports.
|
||||
# - 1446: OneUptime-api-reference
|
||||
EXPOSE 1446
|
||||
|
||||
{{ if eq .Env.ENVIRONMENT "development" }}
|
||||
#Run the app
|
||||
CMD [ "npm", "run", "dev" ]
|
||||
{{ else }}
|
||||
# Copy app source
|
||||
COPY ./APIReference /usr/src/app
|
||||
# Bundle app source
|
||||
RUN npm run compile
|
||||
#Run the app
|
||||
CMD [ "npm", "start" ]
|
||||
{{ end }}
|
||||
51
APIReference/Index.ts
Executable file
@@ -0,0 +1,51 @@
|
||||
import APIReferenceRoutes from "./Routes";
|
||||
import { PromiseVoidFunction } from "Common/Types/FunctionTypes";
|
||||
import InfrastructureStatus from "Common/Server/Infrastructure/Status";
|
||||
import logger from "Common/Server/Utils/Logger";
|
||||
import App from "Common/Server/Utils/StartServer";
|
||||
import Telemetry from "Common/Server/Utils/Telemetry";
|
||||
import "ejs";
|
||||
|
||||
const APP_NAME: string = "reference";
|
||||
|
||||
const init: PromiseVoidFunction = async (): Promise<void> => {
|
||||
try {
|
||||
// Initialize telemetry
|
||||
Telemetry.init({
|
||||
serviceName: APP_NAME,
|
||||
});
|
||||
|
||||
const statusCheck: PromiseVoidFunction = async (): Promise<void> => {
|
||||
// Check the status of infrastructure components
|
||||
return await InfrastructureStatus.checkStatus({
|
||||
checkClickhouseStatus: false,
|
||||
checkPostgresStatus: false,
|
||||
checkRedisStatus: false,
|
||||
});
|
||||
};
|
||||
|
||||
// Initialize the app with service name and status checks
|
||||
await App.init({
|
||||
appName: APP_NAME,
|
||||
statusOptions: {
|
||||
liveCheck: statusCheck,
|
||||
readyCheck: statusCheck,
|
||||
},
|
||||
});
|
||||
|
||||
await APIReferenceRoutes.init();
|
||||
|
||||
// Add default routes to the app
|
||||
await App.addDefaultRoutes();
|
||||
} catch (err) {
|
||||
logger.error("App Init Failed:");
|
||||
logger.error(err);
|
||||
throw err;
|
||||
}
|
||||
};
|
||||
|
||||
init().catch((err: Error) => {
|
||||
logger.error(err);
|
||||
logger.error("Exiting node process");
|
||||
process.exit(1);
|
||||
});
|
||||
29
APIReference/README.md
Executable file
@@ -0,0 +1,29 @@
|
||||
# README
|
||||
|
||||
This README would normally document whatever steps are necessary to get your application up and running.
|
||||
|
||||
### What is this repository for?
|
||||
|
||||
- Quick summary
|
||||
- Version
|
||||
- [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
||||
|
||||
### How do I get set up?
|
||||
|
||||
- Summary of set up
|
||||
- Configuration
|
||||
- Dependencies
|
||||
- Database configuration
|
||||
- How to run tests
|
||||
- Deployment instructions
|
||||
|
||||
### Contribution guidelines
|
||||
|
||||
- Writing tests
|
||||
- Code review
|
||||
- Other guidelines
|
||||
|
||||
### Who do I talk to?
|
||||
|
||||
- Repo owner or admin
|
||||
- Other community or team contact
|
||||
@@ -10,13 +10,13 @@ import StatusServiceHandler from "./Service/Status";
|
||||
import { StaticPath } from "./Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "./Utils/Resources";
|
||||
import Dictionary from "Common/Types/Dictionary";
|
||||
import FeatureSet from "CommonServer/Types/FeatureSet";
|
||||
import FeatureSet from "Common/Server/Types/FeatureSet";
|
||||
import Express, {
|
||||
ExpressApplication,
|
||||
ExpressRequest,
|
||||
ExpressResponse,
|
||||
ExpressStatic,
|
||||
} from "CommonServer/Utils/Express";
|
||||
} from "Common/Server/Utils/Express";
|
||||
|
||||
const APIReferenceFeatureSet: FeatureSet = {
|
||||
init: async (): Promise<void> => {
|
||||
@@ -25,13 +25,15 @@ const APIReferenceFeatureSet: FeatureSet = {
|
||||
|
||||
const app: ExpressApplication = Express.getExpressApp();
|
||||
|
||||
// Serve static files for the API reference with a cache max age of 30 days
|
||||
app.use("/reference", ExpressStatic(StaticPath, { maxAge: 2592000 }));
|
||||
|
||||
// Index page
|
||||
// Redirect index page to the introduction page
|
||||
app.get(["/reference"], (_req: ExpressRequest, res: ExpressResponse) => {
|
||||
return res.redirect("/reference/introduction");
|
||||
});
|
||||
|
||||
// Handle "Page Not Found" page
|
||||
app.get(
|
||||
["/reference/page-not-found"],
|
||||
(req: ExpressRequest, res: ExpressResponse) => {
|
||||
@@ -39,7 +41,7 @@ const APIReferenceFeatureSet: FeatureSet = {
|
||||
},
|
||||
);
|
||||
|
||||
// All Pages
|
||||
// Handle all other pages based on the "page" parameter
|
||||
app.get(
|
||||
["/reference/:page"],
|
||||
(req: ExpressRequest, res: ExpressResponse) => {
|
||||
@@ -52,6 +54,7 @@ const APIReferenceFeatureSet: FeatureSet = {
|
||||
const currentResource: ModelDocumentation | undefined =
|
||||
ResourceDictionary[page];
|
||||
|
||||
// Execute the appropriate service handler based on the "page" parameter
|
||||
if (req.params["page"] === "permissions") {
|
||||
return PermissionServiceHandler.executeResponse(req, res);
|
||||
} else if (req.params["page"] === "authentication") {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
// Retrieve resources documentation
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
|
||||
export default class ServiceHandler {
|
||||
@@ -11,12 +12,16 @@ export default class ServiceHandler {
|
||||
): Promise<void> {
|
||||
let pageTitle: string = "";
|
||||
let pageDescription: string = "";
|
||||
|
||||
// Extract page parameter from request
|
||||
const page: string | undefined = req.params["page"];
|
||||
const pageData: any = {};
|
||||
|
||||
// Set default page title and description for the authentication page
|
||||
pageTitle = "Authentication";
|
||||
pageDescription = "Learn how to authenticate requests with OneUptime API";
|
||||
|
||||
// Render the index page with the specified parameters
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page,
|
||||
resources: Resources,
|
||||
@@ -1,8 +1,8 @@
|
||||
import { CodeExamplesPath, ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import LocalCache from "CommonServer/Infrastructure/LocalCache";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import LocalFile from "CommonServer/Utils/LocalFile";
|
||||
import LocalCache from "Common/Server/Infrastructure/LocalCache";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
import LocalFile from "Common/Server/Utils/LocalFile";
|
||||
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
// Fetch a list of resources used in the application
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
|
||||
export default class ServiceHandler {
|
||||
// Handles the HTTP response for a given request
|
||||
public static async executeResponse(
|
||||
req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
let pageTitle: string = "";
|
||||
let pageDescription: string = "";
|
||||
|
||||
// Get the 'page' parameter from the request
|
||||
const page: string | undefined = req.params["page"];
|
||||
const pageData: any = {};
|
||||
|
||||
// Set the default page title and description
|
||||
pageTitle = "Errors";
|
||||
pageDescription = "Learn more about how we return errors from API";
|
||||
|
||||
// Render the response using the given view and data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page,
|
||||
resources: Resources,
|
||||
@@ -1,25 +1,34 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
// Get all resources and featured resources from ResourceUtil
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
const FeaturedResources: Array<ModelDocumentation> =
|
||||
ResourceUtil.getFeaturedResources();
|
||||
|
||||
export default class ServiceHandler {
|
||||
// Handle the API request
|
||||
public static async executeResponse(
|
||||
req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
// Initialize page title and description
|
||||
let pageTitle: string = "";
|
||||
let pageDescription: string = "";
|
||||
|
||||
// Get the requested page from the URL parameters
|
||||
const page: string | undefined = req.params["page"];
|
||||
const pageData: any = {};
|
||||
|
||||
// Set featured resources for the page
|
||||
pageData.featuredResources = FeaturedResources;
|
||||
|
||||
// Set page title and description
|
||||
pageTitle = "Introduction";
|
||||
pageDescription = "API Reference for OneUptime";
|
||||
|
||||
// Render the index page with the required data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page,
|
||||
resources: Resources,
|
||||
@@ -10,18 +10,21 @@ import Permission, {
|
||||
PermissionHelper,
|
||||
PermissionProps,
|
||||
} from "Common/Types/Permission";
|
||||
import LocalCache from "CommonServer/Infrastructure/LocalCache";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import LocalFile from "CommonServer/Utils/LocalFile";
|
||||
import LocalCache from "Common/Server/Infrastructure/LocalCache";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
import LocalFile from "Common/Server/Utils/LocalFile";
|
||||
|
||||
// Get all resources and resource dictionary
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
const ResourceDictionary: Dictionary<ModelDocumentation> =
|
||||
ResourceUtil.getResourceDictionaryByPath();
|
||||
|
||||
// Get all permission props
|
||||
const PermissionDictionary: Dictionary<PermissionProps> =
|
||||
PermissionHelper.getAllPermissionPropsAsDictionary();
|
||||
|
||||
export default class ServiceHandler {
|
||||
// Execute response for a given page
|
||||
public static async executeResponse(
|
||||
req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
@@ -31,31 +34,35 @@ export default class ServiceHandler {
|
||||
let page: string | undefined = req.params["page"];
|
||||
const pageData: any = {};
|
||||
|
||||
// Check if page is provided
|
||||
if (!page) {
|
||||
return PageNotFoundServiceHandler.executeResponse(req, res);
|
||||
}
|
||||
|
||||
// Get current resource
|
||||
const currentResource: ModelDocumentation | undefined =
|
||||
ResourceDictionary[page];
|
||||
|
||||
// Check if current resource exists
|
||||
if (!currentResource) {
|
||||
return PageNotFoundServiceHandler.executeResponse(req, res);
|
||||
}
|
||||
|
||||
// Resource Page.
|
||||
// Set page title and description
|
||||
pageTitle = currentResource.name;
|
||||
pageDescription = currentResource.description;
|
||||
|
||||
page = "model";
|
||||
|
||||
// Get table columns for current resource
|
||||
const tableColumns: any = getTableColumns(currentResource.model);
|
||||
|
||||
// Filter out columns with no access
|
||||
for (const key in tableColumns) {
|
||||
const accessControl: ColumnAccessControl | null =
|
||||
currentResource.model.getColumnAccessControlFor(key);
|
||||
|
||||
if (!accessControl) {
|
||||
// remove columns with no access
|
||||
delete tableColumns[key];
|
||||
continue;
|
||||
}
|
||||
@@ -65,7 +72,6 @@ export default class ServiceHandler {
|
||||
accessControl?.read.length === 0 &&
|
||||
accessControl?.update.length === 0
|
||||
) {
|
||||
// remove columns with no access
|
||||
delete tableColumns[key];
|
||||
continue;
|
||||
}
|
||||
@@ -73,14 +79,17 @@ export default class ServiceHandler {
|
||||
tableColumns[key].permissions = accessControl;
|
||||
}
|
||||
|
||||
// Remove unnecessary columns
|
||||
delete tableColumns["deletedAt"];
|
||||
delete tableColumns["deletedByUserId"];
|
||||
delete tableColumns["deletedByUser"];
|
||||
delete tableColumns["version"];
|
||||
|
||||
// Set page data
|
||||
pageData.title = currentResource.model.singularName;
|
||||
pageData.description = currentResource.model.tableDescription;
|
||||
pageData.columns = tableColumns;
|
||||
|
||||
pageData.tablePermissions = {
|
||||
read: currentResource.model.readRecordPermissions.map(
|
||||
(permission: Permission) => {
|
||||
@@ -104,46 +113,56 @@ export default class ServiceHandler {
|
||||
),
|
||||
};
|
||||
|
||||
// Cache the list request data
|
||||
pageData.listRequest = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"list-request",
|
||||
async () => {
|
||||
// Read the list request data from a file
|
||||
return await LocalFile.read(`${CodeExamplesPath}/Model/ListRequest.md`);
|
||||
},
|
||||
);
|
||||
|
||||
// Cache the item request data
|
||||
pageData.itemRequest = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"item-request",
|
||||
async () => {
|
||||
// Read the item request data from a file
|
||||
return await LocalFile.read(`${CodeExamplesPath}/Model/ItemRequest.md`);
|
||||
},
|
||||
);
|
||||
|
||||
// Cache the item response data
|
||||
pageData.itemResponse = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"item-response",
|
||||
async () => {
|
||||
// Read the item response data from a file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/ItemResponse.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// Cache the count request data
|
||||
pageData.countRequest = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"count-request",
|
||||
async () => {
|
||||
// Read the count request data from a file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/CountRequest.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// Cache the count response data
|
||||
pageData.countResponse = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"count-response",
|
||||
async () => {
|
||||
// Read the CountResponse.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/CountResponse.md`,
|
||||
);
|
||||
@@ -154,6 +173,7 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"update-request",
|
||||
async () => {
|
||||
// Read the UpdateRequest.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/UpdateRequest.md`,
|
||||
);
|
||||
@@ -164,6 +184,7 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"update-response",
|
||||
async () => {
|
||||
// Read the UpdateResponse.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/UpdateResponse.md`,
|
||||
);
|
||||
@@ -174,6 +195,7 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"create-request",
|
||||
async () => {
|
||||
// Read the CreateRequest.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/CreateRequest.md`,
|
||||
);
|
||||
@@ -184,6 +206,7 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"create-response",
|
||||
async () => {
|
||||
// Read the CreateResponse.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/CreateResponse.md`,
|
||||
);
|
||||
@@ -194,6 +217,7 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"delete-request",
|
||||
async () => {
|
||||
// Read the DeleteRequest.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/DeleteRequest.md`,
|
||||
);
|
||||
@@ -204,29 +228,36 @@ export default class ServiceHandler {
|
||||
"model",
|
||||
"delete-response",
|
||||
async () => {
|
||||
// Read the DeleteResponse.md file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/DeleteResponse.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// Get list response from cache or set it if it's not available
|
||||
pageData.listResponse = await LocalCache.getOrSetString(
|
||||
"model",
|
||||
"list-response",
|
||||
async () => {
|
||||
// Read the list response from a file
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Model/ListResponse.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// Generate a unique ID for the example object
|
||||
pageData.exampleObjectID = ObjectID.generate();
|
||||
|
||||
// Construct the API path for the current resource
|
||||
pageData.apiPath =
|
||||
AppApiRoute.toString() + currentResource.model.crudApiPath?.toString();
|
||||
|
||||
// Check if the current resource is a master admin API
|
||||
pageData.isMasterAdminApiDocs = currentResource.model.isMasterAdminApiDocs;
|
||||
|
||||
// Render the index page with the required data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page,
|
||||
resources: Resources,
|
||||
25
APIReference/Service/PageNotFound.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources(); // Get an array of model documentation resources
|
||||
|
||||
export default class ServiceHandler {
|
||||
// This is a static method that handles the response
|
||||
public static async executeResponse(
|
||||
_req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
// Set the HTTP status code to 404 (Not Found)
|
||||
res.status(404);
|
||||
|
||||
// Render the 'index' page with the given data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: "404", // The page type (404 in this case)
|
||||
pageTitle: "Page Not Found", // The page title
|
||||
pageDescription: "Page you're looking for is not found.", // The page description
|
||||
resources: Resources, // The array of model documentation resources
|
||||
pageData: {}, // An empty object to hold any additional page data
|
||||
});
|
||||
}
|
||||
}
|
||||
55
APIReference/Service/Pagination.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { CodeExamplesPath, ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import LocalCache from "Common/Server/Infrastructure/LocalCache";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
import LocalFile from "Common/Server/Utils/LocalFile";
|
||||
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources(); // Get all resources from ResourceUtil
|
||||
|
||||
export default class ServiceHandler {
|
||||
public static async executeResponse(
|
||||
req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
let pageTitle: string = ""; // Initialize page title
|
||||
let pageDescription: string = ""; // Initialize page description
|
||||
const page: string | undefined = req.params["page"]; // Get the page parameter from the request
|
||||
const pageData: any = {}; // Initialize page data object
|
||||
|
||||
// Set page title and description
|
||||
pageTitle = "Pagination";
|
||||
pageDescription = "Learn how to paginate requests with OneUptime API";
|
||||
|
||||
// Get response and request code from LocalCache or LocalFile
|
||||
pageData.responseCode = await LocalCache.getOrSetString(
|
||||
"pagination",
|
||||
"response",
|
||||
async () => {
|
||||
// Read Response.md file from CodeExamplesPath
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Pagination/Response.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
pageData.requestCode = await LocalCache.getOrSetString(
|
||||
"pagination",
|
||||
"request",
|
||||
async () => {
|
||||
// Read Request.md file from CodeExamplesPath
|
||||
return await LocalFile.read(
|
||||
`${CodeExamplesPath}/Pagination/Request.md`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// Render the page with the page data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page, // Pass the page parameter
|
||||
resources: Resources, // Pass all resources
|
||||
pageTitle: pageTitle, // Pass the page title
|
||||
pageDescription: pageDescription, // Pass the page description
|
||||
pageData: pageData, // Pass the page data
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { PermissionHelper, PermissionProps } from "Common/Types/Permission";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
|
||||
@@ -10,20 +10,26 @@ export default class ServiceHandler {
|
||||
req: ExpressRequest,
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
// Initialize page title and description
|
||||
let pageTitle: string = "";
|
||||
let pageDescription: string = "";
|
||||
|
||||
// Get the requested page
|
||||
const page: string | undefined = req.params["page"];
|
||||
const pageData: any = {};
|
||||
|
||||
// Set page title and description
|
||||
pageTitle = "Permissions";
|
||||
pageDescription = "Learn how permissions work with OneUptime";
|
||||
|
||||
// Filter permissions to only include those assignable to tenants
|
||||
pageData.permissions = PermissionHelper.getAllPermissionProps().filter(
|
||||
(i: PermissionProps) => {
|
||||
return i.isAssignableToTenant;
|
||||
},
|
||||
);
|
||||
|
||||
// Render the page
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: page,
|
||||
resources: Resources,
|
||||
@@ -1,21 +1,25 @@
|
||||
import { ViewsPath } from "../Utils/Config";
|
||||
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
|
||||
import { ExpressRequest, ExpressResponse } from "CommonServer/Utils/Express";
|
||||
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
|
||||
|
||||
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
// Retrieve resources from ResourceUtil
|
||||
const resources: Array<ModelDocumentation> = ResourceUtil.getResources();
|
||||
|
||||
export default class ServiceHandler {
|
||||
public static async executeResponse(
|
||||
_req: ExpressRequest,
|
||||
_req: ExpressRequest, // Ignore request object
|
||||
res: ExpressResponse,
|
||||
): Promise<void> {
|
||||
// Set HTTP status to 200
|
||||
res.status(200);
|
||||
|
||||
// Render index page with necessary data
|
||||
return res.render(`${ViewsPath}/pages/index`, {
|
||||
page: "status",
|
||||
pageTitle: "Status",
|
||||
pageDescription: "200 - Success",
|
||||
resources: Resources,
|
||||
pageData: {},
|
||||
resources: resources, // Pass resources to the template
|
||||
pageData: {}, // Pass empty data to the template
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 740 B After Width: | Height: | Size: 740 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 649 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 764 B After Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 870 B After Width: | Height: | Size: 870 B |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |