Compare commits
2441 Commits
v1.0.0-rc.
...
html-viz
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1580798479 | ||
|
|
b7b345dacd | ||
|
|
0b22aa55a1 | ||
|
|
3eddea6e88 | ||
|
|
c85e097f8a | ||
|
|
81bc4ef58b | ||
|
|
9fec3ca9ea | ||
|
|
ee29cf9efc | ||
|
|
17aba39636 | ||
|
|
2cd1b07a41 | ||
|
|
72d00314a4 | ||
|
|
5b077ab083 | ||
|
|
da2d6bc3a8 | ||
|
|
33930a5b9c | ||
|
|
fbff4f9219 | ||
|
|
30f725f1e1 | ||
|
|
47cd05b48e | ||
|
|
9a4433bf68 | ||
|
|
d0b2151b4d | ||
|
|
21e22a2d0d | ||
|
|
f3a653c57f | ||
|
|
c9bf412240 | ||
|
|
48955b5fa1 | ||
|
|
24a5748528 | ||
|
|
8758279b14 | ||
|
|
99bb24d899 | ||
|
|
c93a905c1d | ||
|
|
a1e75d2f0b | ||
|
|
fb48bc374a | ||
|
|
10a6ccbbcd | ||
|
|
fea082ec77 | ||
|
|
aa9d2466cd | ||
|
|
97492d7aa0 | ||
|
|
18761cf07b | ||
|
|
9b3dd82ec0 | ||
|
|
e485c964c5 | ||
|
|
5b30d081d7 | ||
|
|
b96094b878 | ||
|
|
1f43537304 | ||
|
|
01e64db0dc | ||
|
|
3ab46bb39a | ||
|
|
af168c69b9 | ||
|
|
63e052c3a3 | ||
|
|
563e34a816 | ||
|
|
1524d06149 | ||
|
|
e9711a0b9c | ||
|
|
9fcf510ffd | ||
|
|
70227f2e43 | ||
|
|
1babd01f38 | ||
|
|
768bfb3525 | ||
|
|
fc5a624efb | ||
|
|
47bf91e150 | ||
|
|
8f4288583e | ||
|
|
595af3bce8 | ||
|
|
dba7efe030 | ||
|
|
1b142b33f1 | ||
|
|
13814c752d | ||
|
|
dd477d49ec | ||
|
|
5decd2624a | ||
|
|
6f9aee42a7 | ||
|
|
1333aae7fb | ||
|
|
33ad89a381 | ||
|
|
02a5852072 | ||
|
|
12782e4daf | ||
|
|
704b78a003 | ||
|
|
ec4f77c8b7 | ||
|
|
1871287a1f | ||
|
|
f9cc230227 | ||
|
|
fe4a7b65e7 | ||
|
|
b3819de878 | ||
|
|
2699d24441 | ||
|
|
1933dee8ca | ||
|
|
375e61f263 | ||
|
|
872d0ca5e6 | ||
|
|
973ad565cd | ||
|
|
7a7fdf9c99 | ||
|
|
49ffaae3ec | ||
|
|
d5494cff08 | ||
|
|
71afc99ec3 | ||
|
|
b5d97e25b7 | ||
|
|
6c26aa7a99 | ||
|
|
712fc63f93 | ||
|
|
77c53130a4 | ||
|
|
73c8e3096d | ||
|
|
8230098f50 | ||
|
|
fd42091f87 | ||
|
|
ec4b36b178 | ||
|
|
0995dfbf43 | ||
|
|
70d4c724c2 | ||
|
|
1d7378f84b | ||
|
|
b4a4ee212e | ||
|
|
25910e7655 | ||
|
|
8e5ba804f6 | ||
|
|
173f9ba7e8 | ||
|
|
e712c19bbe | ||
|
|
aea3c9dbaa | ||
|
|
2f8aade697 | ||
|
|
a7b930a422 | ||
|
|
4e69b73b0f | ||
|
|
c47dd05095 | ||
|
|
15c815fb5e | ||
|
|
9de676acee | ||
|
|
ff0967f0d8 | ||
|
|
e5d082b9b3 | ||
|
|
93aa6b5b80 | ||
|
|
1f74c0bad5 | ||
|
|
a8cb70910e | ||
|
|
852636f07c | ||
|
|
cf5c2c5ba2 | ||
|
|
10f4b99cd3 | ||
|
|
8456bbf762 | ||
|
|
ab39242cc4 | ||
|
|
b799ab6f0b | ||
|
|
cb4d81d6ad | ||
|
|
adf935b1df | ||
|
|
f1cb0101b9 | ||
|
|
4768fd081e | ||
|
|
4a8d9a7fb0 | ||
|
|
ba62b46a45 | ||
|
|
fbf4dae001 | ||
|
|
5943bf04d5 | ||
|
|
93ec19b93f | ||
|
|
63d3f22c93 | ||
|
|
685c7713e4 | ||
|
|
4cfa26a55e | ||
|
|
5dc74e1ef7 | ||
|
|
b703f7a3c4 | ||
|
|
26f0ce0749 | ||
|
|
12d2a04946 | ||
|
|
5501f3e61c | ||
|
|
61f143dfd3 | ||
|
|
8737e8032e | ||
|
|
dfa48caf63 | ||
|
|
e4c933af55 | ||
|
|
be1bd2863f | ||
|
|
507ea61151 | ||
|
|
4f79c86c0e | ||
|
|
160c3c1048 | ||
|
|
8eb751f0c3 | ||
|
|
75bc469708 | ||
|
|
21082fbe0e | ||
|
|
4e7d16b642 | ||
|
|
b68051d3c5 | ||
|
|
bc22797009 | ||
|
|
7a4fe5055d | ||
|
|
6a75ac4a57 | ||
|
|
34da15fd6a | ||
|
|
dd0fab7275 | ||
|
|
ade3cc72a7 | ||
|
|
02e82a7658 | ||
|
|
6e3b9c2977 | ||
|
|
34e03b01bb | ||
|
|
dab35acd2c | ||
|
|
a93741e64b | ||
|
|
549f878c98 | ||
|
|
194f45263b | ||
|
|
83668a6840 | ||
|
|
c9a4f07a7a | ||
|
|
e9c88ea176 | ||
|
|
fbaded4548 | ||
|
|
570e8d9f23 | ||
|
|
0d76c036cb | ||
|
|
138c55cf54 | ||
|
|
60cd8812a9 | ||
|
|
5c5bfbdbbe | ||
|
|
75c34bf18d | ||
|
|
b56cc1cd16 | ||
|
|
1a357df9b3 | ||
|
|
d36e5acaea | ||
|
|
f4f34d02fb | ||
|
|
3fdd3080c1 | ||
|
|
5d525b80b6 | ||
|
|
5e5b0d69d8 | ||
|
|
33b8bd27eb | ||
|
|
8679b8756e | ||
|
|
2a37cb31d9 | ||
|
|
4ad303b358 | ||
|
|
8fe1d33068 | ||
|
|
4999ab5de7 | ||
|
|
8b19f16430 | ||
|
|
a17eb14cdf | ||
|
|
1ad0fa6a9b | ||
|
|
77dcc80522 | ||
|
|
fe10b06928 | ||
|
|
e35f2b8f51 | ||
|
|
0bca2d8920 | ||
|
|
f421119f9d | ||
|
|
ebef0efe06 | ||
|
|
8fc2ecf55c | ||
|
|
3147a0bd98 | ||
|
|
2c705712fc | ||
|
|
d483785098 | ||
|
|
298fe6a779 | ||
|
|
f07e613631 | ||
|
|
60472e2fe0 | ||
|
|
81c950407d | ||
|
|
a34269cc7d | ||
|
|
a8f74a1078 | ||
|
|
58a53e3470 | ||
|
|
fba2a35cef | ||
|
|
b9644b7456 | ||
|
|
afaedb9062 | ||
|
|
f2df7170d2 | ||
|
|
d6827e3601 | ||
|
|
c028e49bfd | ||
|
|
9b1f277530 | ||
|
|
901f28a79f | ||
|
|
3fed697c37 | ||
|
|
d567765a3c | ||
|
|
4dbc17572a | ||
|
|
330c5a85f1 | ||
|
|
2c1400d323 | ||
|
|
cb22764d68 | ||
|
|
eee77a1c9b | ||
|
|
71fb1442f1 | ||
|
|
23908edc28 | ||
|
|
df4ca86d35 | ||
|
|
03f040da0e | ||
|
|
e21bbcc6fe | ||
|
|
23f5dde488 | ||
|
|
29326f3610 | ||
|
|
593ebde211 | ||
|
|
11507c5e5e | ||
|
|
c49dccf254 | ||
|
|
029bee18fb | ||
|
|
ec475e4b7b | ||
|
|
045c171bb4 | ||
|
|
21341132f6 | ||
|
|
ac68fe1a6d | ||
|
|
13855934f9 | ||
|
|
5b62883c1c | ||
|
|
c9681d55bf | ||
|
|
7cfea8a6a0 | ||
|
|
2011864fdb | ||
|
|
8f0cffe424 | ||
|
|
3df372434f | ||
|
|
933dd753a8 | ||
|
|
3992bcda9b | ||
|
|
69e34f048a | ||
|
|
b0a11983fa | ||
|
|
807e6aaaa6 | ||
|
|
324a1f55cc | ||
|
|
abccff03f7 | ||
|
|
aa619c453f | ||
|
|
10b5c03248 | ||
|
|
fde52f5d84 | ||
|
|
78df7e7cc9 | ||
|
|
e314715335 | ||
|
|
a1cf065ec6 | ||
|
|
f9570556c5 | ||
|
|
9859610e80 | ||
|
|
feab2a040b | ||
|
|
35c390a2f9 | ||
|
|
ebb96d7ad7 | ||
|
|
3d58860f6f | ||
|
|
c223566302 | ||
|
|
1439714fa6 | ||
|
|
9c06e9a0bd | ||
|
|
f98cf7812b | ||
|
|
ee0e81e795 | ||
|
|
bd559b6eeb | ||
|
|
c51191aaf0 | ||
|
|
4a2645d4c6 | ||
|
|
3ad1709a0a | ||
|
|
cc135398e2 | ||
|
|
067472643d | ||
|
|
225c98c52a | ||
|
|
00e991ecfc | ||
|
|
a362e97dfe | ||
|
|
1ea532fe26 | ||
|
|
9a1c8290e4 | ||
|
|
0d959116d8 | ||
|
|
0b9f575dab | ||
|
|
13bc910d7c | ||
|
|
9e2f8e2461 | ||
|
|
61e7cdaa81 | ||
|
|
53aecdc607 | ||
|
|
2da511021e | ||
|
|
371b319e92 | ||
|
|
ff42ec2cc6 | ||
|
|
7278d4b1fc | ||
|
|
6930106380 | ||
|
|
c0859642fd | ||
|
|
37821ee008 | ||
|
|
c31cb01065 | ||
|
|
1fa58674f3 | ||
|
|
d204c158a2 | ||
|
|
b0b4d5e26a | ||
|
|
c2c722e12e | ||
|
|
1a61ee3ec0 | ||
|
|
d5afa1815e | ||
|
|
87667676e6 | ||
|
|
bfeb015d71 | ||
|
|
a9c514aaf7 | ||
|
|
7fa6665445 | ||
|
|
ff6b20b69c | ||
|
|
c4bf44677a | ||
|
|
8bdcfb06c5 | ||
|
|
b3643ffbb7 | ||
|
|
b91d4bdcaf | ||
|
|
8bc8e2dadf | ||
|
|
84d5becf2a | ||
|
|
e8120c5f79 | ||
|
|
40c6a2621c | ||
|
|
06887f6ff1 | ||
|
|
7847cf7d63 | ||
|
|
121a44ef15 | ||
|
|
823e4ccdd6 | ||
|
|
0c45d69662 | ||
|
|
df23842c57 | ||
|
|
d68a4dce5f | ||
|
|
db86e394cf | ||
|
|
4c9326a9da | ||
|
|
200fea952a | ||
|
|
90a0a7d39b | ||
|
|
26252be75a | ||
|
|
6c6366e6f0 | ||
|
|
de04a403d7 | ||
|
|
0b6f1fc21b | ||
|
|
445f8e5c36 | ||
|
|
a29136037c | ||
|
|
08953cc919 | ||
|
|
22f835d3cb | ||
|
|
823f172a9f | ||
|
|
44dff83046 | ||
|
|
569430e5cd | ||
|
|
07a1c23df5 | ||
|
|
b97b8477ad | ||
|
|
9b72dfe076 | ||
|
|
3ee83a4c4a | ||
|
|
cdd2259d08 | ||
|
|
fc368ee425 | ||
|
|
7a2e08c3eb | ||
|
|
ba0d069283 | ||
|
|
670d86eb5f | ||
|
|
63f38b7acd | ||
|
|
8b5ffc6f84 | ||
|
|
cce2052e79 | ||
|
|
8ea6283430 | ||
|
|
08b86c1c6d | ||
|
|
0449a3ff31 | ||
|
|
4ea46f197e | ||
|
|
d7edaa3ba2 | ||
|
|
632fc5aace | ||
|
|
b9abb36799 | ||
|
|
d7e7b99a76 | ||
|
|
db87c8740e | ||
|
|
5f2b54a320 | ||
|
|
f62d0e1300 | ||
|
|
9e156c1c30 | ||
|
|
26965b4948 | ||
|
|
7a03928f48 | ||
|
|
8f14efdaff | ||
|
|
03a7e24204 | ||
|
|
2f7cb1bc8a | ||
|
|
64783b7f06 | ||
|
|
8ed872756c | ||
|
|
83ea472d37 | ||
|
|
0505163ff9 | ||
|
|
3d38bb478f | ||
|
|
654e906f6b | ||
|
|
54da6c69ab | ||
|
|
8284e829fb | ||
|
|
bcfff469de | ||
|
|
b5ceb268ef | ||
|
|
8583eaa8ad | ||
|
|
ef66da7d94 | ||
|
|
1b4e0f5de7 | ||
|
|
479247b60c | ||
|
|
57c8fbe14e | ||
|
|
938a20e7c0 | ||
|
|
dc842e9201 | ||
|
|
f5dbdf245a | ||
|
|
35357afb90 | ||
|
|
419877b364 | ||
|
|
143d515bfc | ||
|
|
8481dacff4 | ||
|
|
94905a287a | ||
|
|
34af780264 | ||
|
|
3c8a3caa1d | ||
|
|
9d566ef302 | ||
|
|
e23a07af03 | ||
|
|
2312db46f2 | ||
|
|
52434a837f | ||
|
|
230ad33f02 | ||
|
|
b3495b8c00 | ||
|
|
dec790a9f3 | ||
|
|
cfe12c5a5d | ||
|
|
944bee6101 | ||
|
|
38ed046c9f | ||
|
|
1acf063755 | ||
|
|
c426c826f7 | ||
|
|
4b1275ae56 | ||
|
|
b3c3134a86 | ||
|
|
c311c12bcf | ||
|
|
76321937d7 | ||
|
|
c9ca2b99f6 | ||
|
|
d42f0b2d40 | ||
|
|
e530c23d4c | ||
|
|
0973ee8abb | ||
|
|
3ee7537a6c | ||
|
|
d769afab6f | ||
|
|
cf86509a0b | ||
|
|
54894c3a26 | ||
|
|
9c12b04578 | ||
|
|
1519849219 | ||
|
|
202b93d8be | ||
|
|
0a62bee3a1 | ||
|
|
9579f12a83 | ||
|
|
463d4ce518 | ||
|
|
2e4d196452 | ||
|
|
4078af2996 | ||
|
|
73825ea266 | ||
|
|
b2a0d61844 | ||
|
|
1774edabc0 | ||
|
|
54b8e7c136 | ||
|
|
54f09f73db | ||
|
|
35aca1d4cf | ||
|
|
757333c2d6 | ||
|
|
92728de04c | ||
|
|
407f14ffca | ||
|
|
ecb8a5c244 | ||
|
|
0e8fab4872 | ||
|
|
c15fa0c592 | ||
|
|
09ab00e360 | ||
|
|
1728f924cf | ||
|
|
8dc10fbd9a | ||
|
|
a16170e701 | ||
|
|
07c0bba568 | ||
|
|
d36d18f85b | ||
|
|
bd20ce12ac | ||
|
|
1cdfcfaa3c | ||
|
|
2fdace518a | ||
|
|
3516e4ef45 | ||
|
|
d842968142 | ||
|
|
600741620a | ||
|
|
45f4277eb4 | ||
|
|
bcf3041c91 | ||
|
|
da423340ec | ||
|
|
4003d4f1aa | ||
|
|
a6b782e0ce | ||
|
|
5648de9ba8 | ||
|
|
13eb365f7b | ||
|
|
8257d9d037 | ||
|
|
babbeb79f0 | ||
|
|
8028397f27 | ||
|
|
e05c8e6060 | ||
|
|
ef8839aafa | ||
|
|
14860f6a8b | ||
|
|
a52c783857 | ||
|
|
5e7c785891 | ||
|
|
b242cefaa0 | ||
|
|
fae2b70866 | ||
|
|
1119fce44c | ||
|
|
bfb7edc0eb | ||
|
|
a39a739473 | ||
|
|
c9dfac5b1d | ||
|
|
1b66fff3be | ||
|
|
0fe1b5f9d4 | ||
|
|
143db90a50 | ||
|
|
bac90db3ee | ||
|
|
649d46de89 | ||
|
|
0163e85eda | ||
|
|
f25beb3fb7 | ||
|
|
c66f63d7a5 | ||
|
|
16ae0aa3d8 | ||
|
|
68ada7b590 | ||
|
|
9e745ef648 | ||
|
|
ee0d7f5ec9 | ||
|
|
1b3bbb6c3b | ||
|
|
7bee07c9da | ||
|
|
74ab7a5a42 | ||
|
|
e36853ca84 | ||
|
|
bc65b62776 | ||
|
|
d43b35ba6f | ||
|
|
6e4f0ccee8 | ||
|
|
0ce7772aa3 | ||
|
|
f6ef38479c | ||
|
|
bf85ddaaff | ||
|
|
8bb96c8c91 | ||
|
|
42b05cee00 | ||
|
|
d0fd02123a | ||
|
|
e34203dac3 | ||
|
|
c2bd8518a6 | ||
|
|
46363ccc70 | ||
|
|
5e1512e777 | ||
|
|
188c045fdb | ||
|
|
57d921dc2b | ||
|
|
df0804c8fd | ||
|
|
c289dde806 | ||
|
|
b7cadca3b7 | ||
|
|
43f8200707 | ||
|
|
a1b580bba6 | ||
|
|
19d0313ea2 | ||
|
|
667fe43e23 | ||
|
|
096eba3876 | ||
|
|
99115a12e6 | ||
|
|
7d601cbbc9 | ||
|
|
bf6a09c5aa | ||
|
|
99967e720f | ||
|
|
27f489de20 | ||
|
|
46941d3aa1 | ||
|
|
60c230add7 | ||
|
|
0784a0c6f5 | ||
|
|
9288d89248 | ||
|
|
391fbe130b | ||
|
|
e25c8c4145 | ||
|
|
57353d1b40 | ||
|
|
7f4e08154f | ||
|
|
500c82815b | ||
|
|
4a846f04e9 | ||
|
|
b1e9d87e2a | ||
|
|
ab6ed7da34 | ||
|
|
2e6883c527 | ||
|
|
4c44999b2c | ||
|
|
34c118cf83 | ||
|
|
38a89b9783 | ||
|
|
6e836795b2 | ||
|
|
719fc41dd1 | ||
|
|
467ec201da | ||
|
|
5ab143de41 | ||
|
|
284e497483 | ||
|
|
c5613dddf1 | ||
|
|
34fb3ac79f | ||
|
|
5f58c328f1 | ||
|
|
7d1dbb87db | ||
|
|
45f4d46245 | ||
|
|
44d05c35ac | ||
|
|
edd2cb85f7 | ||
|
|
6c364369bb | ||
|
|
869841b2ac | ||
|
|
c71f722552 | ||
|
|
af3a1e00c6 | ||
|
|
5b2ec81e65 | ||
|
|
0008e5803b | ||
|
|
e1c1f67abb | ||
|
|
30283235a4 | ||
|
|
845e33b396 | ||
|
|
17baa66188 | ||
|
|
5df7bd12c9 | ||
|
|
e14c8b61a0 | ||
|
|
a8a3ec66fd | ||
|
|
a4b9c2da12 | ||
|
|
e6146dae0f | ||
|
|
bd3fe880a4 | ||
|
|
02e919c39b | ||
|
|
99c73aef2d | ||
|
|
be377b5f59 | ||
|
|
6b11ae4312 | ||
|
|
9021977a54 | ||
|
|
9c8d06578a | ||
|
|
114beb2480 | ||
|
|
e97a5cbb29 | ||
|
|
e87efc8bc3 | ||
|
|
be7f601d21 | ||
|
|
9b59d10677 | ||
|
|
a40669e07f | ||
|
|
0bcf5d4be7 | ||
|
|
8bc96764a6 | ||
|
|
6ea03e58b4 | ||
|
|
94801665ab | ||
|
|
aa12151e19 | ||
|
|
c2429e92d2 | ||
|
|
5ffc85c066 | ||
|
|
fad757c878 | ||
|
|
3351a281ee | ||
|
|
1f0053f531 | ||
|
|
935dc38360 | ||
|
|
bfef7fae93 | ||
|
|
da6d456f6f | ||
|
|
c19199c2fb | ||
|
|
1e78861f85 | ||
|
|
10bc5a0bf6 | ||
|
|
313af904df | ||
|
|
8c478087a9 | ||
|
|
ccac41c6d4 | ||
|
|
69635f2c40 | ||
|
|
1867ea50bb | ||
|
|
c64d5ef6c0 | ||
|
|
e3a63899d3 | ||
|
|
4685887fe5 | ||
|
|
f103357e60 | ||
|
|
11738f73ac | ||
|
|
d07c4f969b | ||
|
|
505aafbce3 | ||
|
|
b765693879 | ||
|
|
4620fed0cf | ||
|
|
48ad1d2dce | ||
|
|
f2c323a089 | ||
|
|
ec17cc7eab | ||
|
|
6c7bbe9041 | ||
|
|
551b0222c4 | ||
|
|
2b0e6e9e79 | ||
|
|
4727c19253 | ||
|
|
2ff4d07e83 | ||
|
|
1997f53f40 | ||
|
|
c03b5d51b7 | ||
|
|
197665bb6a | ||
|
|
28fbc2ae62 | ||
|
|
ea1c4ca85c | ||
|
|
588e0cce43 | ||
|
|
8a50351520 | ||
|
|
34e39eda4a | ||
|
|
28a8525ce3 | ||
|
|
5e70f9c04a | ||
|
|
a05b5ba68d | ||
|
|
40ba66c58e | ||
|
|
3e4adaba9a | ||
|
|
865b799dfd | ||
|
|
eed26c789e | ||
|
|
8c9d2af6fe | ||
|
|
03cac7e515 | ||
|
|
defb3b9750 | ||
|
|
ec39bb0779 | ||
|
|
1661553da7 | ||
|
|
a4d5782ea1 | ||
|
|
d491eddd7d | ||
|
|
47068a6d91 | ||
|
|
d8ced1401f | ||
|
|
59a5540823 | ||
|
|
b1f5d60460 | ||
|
|
5c9852b9d9 | ||
|
|
8c360d5c8d | ||
|
|
eb6f9d5ab8 | ||
|
|
4ab160a14c | ||
|
|
93b34bcbce | ||
|
|
5113f4ff33 | ||
|
|
151683f9f9 | ||
|
|
53abc16780 | ||
|
|
d529a1dfb3 | ||
|
|
7cb7f3a99d | ||
|
|
c27528fb7e | ||
|
|
841642b9fc | ||
|
|
04c97067ac | ||
|
|
41113404c0 | ||
|
|
bcaa54edf1 | ||
|
|
a6d501a394 | ||
|
|
e4305e05ad | ||
|
|
84f1218849 | ||
|
|
99dd4ddca2 | ||
|
|
6f26b9638b | ||
|
|
72632be04d | ||
|
|
bfd128413c | ||
|
|
bc15c0b6d1 | ||
|
|
636276c9c4 | ||
|
|
57e4496ea5 | ||
|
|
bd7ce3a2ce | ||
|
|
8ef89177ff | ||
|
|
82af372583 | ||
|
|
341a68c7d4 | ||
|
|
8fa2a6649a | ||
|
|
c6cb6061e3 | ||
|
|
4d2df72f1f | ||
|
|
038966a39a | ||
|
|
9044de6142 | ||
|
|
b746c433ea | ||
|
|
a0e8c3d2e5 | ||
|
|
6ef6a2f484 | ||
|
|
5581e48474 | ||
|
|
a251d8fab0 | ||
|
|
6ecb215896 | ||
|
|
df4b34c179 | ||
|
|
e3f20abf16 | ||
|
|
1cafcc1eac | ||
|
|
f6aab04a4b | ||
|
|
674a689400 | ||
|
|
7e0e498d33 | ||
|
|
a1c566fea7 | ||
|
|
4f7cb89e91 | ||
|
|
035b26b631 | ||
|
|
a3e0990143 | ||
|
|
0772b12f19 | ||
|
|
f3fed27383 | ||
|
|
573865f1cc | ||
|
|
1e6d6bbeb3 | ||
|
|
b89bb392ce | ||
|
|
e4dba1ca8e | ||
|
|
2e08d8deb4 | ||
|
|
1676d34af6 | ||
|
|
f96a0f338d | ||
|
|
226dd65d53 | ||
|
|
188467ec64 | ||
|
|
2d4983a224 | ||
|
|
629f61772f | ||
|
|
deaa891eb2 | ||
|
|
351e0f8fdb | ||
|
|
3ecec4ba8b | ||
|
|
a2ca793ddd | ||
|
|
5eb280ef01 | ||
|
|
d7946dafd6 | ||
|
|
bdff248dd7 | ||
|
|
c6b129d726 | ||
|
|
1468d6e257 | ||
|
|
a014df36d8 | ||
|
|
06ad89f75b | ||
|
|
692e7f9547 | ||
|
|
03262867fe | ||
|
|
8eb9ae604e | ||
|
|
9bb8ec2f66 | ||
|
|
340184a796 | ||
|
|
f0502ba088 | ||
|
|
44014d7eab | ||
|
|
6b671817a2 | ||
|
|
5da481e2c3 | ||
|
|
40c8cef821 | ||
|
|
13d891bac3 | ||
|
|
73f7476434 | ||
|
|
8017893c00 | ||
|
|
d1ddc4631d | ||
|
|
a94f2efc80 | ||
|
|
0127799ec7 | ||
|
|
e2313e67b6 | ||
|
|
50c37c0469 | ||
|
|
c6f75ddbb2 | ||
|
|
85230e3cc3 | ||
|
|
ccaf849328 | ||
|
|
494f43b997 | ||
|
|
f9e2895f16 | ||
|
|
92bdac0ee2 | ||
|
|
b19dec08d0 | ||
|
|
9926359c45 | ||
|
|
b0f0b49d1c | ||
|
|
016166c193 | ||
|
|
dd2f24f976 | ||
|
|
f89d64e467 | ||
|
|
02e6edf111 | ||
|
|
18768885f2 | ||
|
|
5ca59a5002 | ||
|
|
25ae7b4a88 | ||
|
|
1f01fe2f39 | ||
|
|
d70bcfd615 | ||
|
|
94da0d90b9 | ||
|
|
487dd6b88d | ||
|
|
01b3d428c3 | ||
|
|
d30dd63656 | ||
|
|
3c7dd064ef | ||
|
|
058a7ca368 | ||
|
|
10ddb73385 | ||
|
|
27dfa3d8ae | ||
|
|
2390343c67 | ||
|
|
2c3067bdfd | ||
|
|
2e9ef66cbc | ||
|
|
a05c4b3b20 | ||
|
|
895786d129 | ||
|
|
011142fabb | ||
|
|
e4af1e6534 | ||
|
|
25de0b9dab | ||
|
|
b86715c7fa | ||
|
|
2af926703a | ||
|
|
2f09497797 | ||
|
|
16ea4be157 | ||
|
|
823a681131 | ||
|
|
08b59c4485 | ||
|
|
486a6068ac | ||
|
|
d651fdc2b7 | ||
|
|
2c0ff53894 | ||
|
|
10ff9ec86e | ||
|
|
35bb558f44 | ||
|
|
3d39e5cb29 | ||
|
|
24404b3b86 | ||
|
|
a9cb08d0d6 | ||
|
|
12436430cc | ||
|
|
9ed7b3d3d4 | ||
|
|
9f467f7a2b | ||
|
|
052a60512b | ||
|
|
2ff3d8985c | ||
|
|
b1139d4891 | ||
|
|
197e7d5882 | ||
|
|
f771b514e6 | ||
|
|
27128d73fe | ||
|
|
fa1b71bc27 | ||
|
|
f78ab06369 | ||
|
|
64f6c9319d | ||
|
|
d76a9cd22f | ||
|
|
d6f8d7af5a | ||
|
|
00c413c2d8 | ||
|
|
6be54defb4 | ||
|
|
20261d0632 | ||
|
|
522c08a7a4 | ||
|
|
3fa2db4085 | ||
|
|
8343f2c8b2 | ||
|
|
df25bbfa90 | ||
|
|
5e35156d22 | ||
|
|
34c2292a98 | ||
|
|
2438475ba2 | ||
|
|
b91a2d14fd | ||
|
|
d7310f5be9 | ||
|
|
873f51c5f6 | ||
|
|
ac1fc6bdd8 | ||
|
|
28f7c048bb | ||
|
|
8d80077aa8 | ||
|
|
101c09fcae | ||
|
|
9141850304 | ||
|
|
e7d8491f0b | ||
|
|
0568d40b27 | ||
|
|
77831d1c91 | ||
|
|
3772612a97 | ||
|
|
58e21c9807 | ||
|
|
abcf5b729a | ||
|
|
7b40d01f51 | ||
|
|
f597c04214 | ||
|
|
53c20e2250 | ||
|
|
c5f27253b0 | ||
|
|
140d0ae14f | ||
|
|
383d5d3725 | ||
|
|
e0ce7f8d7d | ||
|
|
4b0a2c04df | ||
|
|
6ce522a863 | ||
|
|
84302e3d86 | ||
|
|
cf29fa09f3 | ||
|
|
50b9e99f90 | ||
|
|
01678beebf | ||
|
|
0a6a807964 | ||
|
|
964eff017c | ||
|
|
7f4e7a947e | ||
|
|
ca04732d3f | ||
|
|
389c6cb3c5 | ||
|
|
75df88a8ff | ||
|
|
0c95b47de4 | ||
|
|
bad7e92cce | ||
|
|
ead1e07e99 | ||
|
|
b712253276 | ||
|
|
71531c9910 | ||
|
|
8a4eab1c93 | ||
|
|
5846a5733c | ||
|
|
d1d72b30c6 | ||
|
|
ba980d6b87 | ||
|
|
258d506215 | ||
|
|
b759536146 | ||
|
|
91ff4aee63 | ||
|
|
fa6e2cc264 | ||
|
|
c719d336a9 | ||
|
|
720da3310f | ||
|
|
ed8b022e78 | ||
|
|
2eefdc1da3 | ||
|
|
5e4cf5ba30 | ||
|
|
18f51890d2 | ||
|
|
b0de1be815 | ||
|
|
f39b6b7073 | ||
|
|
e2a5bb0a06 | ||
|
|
bfeeb23443 | ||
|
|
9eb51da7ce | ||
|
|
d6011ede0c | ||
|
|
c47ad93eb2 | ||
|
|
4384959760 | ||
|
|
fccba45e36 | ||
|
|
9d2a3133f0 | ||
|
|
744ccd163a | ||
|
|
4a833a7401 | ||
|
|
ece80eb1f7 | ||
|
|
695c342a69 | ||
|
|
97d4df2532 | ||
|
|
8cd8650119 | ||
|
|
6fb7c310be | ||
|
|
d533a05d54 | ||
|
|
783ccfd4c0 | ||
|
|
5757b24ea3 | ||
|
|
5c1d2c8877 | ||
|
|
ff750b0db1 | ||
|
|
f4b32249e9 | ||
|
|
f8245f6e3f | ||
|
|
c28702a5be | ||
|
|
d101866c91 | ||
|
|
6c11326a5d | ||
|
|
17a677b6d0 | ||
|
|
1678155490 | ||
|
|
7be6164684 | ||
|
|
418ac1bb68 | ||
|
|
78421f590b | ||
|
|
bdbeebdf86 | ||
|
|
b521e65800 | ||
|
|
a8a0312b72 | ||
|
|
840a7482c8 | ||
|
|
d11638164e | ||
|
|
1efdb6034f | ||
|
|
d0c6e41c9c | ||
|
|
e79dbe8b95 | ||
|
|
93dffa0c8a | ||
|
|
deceaa8888 | ||
|
|
11f25d8ba4 | ||
|
|
69d5eb9020 | ||
|
|
7ac90fe81e | ||
|
|
23deab7b7c | ||
|
|
f0342c3c45 | ||
|
|
3835a8286c | ||
|
|
a4f61df3fb | ||
|
|
0d764caafe | ||
|
|
5081e9d245 | ||
|
|
312a73dd8d | ||
|
|
d3240cd71b | ||
|
|
2b9dd6b5c0 | ||
|
|
3ac52a2af5 | ||
|
|
15baef531c | ||
|
|
135cb53909 | ||
|
|
f29afe9306 | ||
|
|
9feb7773ce | ||
|
|
bcf49a700b | ||
|
|
a782d67a8e | ||
|
|
3fbf518061 | ||
|
|
0479aa40b3 | ||
|
|
b9db9f0b20 | ||
|
|
aa756b2be6 | ||
|
|
af40375a78 | ||
|
|
d385b43915 | ||
|
|
54d667e59e | ||
|
|
983e3ba350 | ||
|
|
875e756236 | ||
|
|
56b1e3c7aa | ||
|
|
7785538d59 | ||
|
|
82829d5687 | ||
|
|
34aaf55463 | ||
|
|
e6745683fe | ||
|
|
8c7e62f7ff | ||
|
|
02628d76f1 | ||
|
|
64f70cfbe8 | ||
|
|
5f1c4e9dce | ||
|
|
672c86efaa | ||
|
|
8bffc6f45d | ||
|
|
52b9333b8d | ||
|
|
2982d77ff2 | ||
|
|
dda024a8d2 | ||
|
|
ea8951711f | ||
|
|
204e36730e | ||
|
|
c86423aea9 | ||
|
|
c7cf3653b8 | ||
|
|
804603014d | ||
|
|
90d642fbe2 | ||
|
|
ca1b8f2047 | ||
|
|
0a0b53b7e9 | ||
|
|
131811179b | ||
|
|
80295ca1e7 | ||
|
|
d71cdf5dbc | ||
|
|
65881a0f79 | ||
|
|
cc3145f895 | ||
|
|
c6b16b62ab | ||
|
|
f2b49ae7ff | ||
|
|
3113c9b79e | ||
|
|
6a89d5ea1c | ||
|
|
b7f221542b | ||
|
|
cfc3912723 | ||
|
|
c7614997d9 | ||
|
|
b323747aaf | ||
|
|
64c9e5c963 | ||
|
|
68e5aec861 | ||
|
|
617df8e4f6 | ||
|
|
75f8b8ae7b | ||
|
|
3fe8272ce4 | ||
|
|
ac6d6fc68a | ||
|
|
2c84a383f3 | ||
|
|
6fb5548106 | ||
|
|
84fb683bf3 | ||
|
|
40aee8465b | ||
|
|
d40aa09bcf | ||
|
|
6d1a67fee3 | ||
|
|
621718c3a0 | ||
|
|
a7e1b2bf68 | ||
|
|
7f3db4d7b6 | ||
|
|
8101077371 | ||
|
|
8422a3657a | ||
|
|
76e86817c8 | ||
|
|
95593481a5 | ||
|
|
fcd984aca6 | ||
|
|
07519596b8 | ||
|
|
3b2bfb9177 | ||
|
|
a6bc7c02bf | ||
|
|
387ca14973 | ||
|
|
ead7635a3d | ||
|
|
7ebcce5370 | ||
|
|
00a2dfd728 | ||
|
|
6ed03247ca | ||
|
|
fcafc40be3 | ||
|
|
23df796740 | ||
|
|
309a8bd958 | ||
|
|
2ed67005b9 | ||
|
|
deb523ebd5 | ||
|
|
acc27f0579 | ||
|
|
ef3c837a97 | ||
|
|
4a62ab7ce4 | ||
|
|
7553eef024 | ||
|
|
2279d32b3b | ||
|
|
d3e7393bad | ||
|
|
6cd9fe0b52 | ||
|
|
42657ed95f | ||
|
|
bd6fac074c | ||
|
|
c0294cdd0a | ||
|
|
b0f6a78ebb | ||
|
|
3b4bd648fe | ||
|
|
0060c8a54f | ||
|
|
b1ffcbad79 | ||
|
|
52bda8d117 | ||
|
|
08611c009c | ||
|
|
8081ea83bc | ||
|
|
6c0afc9c6f | ||
|
|
3e16df9092 | ||
|
|
8c4381a44d | ||
|
|
59f2cb94ab | ||
|
|
5b0a192784 | ||
|
|
1aa3dd15b3 | ||
|
|
629117d2f0 | ||
|
|
078f24ad6b | ||
|
|
f4a36410c0 | ||
|
|
4dc2c44c01 | ||
|
|
1186f31337 | ||
|
|
5cc7b88235 | ||
|
|
6bbf6809cf | ||
|
|
28a08526e3 | ||
|
|
7fe90675bd | ||
|
|
0958f591d1 | ||
|
|
33314abde7 | ||
|
|
3a59f6cd0f | ||
|
|
eb71a655e8 | ||
|
|
4bb785eab4 | ||
|
|
19bfae3741 | ||
|
|
afd3dd9860 | ||
|
|
66737f0dc0 | ||
|
|
f374661ad9 | ||
|
|
ea6dbf643a | ||
|
|
24fe52753e | ||
|
|
8665747111 | ||
|
|
fcc75cbd16 | ||
|
|
3974adeacd | ||
|
|
7dc5d53934 | ||
|
|
96a90722f1 | ||
|
|
a4e52bcc96 | ||
|
|
3abeb6cf96 | ||
|
|
057894aaf4 | ||
|
|
c9ae48f466 | ||
|
|
78092e525f | ||
|
|
189b7889a3 | ||
|
|
32e9b4c71c | ||
|
|
6c30f821f7 | ||
|
|
8d99b7380c | ||
|
|
20f7405f0e | ||
|
|
e32da8dbe3 | ||
|
|
dbc2d984b3 | ||
|
|
ad0a9813e4 | ||
|
|
e12d539234 | ||
|
|
87000ee4d6 | ||
|
|
414fabadf6 | ||
|
|
d6bebe1dcf | ||
|
|
66fd9531cc | ||
|
|
045230d189 | ||
|
|
7bd79124b7 | ||
|
|
11d52949a7 | ||
|
|
10fc89fc39 | ||
|
|
2e414db0b1 | ||
|
|
48acc4c7a7 | ||
|
|
a0d039066d | ||
|
|
bd1c5fa9e1 | ||
|
|
61106dec14 | ||
|
|
26238ccfc1 | ||
|
|
3e371d3ffd | ||
|
|
038933f1f1 | ||
|
|
8243b6caed | ||
|
|
813a5db958 | ||
|
|
971e501561 | ||
|
|
a287fbf128 | ||
|
|
d43bfa9d10 | ||
|
|
b4d7a25c74 | ||
|
|
3021c7c0a9 | ||
|
|
4ffcd6390b | ||
|
|
c8a3985f16 | ||
|
|
3274a5d670 | ||
|
|
8037c21a61 | ||
|
|
ee8f6c1c71 | ||
|
|
bce0e8e547 | ||
|
|
cddf398df4 | ||
|
|
bdb8682646 | ||
|
|
54bef2c05f | ||
|
|
d326f2b46c | ||
|
|
06a7a7e65b | ||
|
|
fc0a074a07 | ||
|
|
44a330a4e6 | ||
|
|
ab284efac1 | ||
|
|
9d4fd75ea8 | ||
|
|
4a9b93a131 | ||
|
|
31a48cfe2b | ||
|
|
9df98b1c29 | ||
|
|
d1bc2fb649 | ||
|
|
df774b0304 | ||
|
|
7ac0ba52dd | ||
|
|
b2decc895f | ||
|
|
b12f3fb133 | ||
|
|
fc30f141ec | ||
|
|
277eb35aea | ||
|
|
10bc9402b7 | ||
|
|
16a07e19cc | ||
|
|
479b34faed | ||
|
|
19eed1580e | ||
|
|
d312dffe2c | ||
|
|
c426ef323d | ||
|
|
90677b2b51 | ||
|
|
df9bd38c08 | ||
|
|
be86d659ed | ||
|
|
66a4315ce2 | ||
|
|
b896dd461d | ||
|
|
615aea7678 | ||
|
|
10a9978b04 | ||
|
|
3f3a86eac3 | ||
|
|
43a66fae82 | ||
|
|
ed739e1292 | ||
|
|
ffa70185be | ||
|
|
212c7eed46 | ||
|
|
ce50042407 | ||
|
|
e17e36f9e4 | ||
|
|
0bc570d741 | ||
|
|
7465c74392 | ||
|
|
a8a91109ee | ||
|
|
add60c2552 | ||
|
|
f055e6750a | ||
|
|
4dc8826beb | ||
|
|
d35bbdb257 | ||
|
|
8636c3310d | ||
|
|
eddd9419a4 | ||
|
|
2d08314982 | ||
|
|
28d69b0c60 | ||
|
|
7f76400550 | ||
|
|
f551b348a7 | ||
|
|
b1567f4d8d | ||
|
|
d18c94a587 | ||
|
|
f75c142981 | ||
|
|
0959281a01 | ||
|
|
96a0a512f3 | ||
|
|
9899abfe6a | ||
|
|
d02386488c | ||
|
|
5f25bc480c | ||
|
|
07b5003c6f | ||
|
|
8aba5db862 | ||
|
|
b3ee25079e | ||
|
|
85179fd07b | ||
|
|
390360cc4e | ||
|
|
7edd5b9731 | ||
|
|
c681a50b19 | ||
|
|
8df2391a77 | ||
|
|
0982e56ed0 | ||
|
|
0cb995bb35 | ||
|
|
d34d58bf33 | ||
|
|
c19ff41392 | ||
|
|
abb6e56570 | ||
|
|
a7bba81969 | ||
|
|
6356a75478 | ||
|
|
61ef5f9a02 | ||
|
|
2fbf8926c4 | ||
|
|
ce9e3fcb35 | ||
|
|
ffab6d5ec9 | ||
|
|
be9bcaeb3d | ||
|
|
d140e0418f | ||
|
|
6685cb9e21 | ||
|
|
2f24cff33c | ||
|
|
193a6cce3f | ||
|
|
17951504f0 | ||
|
|
ccffe70359 | ||
|
|
503d6cecd0 | ||
|
|
6fbe06d262 | ||
|
|
2394f3fbe5 | ||
|
|
cb815f3c8e | ||
|
|
e6f6c02f90 | ||
|
|
565e66715f | ||
|
|
549de1355a | ||
|
|
d892ed48cc | ||
|
|
b96204654b | ||
|
|
3c75c2bb60 | ||
|
|
db020576ed | ||
|
|
5a93da3177 | ||
|
|
d16285d239 | ||
|
|
0410d834d1 | ||
|
|
b79abf52fd | ||
|
|
6a61057813 | ||
|
|
1a75d49041 | ||
|
|
c054731794 | ||
|
|
a824bd5da3 | ||
|
|
e1ff31718e | ||
|
|
797b5582ac | ||
|
|
452904398f | ||
|
|
517f95fa01 | ||
|
|
d5ee9cd007 | ||
|
|
5918253022 | ||
|
|
2f30dbf645 | ||
|
|
88deb5fc47 | ||
|
|
27c7e86297 | ||
|
|
051f12c712 | ||
|
|
f9ab83ed80 | ||
|
|
c24bfe82e0 | ||
|
|
4f27de3252 | ||
|
|
bf86d17d56 | ||
|
|
54e23a7c84 | ||
|
|
6049e2df17 | ||
|
|
025af41616 | ||
|
|
d80f93a59d | ||
|
|
5aa4b28d53 | ||
|
|
6a072dd33a | ||
|
|
67995085c6 | ||
|
|
9295a9d8fb | ||
|
|
43cd24927f | ||
|
|
6b41644557 | ||
|
|
dceb58cd79 | ||
|
|
570187fc1f | ||
|
|
ca4663e3a4 | ||
|
|
6e097d5cec | ||
|
|
2c95231fd7 | ||
|
|
0d80156eec | ||
|
|
08c709c2ec | ||
|
|
bb28b2f0fb | ||
|
|
0e4313de52 | ||
|
|
e76e29df24 | ||
|
|
d1062ce0c4 | ||
|
|
9ddf3745b8 | ||
|
|
0eefc7b592 | ||
|
|
bea035025e | ||
|
|
33aa7b72b7 | ||
|
|
ca54d23f92 | ||
|
|
7d6244a322 | ||
|
|
f61a74bbee | ||
|
|
7d258908c6 | ||
|
|
0e53356589 | ||
|
|
aa43dcdb2b | ||
|
|
093c48505a | ||
|
|
c19ef632aa | ||
|
|
bb1455ec71 | ||
|
|
09af43c4a7 | ||
|
|
35594ecb00 | ||
|
|
3044c77309 | ||
|
|
0632044573 | ||
|
|
e6551e9774 | ||
|
|
11d09b2f09 | ||
|
|
8676b846c2 | ||
|
|
d4f98aa7f7 | ||
|
|
35458e846c | ||
|
|
49e9133fed | ||
|
|
5dd76674ff | ||
|
|
8bdd5ff662 | ||
|
|
9e68b36de6 | ||
|
|
e78bfb2e9a | ||
|
|
f5d4ca85d8 | ||
|
|
c65b637bc4 | ||
|
|
062efe349f | ||
|
|
696f46d64b | ||
|
|
42b88d9a32 | ||
|
|
3a840fcc5d | ||
|
|
a333abcaa5 | ||
|
|
d583f6f273 | ||
|
|
a1aeb1d614 | ||
|
|
bd13b78e21 | ||
|
|
4d44be76ac | ||
|
|
8cd758cfb6 | ||
|
|
9a1077d192 | ||
|
|
bc4f174e22 | ||
|
|
046595825c | ||
|
|
e0c5eabdd5 | ||
|
|
06e9d192ef | ||
|
|
906c8fc767 | ||
|
|
6149e00c2f | ||
|
|
b053770998 | ||
|
|
45b380ca00 | ||
|
|
631dad11d6 | ||
|
|
9647c37285 | ||
|
|
9e5f749556 | ||
|
|
c69795c0cd | ||
|
|
339f5537c6 | ||
|
|
d2c5be5bd5 | ||
|
|
21b753f9b5 | ||
|
|
a28a6ea127 | ||
|
|
38da3e9fef | ||
|
|
f1aad2545e | ||
|
|
927599cf00 | ||
|
|
eae3b1dc0f | ||
|
|
d6cc7489b1 | ||
|
|
1b6aaeb663 | ||
|
|
edd709838d | ||
|
|
5e72e6bf1a | ||
|
|
fa03e12b96 | ||
|
|
adb6a1adee | ||
|
|
8ec0cda10b | ||
|
|
41789fa1db | ||
|
|
17f3b1e92d | ||
|
|
aa06e44ff8 | ||
|
|
94295788ec | ||
|
|
5aa620d1ec | ||
|
|
2560d887f0 | ||
|
|
f14388f770 | ||
|
|
7e4cb4c543 | ||
|
|
953efc472f | ||
|
|
5343dd9acf | ||
|
|
29c675b553 | ||
|
|
e328b783f3 | ||
|
|
e183b51702 | ||
|
|
a82239d719 | ||
|
|
12f9c1a159 | ||
|
|
037f8b7183 | ||
|
|
ce69d3069b | ||
|
|
66a8941a23 | ||
|
|
94a770ae7a | ||
|
|
0bbfa8bb8e | ||
|
|
5ad893a266 | ||
|
|
790ac2ec54 | ||
|
|
ceb1c62528 | ||
|
|
e460c18d4a | ||
|
|
182d2d040e | ||
|
|
878908cbf7 | ||
|
|
f703a602f0 | ||
|
|
07d8babab4 | ||
|
|
5e97834b80 | ||
|
|
943dcf1da3 | ||
|
|
4090875fcd | ||
|
|
e69f8fa009 | ||
|
|
d6eb8f436f | ||
|
|
69b3ea4715 | ||
|
|
8f52f51e91 | ||
|
|
a668416dae | ||
|
|
96ad3aaa25 | ||
|
|
4e5c425932 | ||
|
|
549416694f | ||
|
|
9532540b54 | ||
|
|
a6cf7643c9 | ||
|
|
568b3e392b | ||
|
|
40ffa349f0 | ||
|
|
95f4d993b7 | ||
|
|
f303bc7f53 | ||
|
|
d81af63f24 | ||
|
|
722678f6d1 | ||
|
|
c0778809ab | ||
|
|
8679cfefbf | ||
|
|
5064744f8b | ||
|
|
ce15f5665c | ||
|
|
8d973d847d | ||
|
|
fd030e4d77 | ||
|
|
6d12794c96 | ||
|
|
af4ecb5085 | ||
|
|
a5904a6e50 | ||
|
|
361b68d857 | ||
|
|
55d47ede08 | ||
|
|
d97b8d0958 | ||
|
|
2ed446be80 | ||
|
|
178f46e5b1 | ||
|
|
d01dfe4bf7 | ||
|
|
2f8db2531f | ||
|
|
4a719fcb39 | ||
|
|
a96b0b6e4c | ||
|
|
daea3337b0 | ||
|
|
868944bd91 | ||
|
|
caf0070d14 | ||
|
|
c9b28785fb | ||
|
|
af7fb278e8 | ||
|
|
34d22ee418 | ||
|
|
33b4c7c4c3 | ||
|
|
a6f3873059 | ||
|
|
aa60554389 | ||
|
|
6f7e95d419 | ||
|
|
4c7a0cdc3b | ||
|
|
bbfad16712 | ||
|
|
94d47abee6 | ||
|
|
75c94c2cbd | ||
|
|
44c2526da2 | ||
|
|
c05e4b7366 | ||
|
|
77eeba264f | ||
|
|
bbe11f597c | ||
|
|
3950c9e5e6 | ||
|
|
6839976312 | ||
|
|
7fa765911f | ||
|
|
d5acf48161 | ||
|
|
dfc9c5d02b | ||
|
|
d2c80e96f7 | ||
|
|
34a2d5fdc4 | ||
|
|
936144f6a0 | ||
|
|
bacddea809 | ||
|
|
5404cc6377 | ||
|
|
9c28948d5c | ||
|
|
797393727d | ||
|
|
2655dbe939 | ||
|
|
c2de59ca33 | ||
|
|
a5c954a954 | ||
|
|
b6827bb8c2 | ||
|
|
5dde17e421 | ||
|
|
06b5b09b86 | ||
|
|
7b82203fb1 | ||
|
|
e2042b13b0 | ||
|
|
a557d9fa70 | ||
|
|
21d14c5388 | ||
|
|
e605176673 | ||
|
|
4a8a23768f | ||
|
|
11d4fb4dbe | ||
|
|
a948544d4c | ||
|
|
cf7d04332b | ||
|
|
c614ff4a15 | ||
|
|
817f2ba9af | ||
|
|
862bc947f7 | ||
|
|
d38a443053 | ||
|
|
c7284d6662 | ||
|
|
76d8613d3e | ||
|
|
3aee4e9ed8 | ||
|
|
4029821e93 | ||
|
|
5a9b86ff69 | ||
|
|
c7dbe07b33 | ||
|
|
a98eff8901 | ||
|
|
b090b6b9dc | ||
|
|
dd3916672a | ||
|
|
f7512f18f6 | ||
|
|
cfb4a1c4f7 | ||
|
|
4b74ab361a | ||
|
|
977608198e | ||
|
|
7b62ee8715 | ||
|
|
80e07c6cf9 | ||
|
|
043a1eedcf | ||
|
|
d95c9565f3 | ||
|
|
84532f84ac | ||
|
|
d9892f852b | ||
|
|
d6847201e5 | ||
|
|
b6ac96ef72 | ||
|
|
135af39fd4 | ||
|
|
8a2676701b | ||
|
|
060fe1dd9c | ||
|
|
01a7b4eca8 | ||
|
|
ba0b9da09f | ||
|
|
e97fd7da5b | ||
|
|
3477a5540a | ||
|
|
61a0aaa858 | ||
|
|
1b03785a24 | ||
|
|
2c3052eaaa | ||
|
|
490c8f38d8 | ||
|
|
5c5c08ae39 | ||
|
|
1ac9e6ee4c | ||
|
|
1f99cd9e55 | ||
|
|
b977526b93 | ||
|
|
6dacfaffc7 | ||
|
|
fe2772e9db | ||
|
|
55c4bb16e2 | ||
|
|
92091bf628 | ||
|
|
18b30d6baa | ||
|
|
084a2f8806 | ||
|
|
c5acf6580c | ||
|
|
4f4411a46a | ||
|
|
2eaec6970e | ||
|
|
30836e76d2 | ||
|
|
4547b8b735 | ||
|
|
0cefed7108 | ||
|
|
878dc91edb | ||
|
|
249b78c202 | ||
|
|
a4d9ed5418 | ||
|
|
0207449162 | ||
|
|
2e7b1b4066 | ||
|
|
7ef94c82f4 | ||
|
|
4f1d46cb59 | ||
|
|
a1473d6dda | ||
|
|
0efdd479d6 | ||
|
|
c2e28b21cf | ||
|
|
7d5bcb8dbf | ||
|
|
c0d86c2766 | ||
|
|
dcf867e4c5 | ||
|
|
5dc01f762f | ||
|
|
11cfc66cef | ||
|
|
f5ed122430 | ||
|
|
612710f37c | ||
|
|
ca69a24729 | ||
|
|
45c75a81e6 | ||
|
|
e04729a381 | ||
|
|
7ba5cc51e3 | ||
|
|
c65597b35d | ||
|
|
6c4023289e | ||
|
|
ee2acc81ff | ||
|
|
3aa3f7f08d | ||
|
|
a6e05e0419 | ||
|
|
7e2a14e496 | ||
|
|
30cc0cc1a4 | ||
|
|
cf436e45a4 | ||
|
|
3b2b27a883 | ||
|
|
691dc6a24c | ||
|
|
75d0d2d588 | ||
|
|
bc29c12b4f | ||
|
|
ceb966ad63 | ||
|
|
44770b3fd7 | ||
|
|
98d0f05a31 | ||
|
|
f3014f5291 | ||
|
|
3a413b53be | ||
|
|
6ce8883c37 | ||
|
|
ffbf24534f | ||
|
|
28cc7eaa90 | ||
|
|
5189e6d3d1 | ||
|
|
d24a5bdd83 | ||
|
|
192ddd248b | ||
|
|
7c4b66b1b5 | ||
|
|
cbe76f656f | ||
|
|
3359ab24af | ||
|
|
5b938f2c3e | ||
|
|
9f6b4fbdf2 | ||
|
|
55b852f8ee | ||
|
|
efede57931 | ||
|
|
2859c46459 | ||
|
|
c0fb51f6a5 | ||
|
|
c1208989a2 | ||
|
|
46061a01c1 | ||
|
|
a3dec53275 | ||
|
|
ef202e75b9 | ||
|
|
1d188875a9 | ||
|
|
09d4605635 | ||
|
|
d1de26ba0c | ||
|
|
eb9b3130ee | ||
|
|
9850908ef0 | ||
|
|
f23136542e | ||
|
|
f6ac9c454c | ||
|
|
0c05102fe7 | ||
|
|
75af80c126 | ||
|
|
2231d1562c | ||
|
|
7d16cd2a0c | ||
|
|
e29e4bf311 | ||
|
|
f91bc2a505 | ||
|
|
ea1334ef6a | ||
|
|
bae4016b3a | ||
|
|
56ffb1f932 | ||
|
|
3b14958515 | ||
|
|
59af40fc30 | ||
|
|
9afd23ab60 | ||
|
|
ca893a0e77 | ||
|
|
20c3ad2fea | ||
|
|
6f76aec1e0 | ||
|
|
57aa05f547 | ||
|
|
a6b90445cd | ||
|
|
91d29cbbbe | ||
|
|
33a2271b1a | ||
|
|
2a3c75976f | ||
|
|
d8594e7662 | ||
|
|
7605032eec | ||
|
|
7ce815cddb | ||
|
|
4c055c663b | ||
|
|
6a4267abd5 | ||
|
|
bea39343c8 | ||
|
|
694115e499 | ||
|
|
dc84876d27 | ||
|
|
07628da64d | ||
|
|
aa970a0afb | ||
|
|
effb212e4b | ||
|
|
f687cacbee | ||
|
|
a26dbab28b | ||
|
|
84e65f7165 | ||
|
|
dd0ffe3d2c | ||
|
|
bb36ec8664 | ||
|
|
2f51df3435 | ||
|
|
3846cf3269 | ||
|
|
a66ac82a23 | ||
|
|
eb85fc9e5b | ||
|
|
8d2571cba2 | ||
|
|
93aeae63b7 | ||
|
|
7602599738 | ||
|
|
153c0139cd | ||
|
|
a6faebb04c | ||
|
|
1e156739da | ||
|
|
c5e5bb714b | ||
|
|
6c4989d8a0 | ||
|
|
4d0a6accc6 | ||
|
|
ecc6200aaf | ||
|
|
3b232d3bcc | ||
|
|
f258d8086c | ||
|
|
c9ac9d85e2 | ||
|
|
fec92b399a | ||
|
|
9323a93a8d | ||
|
|
f75833e5a9 | ||
|
|
6307cfb9d7 | ||
|
|
651d56ad95 | ||
|
|
055b8eff54 | ||
|
|
c59e7ea2a5 | ||
|
|
1bfea8b493 | ||
|
|
c9d5347658 | ||
|
|
58eb08e22a | ||
|
|
52bae5cbe5 | ||
|
|
f2585d1124 | ||
|
|
635aeb3409 | ||
|
|
e6ec50a4e6 | ||
|
|
3bc5c60907 | ||
|
|
a698cb0484 | ||
|
|
6441c4b52d | ||
|
|
ff078485f2 | ||
|
|
e925568e3d | ||
|
|
db6c8769d4 | ||
|
|
3c9f59b055 | ||
|
|
0a15986619 | ||
|
|
696eefad1a | ||
|
|
708cc26c1d | ||
|
|
da1f99d846 | ||
|
|
4f814408c7 | ||
|
|
87ce1db3bd | ||
|
|
71e6bf13ff | ||
|
|
24188ab1de | ||
|
|
e6f8b2c502 | ||
|
|
e9139748a0 | ||
|
|
3cfd34a897 | ||
|
|
404000e5fe | ||
|
|
5441ef429e | ||
|
|
1110e65e4a | ||
|
|
9ac5d58b89 | ||
|
|
0810c2b1e0 | ||
|
|
68f0c368c0 | ||
|
|
64c69ee009 | ||
|
|
e2df12e2a2 | ||
|
|
0f31de33e8 | ||
|
|
d37948f44b | ||
|
|
6e2e2e2060 | ||
|
|
439cc45ca7 | ||
|
|
816c61944e | ||
|
|
5ba15ef350 | ||
|
|
30136c4e97 | ||
|
|
1a4d7471f5 | ||
|
|
1d3c2144c4 | ||
|
|
fdf35328ac | ||
|
|
c147d30cb5 | ||
|
|
80a74934f0 | ||
|
|
a36cc6838b | ||
|
|
073db37cfd | ||
|
|
b7b8e56722 | ||
|
|
8a11183905 | ||
|
|
c045ccabe4 | ||
|
|
c3cb2cc28b | ||
|
|
990d32cfa2 | ||
|
|
1573e06e71 | ||
|
|
6bb05106cd | ||
|
|
c1d7e0401f | ||
|
|
604540266a | ||
|
|
4954d1c807 | ||
|
|
45b828e361 | ||
|
|
96e2991650 | ||
|
|
54b1f4219d | ||
|
|
3a0ffa53e2 | ||
|
|
7381bd11a0 | ||
|
|
19bd150e4b | ||
|
|
e65b023fa7 | ||
|
|
69badf67fc | ||
|
|
68177d31b3 | ||
|
|
808a4c5d72 | ||
|
|
8e668d2e09 | ||
|
|
868f334471 | ||
|
|
3f37c347f9 | ||
|
|
271e6a56da | ||
|
|
0988e8184a | ||
|
|
62e5e38926 | ||
|
|
dce865356c | ||
|
|
7f398a7d7f | ||
|
|
56c364f0a3 | ||
|
|
0b9b6a623e | ||
|
|
ea5788f173 | ||
|
|
4a58b9e944 | ||
|
|
18b857363f | ||
|
|
f02c0e0b9c | ||
|
|
6fc6c67e44 | ||
|
|
2c36563e50 | ||
|
|
c9a680b4b7 | ||
|
|
b8543eb2bd | ||
|
|
b17794f622 | ||
|
|
63e76628cf | ||
|
|
2567c73dba | ||
|
|
9c81b866d5 | ||
|
|
ed7a7d4275 | ||
|
|
bc9bcee064 | ||
|
|
96a73b0c9e | ||
|
|
004f550e93 | ||
|
|
2ef9403516 | ||
|
|
7ac88f91dc | ||
|
|
3d0080a9ca | ||
|
|
2c39028b8b | ||
|
|
06cab14693 | ||
|
|
4dd8f8cf84 | ||
|
|
2be067040e | ||
|
|
ccb20640fe | ||
|
|
9d7f079d94 | ||
|
|
91a2b49f4c | ||
|
|
6d11e8f57a | ||
|
|
1ca0ac6278 | ||
|
|
4cd352599a | ||
|
|
4798361d87 | ||
|
|
08b97d0a4e | ||
|
|
a0d9b94488 | ||
|
|
7272b9904a | ||
|
|
30833100e5 | ||
|
|
7974c90042 | ||
|
|
f4c4e18bf7 | ||
|
|
ca75eb63c6 | ||
|
|
27458599e8 | ||
|
|
1d90f2acad | ||
|
|
60becaf4c2 | ||
|
|
73af14069d | ||
|
|
dc4902a800 | ||
|
|
ccb440c759 | ||
|
|
f3633b18e7 | ||
|
|
2b43bd7d28 | ||
|
|
1beeda6b32 | ||
|
|
ed70002f43 | ||
|
|
83e1ded008 | ||
|
|
015d0c6edd | ||
|
|
e17a1a1378 | ||
|
|
8fc3af7bb9 | ||
|
|
3df9d480a4 | ||
|
|
127b45a5b1 | ||
|
|
e7d0856831 | ||
|
|
fb44d32ba3 | ||
|
|
736c014d51 | ||
|
|
3f30693b74 | ||
|
|
4a06e6266e | ||
|
|
0d1ad21a1b | ||
|
|
8e8a63acb9 | ||
|
|
edbec3f49d | ||
|
|
f2eb225f06 | ||
|
|
d0ec1ca68d | ||
|
|
51e6087888 | ||
|
|
50fcd8d34d | ||
|
|
37f27fc29a | ||
|
|
690ce521ca | ||
|
|
7cbed96945 | ||
|
|
baa36c97fb | ||
|
|
6bbd1bf288 | ||
|
|
12ecd23ceb | ||
|
|
b9078a28d4 | ||
|
|
8e3c62db83 | ||
|
|
9492ff9444 | ||
|
|
b0177deda0 | ||
|
|
89592d3e80 | ||
|
|
0a6fc27fdd | ||
|
|
a7ca236903 | ||
|
|
b716e5c23d | ||
|
|
063066dfae | ||
|
|
5bdb34e451 | ||
|
|
f4d0609140 | ||
|
|
cb62c10a66 | ||
|
|
05cc170ab1 | ||
|
|
4540256f3e | ||
|
|
3d33ebc916 | ||
|
|
decc0b8ee8 | ||
|
|
a488de22c4 | ||
|
|
f835aec980 | ||
|
|
5893b68daf | ||
|
|
660c72e608 | ||
|
|
01cf6de4dc | ||
|
|
fa460223b7 | ||
|
|
39aeef5486 | ||
|
|
4006d72831 | ||
|
|
93aa28cdf7 | ||
|
|
8e8278d05e | ||
|
|
3d9d658594 | ||
|
|
9ae1bc3051 | ||
|
|
a9384d3a09 | ||
|
|
9bbce6b06a | ||
|
|
b96ab5eb0e | ||
|
|
5b91d97e48 | ||
|
|
9de3e975eb | ||
|
|
1b7cc3731c | ||
|
|
e7fdbee59d | ||
|
|
1e12f70cf4 | ||
|
|
0ef04e2839 | ||
|
|
24ebd8dc53 | ||
|
|
4af56bd101 | ||
|
|
5faf41a18c | ||
|
|
485f0e3278 | ||
|
|
21150ad4ca | ||
|
|
059da21280 | ||
|
|
24e7ee51ba | ||
|
|
584cbea017 | ||
|
|
1d210c774a | ||
|
|
289aa8561f | ||
|
|
d765f6edb6 | ||
|
|
5f5b95b455 | ||
|
|
e57d9f4701 | ||
|
|
b26284933c | ||
|
|
825157a549 | ||
|
|
961144c3b8 | ||
|
|
0abfe19c6a | ||
|
|
3c1a756ca3 | ||
|
|
7f2328d0a5 | ||
|
|
457b8d9d8a | ||
|
|
773e5e6393 | ||
|
|
dfd2d9ecec | ||
|
|
a1fdaa998b | ||
|
|
7955a83f1d | ||
|
|
3af1176e70 | ||
|
|
ab77f00526 | ||
|
|
835d417d8d | ||
|
|
895d743ab6 | ||
|
|
68404b8dd3 | ||
|
|
5b19efdb73 | ||
|
|
86fc099873 | ||
|
|
819b109dde | ||
|
|
334289b81c | ||
|
|
e64832867e | ||
|
|
c3ca2e2ec1 | ||
|
|
1115f2a702 | ||
|
|
0b0762f10c | ||
|
|
f423e0c030 | ||
|
|
8da40077fa | ||
|
|
dbf7c90ebc | ||
|
|
ff0f5a0dfd | ||
|
|
b702299067 | ||
|
|
a751c03fca | ||
|
|
1c926830a8 | ||
|
|
dc8e8b70c5 | ||
|
|
315e77b7dd | ||
|
|
c510b35b16 | ||
|
|
2c2c626c42 | ||
|
|
fa7eaaebcd | ||
|
|
4ed9e01091 | ||
|
|
40a83f3579 | ||
|
|
af90928552 | ||
|
|
bf6687352a | ||
|
|
dce64cfdb3 | ||
|
|
a26195848a | ||
|
|
43bf4b1cc8 | ||
|
|
9420d2683e | ||
|
|
c67e9e3ff5 | ||
|
|
3e7e06d4b4 | ||
|
|
539cbf4ffc | ||
|
|
30003297d4 | ||
|
|
f9e416a5dd | ||
|
|
727674673e | ||
|
|
b57f78155c | ||
|
|
e9b05ad2fd | ||
|
|
ea7b09d18e | ||
|
|
30dc3d779c | ||
|
|
0d638cbe4a | ||
|
|
92820872a2 | ||
|
|
590b7d66b6 | ||
|
|
dfef594f2e | ||
|
|
4dad07e329 | ||
|
|
90fbb3d94e | ||
|
|
3079917527 | ||
|
|
e84e866220 | ||
|
|
dd4db4be28 | ||
|
|
3f609981b7 | ||
|
|
6eca14e441 | ||
|
|
54ade336f5 | ||
|
|
627dc26004 | ||
|
|
1bb7cc0ad6 | ||
|
|
18b4c3eff8 | ||
|
|
43bf051d51 | ||
|
|
bbcbb3edc6 | ||
|
|
8bb9a1a53e | ||
|
|
6a7d2291b4 | ||
|
|
900d558857 | ||
|
|
c6dc9affed | ||
|
|
96486b5c58 | ||
|
|
7c1565017f | ||
|
|
7197370ad4 | ||
|
|
1cbf09cbbe | ||
|
|
28b4450fa9 | ||
|
|
a799303f53 | ||
|
|
59d6eb662c | ||
|
|
4e4a3e13ab | ||
|
|
095d07bcb8 | ||
|
|
71a235c79b | ||
|
|
2bc3885977 | ||
|
|
97217f56c1 | ||
|
|
ba36f7395d | ||
|
|
ea7ca9e632 | ||
|
|
5e5fc736bf | ||
|
|
f38e76ad10 | ||
|
|
80a6f357e3 | ||
|
|
bd91288d1a | ||
|
|
38389a28ed | ||
|
|
9ef9f29213 | ||
|
|
a3c2082b7f | ||
|
|
bc5516e941 | ||
|
|
87c705e5c8 | ||
|
|
65ac8c715e | ||
|
|
9874361466 | ||
|
|
b28c8fa227 | ||
|
|
048bd53eac | ||
|
|
95c707d028 | ||
|
|
41ec4c857b | ||
|
|
e62acb1d99 | ||
|
|
a9dc00aaa6 | ||
|
|
38c6152aa0 | ||
|
|
fb723328d4 | ||
|
|
047475562d | ||
|
|
acd33ec852 | ||
|
|
340a23e71c | ||
|
|
3db1b7f265 | ||
|
|
845357fa02 | ||
|
|
825fff5fe1 | ||
|
|
abda68380e | ||
|
|
886a5eff43 | ||
|
|
c3e19858b5 | ||
|
|
b9d9bcc0be | ||
|
|
f75e31fa8e | ||
|
|
38be723179 | ||
|
|
18bf44453d | ||
|
|
374f11252f | ||
|
|
45a6651aaf | ||
|
|
2d3566abce | ||
|
|
17d6bfff63 | ||
|
|
73540175d8 | ||
|
|
4b9e4593c8 | ||
|
|
8c693efb3e | ||
|
|
51392d0398 | ||
|
|
78888c2082 | ||
|
|
bc6bd1b316 | ||
|
|
4060344a72 | ||
|
|
6522325060 | ||
|
|
ae6564e912 | ||
|
|
2af70a6c2d | ||
|
|
45aad4bdbc | ||
|
|
a3a1dcf4ba | ||
|
|
eb979ef130 | ||
|
|
7f7fdbba54 | ||
|
|
fa213d72a7 | ||
|
|
d2bf935edb | ||
|
|
c4349f5c64 | ||
|
|
b5a6f4a166 | ||
|
|
79807dfa14 | ||
|
|
0b0ec90987 | ||
|
|
a9fc220ec8 | ||
|
|
ee9bbbaa7c | ||
|
|
12cc4e5ff9 | ||
|
|
b5b5643090 | ||
|
|
6718081a49 | ||
|
|
138087861c | ||
|
|
9a88cf1743 | ||
|
|
2ca93599ef | ||
|
|
ef85a06d60 | ||
|
|
f7ffc75ba4 | ||
|
|
f28eda4174 | ||
|
|
c5458af1a0 | ||
|
|
c28ced14c6 | ||
|
|
1110e17c4a | ||
|
|
3b9c31a056 | ||
|
|
38b655ce3a | ||
|
|
0ec9b73eb2 | ||
|
|
b67369daa4 | ||
|
|
cbc7eee592 | ||
|
|
d512cef5af | ||
|
|
c6d1fc103c | ||
|
|
bf5b31b252 | ||
|
|
0c404fa602 | ||
|
|
0ebb6ada3c | ||
|
|
d2e519cc3b | ||
|
|
be232543d6 | ||
|
|
9076715d84 | ||
|
|
9b38f1e81c | ||
|
|
f03c173c57 | ||
|
|
f89842801f | ||
|
|
56d4ad74a8 | ||
|
|
334e95afa0 | ||
|
|
0443d84848 | ||
|
|
d38f251688 | ||
|
|
890243eb20 | ||
|
|
9fed3266e6 | ||
|
|
8fb665be08 | ||
|
|
c19253648e | ||
|
|
b8d2df7567 | ||
|
|
4603152930 | ||
|
|
e33e90a69d | ||
|
|
f5dcb5d58d | ||
|
|
f2f6abe775 | ||
|
|
c33189a355 | ||
|
|
781d997e76 | ||
|
|
35e02d8043 | ||
|
|
720af7dabf | ||
|
|
487a8c798c | ||
|
|
0f580f4540 | ||
|
|
cb21024e5c | ||
|
|
df7b970ff7 | ||
|
|
ff4edb4fbd | ||
|
|
131c9ef036 | ||
|
|
a3071a3ba1 | ||
|
|
8d5ce85954 | ||
|
|
9d3ae2c34a | ||
|
|
6d2337b332 | ||
|
|
1ef2238d65 | ||
|
|
521d05279b | ||
|
|
01e85f218a | ||
|
|
8af028bc90 | ||
|
|
85da5fced1 | ||
|
|
038d3b1004 | ||
|
|
6cf2b94a10 | ||
|
|
c930c44e3a | ||
|
|
0753332ef8 | ||
|
|
ed9e409e17 | ||
|
|
c40fffa107 | ||
|
|
d597665a86 | ||
|
|
b0bec26138 | ||
|
|
0d44466967 | ||
|
|
f4cb62782a | ||
|
|
3cadd6731c | ||
|
|
fc18b84f69 | ||
|
|
f7fc679427 | ||
|
|
e674b715ef | ||
|
|
029f6335ed | ||
|
|
fb4153add7 | ||
|
|
ada8a1255b | ||
|
|
505f338da9 | ||
|
|
18d9b2eec9 | ||
|
|
41a03352b9 | ||
|
|
50f817e265 | ||
|
|
04ddb289ee | ||
|
|
0152250e14 | ||
|
|
f574cdd179 | ||
|
|
458f213ea7 | ||
|
|
f2caae6eb1 | ||
|
|
c01cd89de9 | ||
|
|
5ea3ed7308 | ||
|
|
50eb9a86c9 | ||
|
|
12cbfc5d12 | ||
|
|
ba7ed5c6f0 | ||
|
|
4fbfa682fe | ||
|
|
fb1139a2ea | ||
|
|
8d8ec1a5f8 | ||
|
|
7582b3174d | ||
|
|
154b554ecd | ||
|
|
316e014cfa | ||
|
|
048d8fcb5b | ||
|
|
8bbb1cdfd4 | ||
|
|
94175b8a52 | ||
|
|
c350b43a5a | ||
|
|
b379c13e8b | ||
|
|
7d91e9d173 | ||
|
|
1b15ea8af9 | ||
|
|
e76efc9cdf | ||
|
|
0a311bf63f | ||
|
|
5069edb9b1 | ||
|
|
90162b6331 | ||
|
|
398812a14f | ||
|
|
2e44872b49 | ||
|
|
e02fdb3e37 | ||
|
|
234edd339c | ||
|
|
e5cbdf3036 | ||
|
|
9b85890204 | ||
|
|
6295e88d43 | ||
|
|
7796a57d43 | ||
|
|
df7fd13bfd | ||
|
|
6a5a843478 | ||
|
|
7d4fb280ba | ||
|
|
2a22b98c77 | ||
|
|
6b56e4a3e3 | ||
|
|
47fc6612bf | ||
|
|
f3e5c22c07 | ||
|
|
b42d2c5784 | ||
|
|
478a86a892 | ||
|
|
9e0205d148 | ||
|
|
59b7961bcd | ||
|
|
5b54a777d9 | ||
|
|
3af9b333a8 | ||
|
|
dcaecdbe16 | ||
|
|
3aa7d86699 | ||
|
|
feab2a7e7b | ||
|
|
d18220c1af | ||
|
|
8074a91b29 | ||
|
|
72560d985f | ||
|
|
ff2c8524de | ||
|
|
1bdea11fe3 | ||
|
|
a7bed64707 | ||
|
|
dc969fe0b5 | ||
|
|
588c868060 | ||
|
|
89de5f2a18 | ||
|
|
fe32877864 | ||
|
|
e739f90405 | ||
|
|
a07135c638 | ||
|
|
6b531ac568 | ||
|
|
5bce695fcc | ||
|
|
ba910280a1 | ||
|
|
2f386781d7 | ||
|
|
4c70349ee1 | ||
|
|
74b9c51dea | ||
|
|
d95c22fa24 | ||
|
|
3a7611309c | ||
|
|
5281d6c281 | ||
|
|
5bc1e71143 | ||
|
|
31ebfb80d7 | ||
|
|
1f8ed8a6c2 | ||
|
|
3d10718650 | ||
|
|
4a4ee49187 | ||
|
|
7bf7b00633 | ||
|
|
68e3fe65ba | ||
|
|
7fe096fba8 | ||
|
|
f80951457d | ||
|
|
1da165edc1 | ||
|
|
61c7c556b6 | ||
|
|
6170c48ed2 | ||
|
|
974f69aecf | ||
|
|
1a8078ab03 | ||
|
|
1bc8d586c3 | ||
|
|
a795f1463b | ||
|
|
aae77a8b25 | ||
|
|
c278209883 | ||
|
|
7f8ef2a050 | ||
|
|
d21e11ba33 | ||
|
|
1fc990f11a | ||
|
|
a09a767641 | ||
|
|
12ef64f10d | ||
|
|
776e52a77c | ||
|
|
6d8880c10d | ||
|
|
5d5af369e6 | ||
|
|
1d7fef4f7d | ||
|
|
35cb0bc805 | ||
|
|
5310385f15 | ||
|
|
41c791ff42 | ||
|
|
9b3f910326 | ||
|
|
aacc4b7b46 | ||
|
|
605a70d554 | ||
|
|
73466dc0e0 | ||
|
|
3fd90c6289 | ||
|
|
97624a3e2c | ||
|
|
d69c9409dd | ||
|
|
5bb5f46c02 | ||
|
|
2b6fe22b3f | ||
|
|
53f0716aca | ||
|
|
fd798ddcf5 | ||
|
|
812177a4e0 | ||
|
|
b9e08897ac | ||
|
|
e445fa436e | ||
|
|
797a0a30ca | ||
|
|
dfd16f3d7a | ||
|
|
a80aae0ec7 | ||
|
|
c8ad866a53 | ||
|
|
fe2f08cfd6 | ||
|
|
f64769cc80 | ||
|
|
831dfe6c8d | ||
|
|
3b4da81ec6 | ||
|
|
248c540543 | ||
|
|
0fb0ba6473 | ||
|
|
019a09945e | ||
|
|
520a5f8fa4 | ||
|
|
f840681377 | ||
|
|
300421792c | ||
|
|
0ab25c317c | ||
|
|
c8adf322a9 | ||
|
|
fae1e7152a | ||
|
|
e543e0c466 | ||
|
|
d61002a544 | ||
|
|
92f93f8ff6 | ||
|
|
bf17bdc32d | ||
|
|
70292c888c | ||
|
|
69cb5b72e1 | ||
|
|
470d2ad359 | ||
|
|
e85fa2a42c | ||
|
|
42116abcb3 | ||
|
|
2e0b930192 | ||
|
|
24ba110965 | ||
|
|
e1eeb67025 | ||
|
|
71c9cbd5a4 | ||
|
|
e1ac5bb038 | ||
|
|
c2e84c92c6 | ||
|
|
090962d09c | ||
|
|
df945a12b0 | ||
|
|
3f99f0c6d5 | ||
|
|
4706bebde0 | ||
|
|
85f729260b | ||
|
|
8bf2c15db8 | ||
|
|
9ea4784f87 | ||
|
|
8be9613640 | ||
|
|
b611c98112 | ||
|
|
ad3dbad8ac | ||
|
|
62c8bd3531 | ||
|
|
c8d66b3335 | ||
|
|
0217d419d1 | ||
|
|
45f448e0d1 | ||
|
|
ee4b05eb98 | ||
|
|
202c53c7d7 | ||
|
|
9816403c45 | ||
|
|
b6a1178499 | ||
|
|
2fe6110e0f | ||
|
|
c4e18bb481 | ||
|
|
add8f0eeeb | ||
|
|
694d971df9 | ||
|
|
36c93ce212 | ||
|
|
35fe1f23e3 | ||
|
|
2517abb27f | ||
|
|
1d749a83e1 | ||
|
|
fc50a7b9bb | ||
|
|
6f72d456d2 | ||
|
|
1182f8c6b0 | ||
|
|
f090f947b7 | ||
|
|
a8246471f4 | ||
|
|
229c33939c | ||
|
|
ef2eaf1fa9 | ||
|
|
d30f4f155a | ||
|
|
b2e5df6af2 | ||
|
|
0470cd6592 | ||
|
|
a517dad456 | ||
|
|
789ef1614d | ||
|
|
3dfab5009c | ||
|
|
7d5d7c4a6b | ||
|
|
5056d2fa90 | ||
|
|
1fad874dee | ||
|
|
a2c79367de | ||
|
|
bcf129e646 | ||
|
|
94077ccafd | ||
|
|
411ef7bd00 | ||
|
|
6b22c2c541 | ||
|
|
e385a147f6 | ||
|
|
ad69a6be3f | ||
|
|
a6c45da2ca | ||
|
|
d5c4d9336f | ||
|
|
c1f8e2a4e0 | ||
|
|
fe42195b5a | ||
|
|
6a0bb82f3c | ||
|
|
69825e001f | ||
|
|
ad8571f2e3 | ||
|
|
fbd3b92ba0 | ||
|
|
4f6c433f1b | ||
|
|
412f469035 | ||
|
|
eee38557d1 | ||
|
|
23cb92cf6d | ||
|
|
108137bd7e | ||
|
|
6bc53c3638 | ||
|
|
e54fff402e | ||
|
|
8d125354d2 | ||
|
|
fc96e14a8f | ||
|
|
178dfa59c1 | ||
|
|
8719de7120 | ||
|
|
af8bdf4fd1 | ||
|
|
764e347b74 | ||
|
|
2f1b1a69bd | ||
|
|
b2fea428dd | ||
|
|
1f1d7996ec | ||
|
|
47dc9a136f | ||
|
|
6ed86d9ce5 | ||
|
|
8e760705a6 | ||
|
|
9c606b9660 | ||
|
|
f65b3223f4 | ||
|
|
e85e962466 | ||
|
|
a7df809c4d | ||
|
|
beb29c66c2 | ||
|
|
749171b186 | ||
|
|
40a8187b1e | ||
|
|
6b7234c910 | ||
|
|
3807510bfe | ||
|
|
3650617928 | ||
|
|
d60843fa5b | ||
|
|
5a5917a04a | ||
|
|
ae642fddf7 | ||
|
|
b4a8fb76de | ||
|
|
b885ccb09c | ||
|
|
b70c329307 | ||
|
|
1aa54543ed | ||
|
|
e050c085df | ||
|
|
62962d28ca | ||
|
|
d7c502eb50 | ||
|
|
dd7841dc15 | ||
|
|
14c751b39e | ||
|
|
f4297ff3b0 | ||
|
|
79ffbbbe4b | ||
|
|
4c1cb037a0 | ||
|
|
f679dc7562 | ||
|
|
76470b9f09 | ||
|
|
3edec570f1 | ||
|
|
a2e07b46f2 | ||
|
|
326a80895c | ||
|
|
d200cc7405 | ||
|
|
c4dff40e1d | ||
|
|
21636c4d65 | ||
|
|
52084c322f | ||
|
|
5fd2dadef4 | ||
|
|
f312e89323 | ||
|
|
0046cfa3ee | ||
|
|
4ecc8da398 | ||
|
|
382431e34b | ||
|
|
6023dc5f3d | ||
|
|
2d38b38a7d | ||
|
|
3513d84bb8 | ||
|
|
24cd55f5cc | ||
|
|
0bce6996bf | ||
|
|
6edfdfba63 | ||
|
|
ddbbe1267a | ||
|
|
7fada5d5f7 | ||
|
|
c3f5a37e21 | ||
|
|
a76c87b3ae | ||
|
|
4a0612328e | ||
|
|
931c322ad7 | ||
|
|
58c61641d3 | ||
|
|
b675cd19d7 | ||
|
|
17b9f976c8 | ||
|
|
248808e165 | ||
|
|
7c6327be57 | ||
|
|
a86ece66b5 | ||
|
|
fd9461ef20 | ||
|
|
f121c609ad | ||
|
|
24f3e071e3 | ||
|
|
914977f279 | ||
|
|
97b92d8887 | ||
|
|
c1981b17a4 | ||
|
|
ea7c6c2be3 | ||
|
|
22e3a4d8f2 | ||
|
|
75ebbe148b | ||
|
|
75f90c190b | ||
|
|
8aa053ce21 | ||
|
|
23ba8b4aa1 | ||
|
|
6dde3170ab | ||
|
|
b9144a9d7a | ||
|
|
a1a0d766fe | ||
|
|
48322856d9 | ||
|
|
b9f8b6cdbf | ||
|
|
805ea3cb46 | ||
|
|
79187cd29a | ||
|
|
ccaf78767b | ||
|
|
94a14f93a8 | ||
|
|
5ba6af6ad4 | ||
|
|
25760494d7 | ||
|
|
a1fbd511a9 | ||
|
|
1b756de479 | ||
|
|
a9e53a6c29 | ||
|
|
111fbfd483 | ||
|
|
437778a8be | ||
|
|
1c955a570d | ||
|
|
469b041a2f | ||
|
|
7a47d6741d | ||
|
|
214a231371 | ||
|
|
eb3e30f70f | ||
|
|
7324f1f4c7 | ||
|
|
93df24de39 | ||
|
|
9f21807647 | ||
|
|
9b59394768 | ||
|
|
ac1b0a46f9 | ||
|
|
5d7795ca47 | ||
|
|
519fb49f6a | ||
|
|
f504b682f3 | ||
|
|
f0719f5ea4 | ||
|
|
f852f935c5 | ||
|
|
939aae086f | ||
|
|
742e38b08d | ||
|
|
3c7c93fc9f | ||
|
|
53ffff9759 | ||
|
|
2e7fafc4d8 | ||
|
|
ccf9cbd2c8 | ||
|
|
730b7c8cad | ||
|
|
c66b09effe | ||
|
|
a087fe4bcd | ||
|
|
ac557fd5b5 | ||
|
|
1f4946cc04 | ||
|
|
08505a2208 | ||
|
|
e1c186bbf8 | ||
|
|
91396f0c52 | ||
|
|
c83d354eed | ||
|
|
81063731c9 | ||
|
|
f66fe5ff80 | ||
|
|
8425698583 | ||
|
|
8b08b1a563 | ||
|
|
15b228b754 | ||
|
|
1db4157b29 | ||
|
|
079530cf63 | ||
|
|
d2370a94c7 | ||
|
|
9f3fd021ab | ||
|
|
903463972b | ||
|
|
2707e24f30 | ||
|
|
3df826692c | ||
|
|
1142a441fc | ||
|
|
53268989c5 | ||
|
|
83ed9fdc51 | ||
|
|
0dc98e87a6 | ||
|
|
0cf4db1137 | ||
|
|
4e27069d07 | ||
|
|
3fcd07bc1c | ||
|
|
3414ff7331 | ||
|
|
04cd798c48 | ||
|
|
50dcf23b1a | ||
|
|
1bb4d6d534 | ||
|
|
66a5e394de | ||
|
|
c4ab0916cc | ||
|
|
9dedaa31c5 | ||
|
|
de77ebd961 | ||
|
|
73cb6925d3 | ||
|
|
aaf0da4b70 | ||
|
|
c99bd03d99 | ||
|
|
7fbb1b9229 | ||
|
|
ba54d68513 | ||
|
|
f73cbf3b51 | ||
|
|
3f047348e2 | ||
|
|
10fe3c5373 | ||
|
|
9c8755c9ae | ||
|
|
e8908d04bb | ||
|
|
7bdc42ff05 | ||
|
|
293f9dcaf6 | ||
|
|
ce31b13ff6 | ||
|
|
a033dc4569 | ||
|
|
6ff338964b | ||
|
|
97a7701879 | ||
|
|
7558b391a9 | ||
|
|
b6bed112ee | ||
|
|
9417dcb2c2 | ||
|
|
5f106a1eee | ||
|
|
cda05c73c7 | ||
|
|
95398697cb | ||
|
|
dc019cc37a | ||
|
|
5306814237 | ||
|
|
72cb5babe6 | ||
|
|
ebc2e12621 | ||
|
|
f011d3060a | ||
|
|
8c5f71a0a1 | ||
|
|
da00e74491 | ||
|
|
b56ff1357e | ||
|
|
ecd4d659a8 | ||
|
|
fec5565396 | ||
|
|
6ec5ea5c28 | ||
|
|
3f8e32cc1f | ||
|
|
be6426014d | ||
|
|
8b4643d6ac | ||
|
|
d8a0885953 | ||
|
|
83e6b6f50c | ||
|
|
928bd83967 | ||
|
|
230fe15cde | ||
|
|
72ad16a8b3 | ||
|
|
23cc632d5a | ||
|
|
1cf2bb1bb2 | ||
|
|
7939e04e74 | ||
|
|
181031957f | ||
|
|
cfa9a45fc8 | ||
|
|
f77da51a7d | ||
|
|
9bb87e711a | ||
|
|
255a01f786 | ||
|
|
69c26f2c0d | ||
|
|
3650e21458 | ||
|
|
8eefd0e9c4 | ||
|
|
c72a097808 | ||
|
|
2ffda6f5c5 | ||
|
|
ce8ffae152 | ||
|
|
b54dd27959 | ||
|
|
3e807e5b41 | ||
|
|
20f1a60f90 | ||
|
|
9d2619b856 | ||
|
|
a2c7f6df7a | ||
|
|
15a87db5d5 | ||
|
|
2f86466309 | ||
|
|
ebaf012701 | ||
|
|
bccfef533e | ||
|
|
ef020e88e7 | ||
|
|
222a6069cb | ||
|
|
6b6df84bce | ||
|
|
8c481cd7a7 | ||
|
|
fcfd204ec6 | ||
|
|
57e6c5f05e | ||
|
|
683e369d86 | ||
|
|
f12596a6fc | ||
|
|
09239439ae | ||
|
|
2bb11dffca | ||
|
|
2407b115e4 | ||
|
|
ca3e125da8 | ||
|
|
2a447137d4 | ||
|
|
081ac5f651 | ||
|
|
3864f11694 | ||
|
|
8b59815bf2 | ||
|
|
a98df94399 | ||
|
|
ac538c35e9 | ||
|
|
b2e747caef | ||
|
|
af978e966d | ||
|
|
eeee592abc | ||
|
|
ce65578c72 | ||
|
|
f4c25cb941 | ||
|
|
ba0daa218e | ||
|
|
78408e50c5 | ||
|
|
fefcb928da |
12
.circleci/Dockerfile.cypress
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM cypress/browsers:chrome67
|
||||||
|
|
||||||
|
ENV APP /usr/src/app
|
||||||
|
WORKDIR $APP
|
||||||
|
|
||||||
|
COPY package.json $APP/package.json
|
||||||
|
RUN npm run cypress:install > /dev/null
|
||||||
|
|
||||||
|
COPY client/cypress $APP/client/cypress
|
||||||
|
COPY cypress.json $APP/cypress.json
|
||||||
|
|
||||||
|
RUN ./node_modules/.bin/cypress verify
|
||||||
148
.circleci/config.yml
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
version: 2.0
|
||||||
|
|
||||||
|
flake8-steps: &steps
|
||||||
|
- checkout
|
||||||
|
- run: sudo pip install flake8
|
||||||
|
- run: ./bin/flake8_tests.sh
|
||||||
|
jobs:
|
||||||
|
python-flake8-tests:
|
||||||
|
docker:
|
||||||
|
- image: circleci/python:3.7.0
|
||||||
|
steps: *steps
|
||||||
|
legacy-python-flake8-tests:
|
||||||
|
docker:
|
||||||
|
- image: circleci/python:2.7.15
|
||||||
|
steps: *steps
|
||||||
|
backend-unit-tests:
|
||||||
|
environment:
|
||||||
|
COMPOSE_FILE: .circleci/docker-compose.circle.yml
|
||||||
|
COMPOSE_PROJECT_NAME: redash
|
||||||
|
docker:
|
||||||
|
- image: circleci/buildpack-deps:xenial
|
||||||
|
steps:
|
||||||
|
- setup_remote_docker
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Build Docker Images
|
||||||
|
command: |
|
||||||
|
set -x
|
||||||
|
docker-compose build --build-arg skip_ds_deps=true
|
||||||
|
docker-compose up -d
|
||||||
|
sleep 10
|
||||||
|
- run:
|
||||||
|
name: Create Test Database
|
||||||
|
command: docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests;"
|
||||||
|
- run:
|
||||||
|
name: Run Tests
|
||||||
|
command: docker-compose run --name tests redash tests --junitxml=junit.xml --cov-report xml --cov=redash --cov-config .coveragerc tests/
|
||||||
|
- run:
|
||||||
|
name: Copy Test Results
|
||||||
|
command: |
|
||||||
|
mkdir -p /tmp/test-results/unit-tests
|
||||||
|
docker cp tests:/app/coverage.xml ./coverage.xml
|
||||||
|
docker cp tests:/app/junit.xml /tmp/test-results/unit-tests/results.xml
|
||||||
|
- store_test_results:
|
||||||
|
path: /tmp/test-results
|
||||||
|
- store_artifacts:
|
||||||
|
path: coverage.xml
|
||||||
|
frontend-lint:
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: mkdir -p /tmp/test-results/eslint
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run lint:ci
|
||||||
|
- store_test_results:
|
||||||
|
path: /tmp/test-results
|
||||||
|
frontend-unit-tests:
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: sudo apt install python-pip
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run bundle
|
||||||
|
- run: npm test
|
||||||
|
- run: npm run lint
|
||||||
|
frontend-e2e-tests:
|
||||||
|
environment:
|
||||||
|
COMPOSE_FILE: .circleci/docker-compose.cypress.yml
|
||||||
|
COMPOSE_PROJECT_NAME: cypress
|
||||||
|
PERCY_TOKEN_ENCODED: ZGRiY2ZmZDQ0OTdjMzM5ZWE0ZGQzNTZiOWNkMDRjOTk4Zjg0ZjMxMWRmMDZiM2RjOTYxNDZhOGExMjI4ZDE3MA==
|
||||||
|
CYPRESS_PROJECT_ID_ENCODED: OTI0Y2th
|
||||||
|
CYPRESS_RECORD_KEY_ENCODED: YzA1OTIxMTUtYTA1Yy00NzQ2LWEyMDMtZmZjMDgwZGI2ODgx
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- setup_remote_docker
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Install npm dependencies
|
||||||
|
command: |
|
||||||
|
npm install
|
||||||
|
- run:
|
||||||
|
name: Setup Redash server
|
||||||
|
command: |
|
||||||
|
npm run cypress start
|
||||||
|
docker-compose run cypress npm run cypress db-seed
|
||||||
|
- run:
|
||||||
|
name: Execute Cypress tests
|
||||||
|
command: npm run cypress run-ci
|
||||||
|
build-tarball:
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: sudo apt install python-pip
|
||||||
|
- run: npm install
|
||||||
|
- run: .circleci/update_version
|
||||||
|
- run: npm run bundle
|
||||||
|
- run: npm run build
|
||||||
|
- run: rm -rf ./node_modules/
|
||||||
|
- run: .circleci/pack
|
||||||
|
- store_artifacts:
|
||||||
|
path: /tmp/artifacts/
|
||||||
|
build-docker-image:
|
||||||
|
docker:
|
||||||
|
- image: circleci/buildpack-deps:xenial
|
||||||
|
steps:
|
||||||
|
- setup_remote_docker
|
||||||
|
- checkout
|
||||||
|
- run: .circleci/update_version
|
||||||
|
- run: .circleci/docker_build
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
build:
|
||||||
|
jobs:
|
||||||
|
- python-flake8-tests
|
||||||
|
- legacy-python-flake8-tests
|
||||||
|
- backend-unit-tests
|
||||||
|
- frontend-lint
|
||||||
|
- frontend-unit-tests:
|
||||||
|
requires:
|
||||||
|
- frontend-lint
|
||||||
|
- frontend-e2e-tests:
|
||||||
|
requires:
|
||||||
|
- frontend-lint
|
||||||
|
- build-tarball:
|
||||||
|
requires:
|
||||||
|
- backend-unit-tests
|
||||||
|
- frontend-unit-tests
|
||||||
|
- frontend-e2e-tests
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- /release\/.*/
|
||||||
|
- build-docker-image:
|
||||||
|
requires:
|
||||||
|
- backend-unit-tests
|
||||||
|
- frontend-unit-tests
|
||||||
|
- frontend-e2e-tests
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- preview-image
|
||||||
|
- /release\/.*/
|
||||||
22
.circleci/docker-compose.circle.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
redash:
|
||||||
|
build: ../
|
||||||
|
command: manage version
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- redis
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
environment:
|
||||||
|
PYTHONUNBUFFERED: 0
|
||||||
|
REDASH_LOG_LEVEL: "INFO"
|
||||||
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
||||||
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
||||||
|
redis:
|
||||||
|
image: redis:3.0-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
postgres:
|
||||||
|
image: postgres:9.5.6-alpine
|
||||||
|
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
|
||||||
|
restart: unless-stopped
|
||||||
50
.circleci/docker-compose.cypress.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
server:
|
||||||
|
build: ../
|
||||||
|
command: dev_server
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- redis
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
environment:
|
||||||
|
PYTHONUNBUFFERED: 0
|
||||||
|
REDASH_LOG_LEVEL: "INFO"
|
||||||
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
||||||
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
||||||
|
REDASH_RATELIMIT_ENABLED: "false"
|
||||||
|
worker:
|
||||||
|
build: ../
|
||||||
|
command: scheduler
|
||||||
|
depends_on:
|
||||||
|
- server
|
||||||
|
environment:
|
||||||
|
PYTHONUNBUFFERED: 0
|
||||||
|
REDASH_LOG_LEVEL: "INFO"
|
||||||
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
||||||
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
||||||
|
QUEUES: "queries,scheduled_queries,celery,schemas"
|
||||||
|
WORKERS_COUNT: 2
|
||||||
|
cypress:
|
||||||
|
build:
|
||||||
|
context: ../
|
||||||
|
dockerfile: .circleci/Dockerfile.cypress
|
||||||
|
depends_on:
|
||||||
|
- server
|
||||||
|
- worker
|
||||||
|
environment:
|
||||||
|
CYPRESS_baseUrl: "http://server:5000"
|
||||||
|
PERCY_TOKEN: ${PERCY_TOKEN}
|
||||||
|
PERCY_BRANCH: ${CIRCLE_BRANCH}
|
||||||
|
PERCY_COMMIT: ${CIRCLE_SHA1}
|
||||||
|
PERCY_PULL_REQUEST: ${CIRCLE_PR_NUMBER}
|
||||||
|
CYPRESS_PROJECT_ID: ${CYPRESS_PROJECT_ID}
|
||||||
|
CYPRESS_RECORD_KEY: ${CYPRESS_RECORD_KEY}
|
||||||
|
redis:
|
||||||
|
image: redis:3.0-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
postgres:
|
||||||
|
image: postgres:9.5.6-alpine
|
||||||
|
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
|
||||||
|
restart: unless-stopped
|
||||||
17
.circleci/docker_build
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
VERSION=$(jq -r .version package.json)
|
||||||
|
VERSION_TAG=$VERSION.b$CIRCLE_BUILD_NUM
|
||||||
|
|
||||||
|
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||||
|
|
||||||
|
if [ $CIRCLE_BRANCH = master ] || [ $CIRCLE_BRANCH = preview-image ]
|
||||||
|
then
|
||||||
|
docker build -t redash/redash:preview -t redash/preview:$VERSION_TAG .
|
||||||
|
docker push redash/redash:preview
|
||||||
|
docker push redash/preview:$VERSION_TAG
|
||||||
|
else
|
||||||
|
docker build -t redash/redash:$VERSION_TAG .
|
||||||
|
docker push redash/redash:$VERSION_TAG
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Built: $VERSION_TAG"
|
||||||
9
.circleci/pack
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
NAME=redash
|
||||||
|
VERSION=$(jq -r .version package.json)
|
||||||
|
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
|
||||||
|
FILENAME=$NAME.$FULL_VERSION.tar.gz
|
||||||
|
|
||||||
|
mkdir -p /tmp/artifacts/
|
||||||
|
|
||||||
|
tar -zcv -f /tmp/artifacts/$FILENAME --exclude=".git" --exclude="optipng*" --exclude="cypress" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" *
|
||||||
6
.circleci/update_version
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
VERSION=$(jq -r .version package.json)
|
||||||
|
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
|
||||||
|
|
||||||
|
sed -ri "s/^__version__ = '([A-Za-z0-9.-]*)'/__version__ = '$FULL_VERSION'/" redash/__init__.py
|
||||||
|
sed -i "s/dev/$CIRCLE_SHA1/" client/app/version.json
|
||||||
@@ -1,22 +1,32 @@
|
|||||||
engines:
|
version: "2"
|
||||||
|
checks:
|
||||||
|
complex-logic:
|
||||||
|
enabled: false
|
||||||
|
file-lines:
|
||||||
|
enabled: false
|
||||||
|
method-complexity:
|
||||||
|
enabled: false
|
||||||
|
method-count:
|
||||||
|
enabled: false
|
||||||
|
method-lines:
|
||||||
|
config:
|
||||||
|
threshold: 100
|
||||||
|
nested-control-flow:
|
||||||
|
enabled: false
|
||||||
|
identical-code:
|
||||||
|
enabled: false
|
||||||
|
similar-code:
|
||||||
|
enabled: false
|
||||||
|
plugins:
|
||||||
pep8:
|
pep8:
|
||||||
enabled: true
|
enabled: true
|
||||||
eslint:
|
eslint:
|
||||||
enabled: true
|
|
||||||
channel: "eslint-3"
|
|
||||||
config:
|
|
||||||
config: client/.eslintrc.js
|
|
||||||
checks:
|
|
||||||
import/no-unresolved:
|
|
||||||
enabled: false
|
enabled: false
|
||||||
ratings:
|
exclude_patterns:
|
||||||
paths:
|
- "tests/**/*.py"
|
||||||
- "redash/**/*.py"
|
- "migrations/**/*.py"
|
||||||
- "client/**/*.js"
|
- "setup/**/*"
|
||||||
exclude_paths:
|
- "bin/**/*"
|
||||||
- tests/**/*.py
|
- "**/node_modules/"
|
||||||
- migrations/**/*.py
|
- "client/dist/"
|
||||||
- old_migrations/**/*.py
|
- "**/*.pyc"
|
||||||
- setup/**/*
|
|
||||||
- bin/**/*
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
|
[run]
|
||||||
|
branch = True
|
||||||
|
source = redash
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
omit =
|
omit =
|
||||||
*/settings.py
|
*/settings.py
|
||||||
*/python?.?/*
|
*/python?.?/*
|
||||||
*/site-packages/nose/*
|
show_missing = True
|
||||||
|
|||||||
@@ -1,4 +1,14 @@
|
|||||||
client/.tmp/
|
client/.tmp/
|
||||||
|
client/dist/
|
||||||
node_modules/
|
node_modules/
|
||||||
.tmp/
|
.tmp/
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
.git/
|
.git/
|
||||||
|
/.codeclimate.yml
|
||||||
|
/.coverage
|
||||||
|
/coverage.xml
|
||||||
|
/.circleci/
|
||||||
|
/.github/
|
||||||
|
/netlify.toml
|
||||||
|
/setup/
|
||||||
|
|||||||
14
.editorconfig
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.py]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.{js,jsx,css,less,html}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
24
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,24 +0,0 @@
|
|||||||
Welcome to Redash's GitHub repo! 👋🎉
|
|
||||||
|
|
||||||
Do you need help or have a question? Checkout the Support category in our discussion forum: https://discuss.redash.io/c/support.
|
|
||||||
|
|
||||||
Got an idea for a new feature? Check if it isn't on the roadmap already: http://bit.ly/redash-roadmap and start a new discussion in the features category: https://discuss.redash.io/c/feature-requests 🌟.
|
|
||||||
|
|
||||||
Found a bug? Please fill out the sections below... thank you 👍
|
|
||||||
|
|
||||||
### Issue Summary
|
|
||||||
|
|
||||||
A summary of the issue and the browser/OS environment in which it occurs.
|
|
||||||
|
|
||||||
### Steps to Reproduce
|
|
||||||
|
|
||||||
1. This is the first step
|
|
||||||
2. This is the second step, etc.
|
|
||||||
|
|
||||||
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
|
|
||||||
|
|
||||||
### Technical details:
|
|
||||||
|
|
||||||
* Redash Version:
|
|
||||||
* Browser/OS:
|
|
||||||
* How did you install Redash:
|
|
||||||
34
.github/ISSUE_TEMPLATE/---bug_report.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
name: "\U0001F41B Bug report"
|
||||||
|
about: Report reproducible software issues so we can improve
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
We use GitHub only for bug reports 🐛
|
||||||
|
|
||||||
|
Anything else should be posted to https://discuss.redash.io 👫
|
||||||
|
|
||||||
|
🚨For support, help & questions use https://discuss.redash.io/c/support
|
||||||
|
💡For feature requests & ideas use https://discuss.redash.io/c/feature-requests
|
||||||
|
|
||||||
|
**Found a security vulnerability?** Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use this PGP key.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Issue Summary
|
||||||
|
|
||||||
|
A summary of the issue and the browser/OS environment in which it occurs.
|
||||||
|
|
||||||
|
### Steps to Reproduce
|
||||||
|
|
||||||
|
1. This is the first step
|
||||||
|
2. This is the second step, etc.
|
||||||
|
|
||||||
|
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
|
||||||
|
|
||||||
|
### Technical details:
|
||||||
|
|
||||||
|
* Redash Version:
|
||||||
|
* Browser/OS:
|
||||||
|
* How did you install Redash:
|
||||||
17
.github/ISSUE_TEMPLATE/--anything_else.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: "\U0001F4A1Anything else"
|
||||||
|
about: "For help, support, features & ideas - please use https://discuss.redash.io \U0001F46B "
|
||||||
|
labels: "Support Question"
|
||||||
|
---
|
||||||
|
|
||||||
|
We use GitHub only for bug reports 🐛
|
||||||
|
|
||||||
|
Anything else should be posted to https://discuss.redash.io 👫
|
||||||
|
|
||||||
|
🚨For support, help & questions use https://discuss.redash.io/c/support
|
||||||
|
💡For feature requests & ideas use https://discuss.redash.io/c/feature-requests
|
||||||
|
|
||||||
|
Alternatively, check out these resources below. Thanks! 😁.
|
||||||
|
|
||||||
|
- [Forum](https://disucss.redash.io)
|
||||||
|
- [Knowledge Base](https://redash.io/help)
|
||||||
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
## What type of PR is this? (check all applicable)
|
||||||
|
<!-- Please leave only what's applicable -->
|
||||||
|
|
||||||
|
- [ ] Refactor
|
||||||
|
- [ ] Feature
|
||||||
|
- [ ] Bug Fix
|
||||||
|
- [ ] New Query Runner (Data Source)
|
||||||
|
- [ ] New Alert Destination
|
||||||
|
- [ ] Other
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
## Related Tickets & Documents
|
||||||
|
|
||||||
|
## Mobile & Desktop Screenshots/Recordings (if there are UI changes)
|
||||||
5
.github/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# https://github.com/behaviorbot/request-info?installation_id=189571
|
||||||
|
requestInfoLabelToAdd: needs-more-info
|
||||||
|
requestInfoReplyComment: >
|
||||||
|
We would appreciate it if you could provide us with more info about this issue/pr!
|
||||||
|
|
||||||
23
.github/support.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Configuration for Support Requests - https://github.com/dessant/support-requests
|
||||||
|
|
||||||
|
# Label used to mark issues as support requests
|
||||||
|
supportLabel: Support Question
|
||||||
|
|
||||||
|
# Comment to post on issues marked as support requests, `{issue-author}` is an
|
||||||
|
# optional placeholder. Set to `false` to disable
|
||||||
|
supportComment: >
|
||||||
|
:wave: @{issue-author}, we use the issue tracker exclusively for bug reports
|
||||||
|
and planned work. However, this issue appears to be a support request.
|
||||||
|
Please use [our forum](https://discuss.redash.io) to get help.
|
||||||
|
|
||||||
|
# Close issues marked as support requests
|
||||||
|
close: true
|
||||||
|
|
||||||
|
# Lock issues marked as support requests
|
||||||
|
lock: false
|
||||||
|
|
||||||
|
# Assign `off-topic` as the reason for locking. Set to `false` to disable
|
||||||
|
setLockReason: true
|
||||||
|
|
||||||
|
# Repository to extend settings from
|
||||||
|
# _extends: repo
|
||||||
7
.github/weekly-digest.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Configuration for weekly-digest - https://github.com/apps/weekly-digest
|
||||||
|
publishDay: mon
|
||||||
|
canPublishIssues: true
|
||||||
|
canPublishPullRequests: true
|
||||||
|
canPublishContributors: true
|
||||||
|
canPublishStargazers: true
|
||||||
|
canPublishCommits: true
|
||||||
16
.gitignore
vendored
@@ -1,7 +1,12 @@
|
|||||||
|
.venv
|
||||||
|
venv/
|
||||||
|
.cache
|
||||||
|
.coverage.*
|
||||||
.coveralls.yml
|
.coveralls.yml
|
||||||
.idea
|
.idea
|
||||||
*.pyc
|
*.pyc
|
||||||
.coverage
|
.coverage
|
||||||
|
coverage.xml
|
||||||
client/dist
|
client/dist
|
||||||
.DS_Store
|
.DS_Store
|
||||||
celerybeat-schedule*
|
celerybeat-schedule*
|
||||||
@@ -9,14 +14,8 @@ celerybeat-schedule*
|
|||||||
\#*#
|
\#*#
|
||||||
*~
|
*~
|
||||||
_build
|
_build
|
||||||
|
.vscode
|
||||||
# Vagrant related
|
|
||||||
.vagrant
|
|
||||||
Berksfile.lock
|
|
||||||
redash/dump.rdb
|
|
||||||
.env
|
.env
|
||||||
.ruby-version
|
|
||||||
venv
|
|
||||||
|
|
||||||
dump.rdb
|
dump.rdb
|
||||||
|
|
||||||
@@ -24,3 +23,6 @@ node_modules
|
|||||||
.tmp
|
.tmp
|
||||||
.sass-cache
|
.sass-cache
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
|
client/cypress/screenshots
|
||||||
|
client/cypress/videos
|
||||||
|
|||||||
1206
CHANGELOG.md
@@ -6,11 +6,9 @@ The following is a set of guidelines for contributing to Redash. These are guide
|
|||||||
|
|
||||||
## Quick Links:
|
## Quick Links:
|
||||||
|
|
||||||
- [Feature Roadmap](https://trello.com/b/b2LUHU7A/re-dash-roadmap)
|
|
||||||
- [Feature Requests](https://discuss.redash.io/c/feature-requests)
|
- [Feature Requests](https://discuss.redash.io/c/feature-requests)
|
||||||
- [Gitter Chat](https://gitter.im/getredash/redash) or [Slack](https://slack.redash.io)
|
|
||||||
- [Documentation](https://redash.io/help/)
|
- [Documentation](https://redash.io/help/)
|
||||||
- [Blog](http://blog.redash.io/)
|
- [Blog](https://blog.redash.io/)
|
||||||
- [Twitter](https://twitter.com/getredash)
|
- [Twitter](https://twitter.com/getredash)
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -29,7 +27,7 @@ The following is a set of guidelines for contributing to Redash. These are guide
|
|||||||
- [Documentation](#documentation)
|
- [Documentation](#documentation)
|
||||||
- Design?
|
- Design?
|
||||||
|
|
||||||
[Addtional Notes](#additional-notes)
|
[Additional Notes](#additional-notes)
|
||||||
|
|
||||||
- [Release Method](#release-method)
|
- [Release Method](#release-method)
|
||||||
- [Code of Conduct](#code-of-conduct)
|
- [Code of Conduct](#code-of-conduct)
|
||||||
@@ -46,9 +44,9 @@ When creating a new bug report, please make sure to:
|
|||||||
|
|
||||||
### Suggesting Enhancements / Feature Requests
|
### Suggesting Enhancements / Feature Requests
|
||||||
|
|
||||||
If you would like to suggest an enchancement or ask for a new feature:
|
If you would like to suggest an enhancement or ask for a new feature:
|
||||||
|
|
||||||
- Please check [the roadmap](https://trello.com/b/b2LUHU7A/re-dash-roadmap) for existing Trello card for what you want to suggest/ask. If there is, feel free to upvote it to signal interest or add your comments.
|
- Please check [the roadmap](https://trello.com/b/b2LUHU7A/redash-roadmap) for existing Trello card for what you want to suggest/ask. If there is, feel free to upvote it to signal interest or add your comments.
|
||||||
- If there is no existing card, open a thread in [the forum](https://discuss.redash.io/c/feature-requests) to start a discussion about what you want to suggest. Try to provide as much details and context as possible and include information about *the problem you want to solve* rather only *your proposed solution*.
|
- If there is no existing card, open a thread in [the forum](https://discuss.redash.io/c/feature-requests) to start a discussion about what you want to suggest. Try to provide as much details and context as possible and include information about *the problem you want to solve* rather only *your proposed solution*.
|
||||||
|
|
||||||
### Pull Requests
|
### Pull Requests
|
||||||
@@ -56,17 +54,19 @@ If you would like to suggest an enchancement or ask for a new feature:
|
|||||||
- **Code contributions are welcomed**. For big changes or significant features, it's usually better to reach out first and discuss what you want to implement and how (we recommend reading: [Pull Request First](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6#.ozlqxvj36)). This to make sure that what you want to implement is aligned with our goals for the project and that no one else is already working on it.
|
- **Code contributions are welcomed**. For big changes or significant features, it's usually better to reach out first and discuss what you want to implement and how (we recommend reading: [Pull Request First](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6#.ozlqxvj36)). This to make sure that what you want to implement is aligned with our goals for the project and that no one else is already working on it.
|
||||||
- Include screenshots and animated GIFs in your pull request whenever possible.
|
- Include screenshots and animated GIFs in your pull request whenever possible.
|
||||||
- Please add [documentation](#documentation) for new features or changes in functionality along with the code.
|
- Please add [documentation](#documentation) for new features or changes in functionality along with the code.
|
||||||
- Please follow existing code style. We use PEP8 for Python and sensible style for Javascript.
|
- Please follow existing code style:
|
||||||
|
- Python: we use PEP8 for Python.
|
||||||
|
- Javascript: we use Airbnb's style guides for [JavaScript](https://github.com/airbnb/javascript#naming-conventions) and [React](https://github.com/airbnb/javascript/blob/master/react) (currently we don't follow Airbnb's convention for naming files, but we're gradually fixing this). To make it automatic and easy, we recommend using [Prettier](https://github.com/prettier/prettier).
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
The project's documentation can be found at [https://redash.io/help/](https://redash.io/help/). The [documentation sources](https://github.com/getredash/website/tree/master/user-guide) are hosted on GitHub. To contribute edits / new pages, you can use GitHub's interface. Click the "Edit on GitHub" link on the documentation page to quickly open the edit interface.
|
The project's documentation can be found at [https://redash.io/help/](https://redash.io/help/). The [documentation sources](https://github.com/getredash/website/tree/master/src/pages/kb) are hosted on GitHub. To contribute edits / new pages, you can use GitHub's interface. Click the "Edit on GitHub" link on the documentation page to quickly open the edit interface.
|
||||||
|
|
||||||
## Additional Notes
|
## Additional Notes
|
||||||
|
|
||||||
### Release Method
|
### Release Method
|
||||||
|
|
||||||
We publish a stable release every ~2 months, although the goal is to get to a stable release every month. You can see the change log on [GitHub releases page](http://github.com/getredash/redash/releases).
|
We publish a stable release every ~2 months, although the goal is to get to a stable release every month. You can see the change log on [GitHub releases page](https://github.com/getredash/redash/releases).
|
||||||
|
|
||||||
Every build of the master branch updates the latest *RC release*. These releases are usually stable, but might contain regressions and therefore recommended for "advanced users" only.
|
Every build of the master branch updates the latest *RC release*. These releases are usually stable, but might contain regressions and therefore recommended for "advanced users" only.
|
||||||
|
|
||||||
@@ -74,4 +74,4 @@ When we release a new stable release, we also update the *latest* Docker image t
|
|||||||
|
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
|
|
||||||
This project adheres to the Contributor Covenant [code of conduct](http://redash.io/community/code_of_conduct). By participating, you are expected to uphold this code. Please report unacceptable behavior to team@redash.io.
|
This project adheres to the Contributor Covenant [code of conduct](https://redash.io/community/code_of_conduct). By participating, you are expected to uphold this code. Please report unacceptable behavior to team@redash.io.
|
||||||
|
|||||||
21
Dockerfile
@@ -1,12 +1,27 @@
|
|||||||
|
FROM node:10 as frontend-builder
|
||||||
|
|
||||||
|
WORKDIR /frontend
|
||||||
|
COPY package.json package-lock.json /frontend/
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY . /frontend
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
FROM redash/base:latest
|
FROM redash/base:latest
|
||||||
|
|
||||||
|
# Controls whether to install extra dependencies needed for all data sources.
|
||||||
|
ARG skip_ds_deps
|
||||||
|
|
||||||
# We first copy only the requirements file, to avoid rebuilding on every file
|
# We first copy only the requirements file, to avoid rebuilding on every file
|
||||||
# change.
|
# change.
|
||||||
COPY requirements.txt requirements_dev.txt requirements_all_ds.txt ./
|
COPY requirements.txt requirements_dev.txt requirements_all_ds.txt ./
|
||||||
RUN pip install -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt
|
RUN pip install -r requirements.txt -r requirements_dev.txt
|
||||||
|
RUN if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi
|
||||||
|
|
||||||
COPY . ./
|
COPY . /app
|
||||||
RUN npm install && npm run build && rm -rf node_modules
|
COPY --from=frontend-builder /frontend/client/dist /app/client/dist
|
||||||
RUN chown -R redash /app
|
RUN chown -R redash /app
|
||||||
|
USER redash
|
||||||
|
|
||||||
ENTRYPOINT ["/app/bin/docker-entrypoint"]
|
ENTRYPOINT ["/app/bin/docker-entrypoint"]
|
||||||
|
CMD ["server"]
|
||||||
|
|||||||
2
LICENSE
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2013-2017, Arik Fraimovich.
|
Copyright (c) 2013-2019, Arik Fraimovich.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
|||||||
69
Makefile
@@ -1,20 +1,57 @@
|
|||||||
NAME=redash
|
.PHONY: compose_build up test_db create_database clean down bundle tests lint backend-unit-tests frontend-unit-tests test build watch start redis-cli bash
|
||||||
VERSION=`python ./manage.py version`
|
|
||||||
FULL_VERSION=$(VERSION)+b$(CIRCLE_BUILD_NUM)
|
|
||||||
BASE_VERSION=$(shell python ./manage.py version | cut -d + -f 1)
|
|
||||||
# VERSION gets evaluated every time it's referenced, therefore we need to use VERSION here instead of FULL_VERSION.
|
|
||||||
FILENAME=$(CIRCLE_ARTIFACTS)/$(NAME).$(VERSION).tar.gz
|
|
||||||
|
|
||||||
deps:
|
compose_build:
|
||||||
if [ -d "./client/app" ]; then npm install; fi
|
docker-compose build
|
||||||
if [ -d "./client/app" ]; then npm run build; fi
|
|
||||||
|
|
||||||
pack:
|
up:
|
||||||
sed -ri "s/^__version__ = '([0-9.]*)'/__version__ = '$(FULL_VERSION)'/" redash/__init__.py
|
docker-compose up -d --build
|
||||||
tar -zcv -f $(FILENAME) --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *
|
|
||||||
|
|
||||||
upload:
|
test_db:
|
||||||
python bin/release_manager.py $(CIRCLE_SHA1) $(BASE_VERSION) $(FILENAME)
|
@for i in `seq 1 5`; do \
|
||||||
|
if (docker-compose exec postgres sh -c 'psql -U postgres -c "select 1;"' 2>&1 > /dev/null) then break; \
|
||||||
|
else echo "postgres initializing..."; sleep 5; fi \
|
||||||
|
done
|
||||||
|
docker-compose exec postgres sh -c 'psql -U postgres -c "drop database if exists tests;" && psql -U postgres -c "create database tests;"'
|
||||||
|
|
||||||
test:
|
create_database:
|
||||||
nosetests --with-coverage --cover-package=redash tests/
|
docker-compose run server create_db
|
||||||
|
|
||||||
|
clean:
|
||||||
|
docker-compose down && docker-compose rm
|
||||||
|
|
||||||
|
down:
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
bundle:
|
||||||
|
docker-compose run server bin/bundle-extensions
|
||||||
|
|
||||||
|
tests:
|
||||||
|
docker-compose run server tests
|
||||||
|
|
||||||
|
lint:
|
||||||
|
./bin/flake8_tests.sh
|
||||||
|
|
||||||
|
backend-unit-tests: up test_db
|
||||||
|
docker-compose run --rm --name tests server tests
|
||||||
|
|
||||||
|
frontend-unit-tests: bundle
|
||||||
|
npm install
|
||||||
|
npm run bundle
|
||||||
|
npm test
|
||||||
|
|
||||||
|
test: lint backend-unit-tests frontend-unit-tests
|
||||||
|
|
||||||
|
build: bundle
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
watch: bundle
|
||||||
|
npm run watch
|
||||||
|
|
||||||
|
start: bundle
|
||||||
|
npm run start
|
||||||
|
|
||||||
|
redis-cli:
|
||||||
|
docker-compose run --rm redis redis-cli -h redis
|
||||||
|
|
||||||
|
bash:
|
||||||
|
docker-compose run --rm server bash
|
||||||
|
|||||||
27
README.md
@@ -5,7 +5,6 @@
|
|||||||
<img title="Build Status" src='https://circleci.com/gh/getredash/redash.png?circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040'/>
|
<img title="Build Status" src='https://circleci.com/gh/getredash/redash.png?circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040'/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
[](https://gitter.im/getredash/redash?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
||||||
[](https://redash.io/help/)
|
[](https://redash.io/help/)
|
||||||
|
|
||||||
**_Redash_** is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.
|
**_Redash_** is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.
|
||||||
@@ -13,37 +12,37 @@
|
|||||||
Prior to **_Redash_**, we tried to use traditional BI suites and discovered a set of bloated, technically challenged and slow tools/flows. What we were looking for was a more hacker'ish way to look at data, so we built one.
|
Prior to **_Redash_**, we tried to use traditional BI suites and discovered a set of bloated, technically challenged and slow tools/flows. What we were looking for was a more hacker'ish way to look at data, so we built one.
|
||||||
|
|
||||||
**_Redash_** was built to allow fast and easy access to billions of records, that we process and collect using Amazon Redshift ("petabyte scale data warehouse" that "speaks" PostgreSQL).
|
**_Redash_** was built to allow fast and easy access to billions of records, that we process and collect using Amazon Redshift ("petabyte scale data warehouse" that "speaks" PostgreSQL).
|
||||||
Today **_Redash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite,
|
Today **_Redash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite, Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
|
||||||
Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
|
|
||||||
|
|
||||||
**_Redash_** consists of two parts:
|
**_Redash_** consists of two parts:
|
||||||
|
|
||||||
1. **Query Editor**: think of [JS Fiddle](http://jsfiddle.net) for SQL queries. It's your way to share data in the organization in an open way, by sharing both the dataset and the query that generated it. This way everyone can peer review not only the resulting dataset but also the process that generated it. Also it's possible to fork it and generate new datasets and reach new insights.
|
1. **Query Editor**: think of [JS Fiddle](https://jsfiddle.net) for SQL queries. It's your way to share data in the organization in an open way, by sharing both the dataset and the query that generated it. This way everyone can peer review not only the resulting dataset but also the process that generated it. Also it's possible to fork it and generate new datasets and reach new insights.
|
||||||
2. **Dashboards/Visualizations**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently it supports charts, pivot table and cohorts.
|
2. **Visualizations and Dashboards**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently Redash supports charts, pivot table, cohorts and [more](https://redash.io/help/user-guide/visualizations/visualization-types).
|
||||||
|
|
||||||
## Demo
|
<img src="https://raw.githubusercontent.com/getredash/website/8e820cd02c73a8ddf4f946a9d293c54fd3fb08b9/website/_assets/images/redash-anim.gif" width="80%"/>
|
||||||
|
|
||||||
<img src="https://cloud.githubusercontent.com/assets/71468/17391289/8e83878e-5a1d-11e6-8938-af9054a33b19.gif" width="60%"/>
|
|
||||||
|
|
||||||
You can try out the demo instance: http://demo.redash.io/ (login with any Google account).
|
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
* [Setting up Redash instance](https://redash.io/help-onpremise/setup/setting-up-redash-instance.html) (includes links to ready made AWS/GCE images).
|
* [Setting up Redash instance](https://redash.io/help/open-source/setup) (includes links to ready made AWS/GCE images).
|
||||||
* [Documentation](https://redash.io/help/).
|
* [Documentation](https://redash.io/help/).
|
||||||
|
|
||||||
|
## Supported Data Sources
|
||||||
|
|
||||||
|
Redash supports more than 35 [data sources](https://redash.io/help/data-sources/supported-data-sources).
|
||||||
|
|
||||||
## Getting Help
|
## Getting Help
|
||||||
|
|
||||||
* Issues: https://github.com/getredash/redash/issues
|
* Issues: https://github.com/getredash/redash/issues
|
||||||
* Discussion Forum: https://discuss.redash.io/
|
* Discussion Forum: https://discuss.redash.io/
|
||||||
* Slack: http://slack.redash.io/
|
|
||||||
* Gitter (chat): https://gitter.im/getredash/redash
|
|
||||||
|
|
||||||
## Reporting Bugs and Contributing Code
|
## Reporting Bugs and Contributing Code
|
||||||
|
|
||||||
* Want to report a bug or request a feature? Please open [an issue](https://github.com/getredash/redash/issues/new).
|
* Want to report a bug or request a feature? Please open [an issue](https://github.com/getredash/redash/issues/new).
|
||||||
* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/setup/setting-up-development-environment-using-vagrant.html), and make a pull request. We need all the help we can get!
|
* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/dev/guide.html), and make a pull request. We need all the help we can get!
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use [this PGP key](https://keybase.io/arikfr/key.asc).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
39
bin/bundle-extensions
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
|
from subprocess import call
|
||||||
|
from distutils.dir_util import copy_tree
|
||||||
|
|
||||||
|
from pkg_resources import iter_entry_points, resource_filename, resource_isdir
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Make a directory for extensions and set it as an environment variable
|
||||||
|
# to be picked up by webpack.
|
||||||
|
EXTENSIONS_RELATIVE_PATH = os.path.join('client', 'app', 'extensions')
|
||||||
|
EXTENSIONS_DIRECTORY = os.path.join(
|
||||||
|
os.path.dirname(os.path.dirname(__file__)),
|
||||||
|
EXTENSIONS_RELATIVE_PATH)
|
||||||
|
|
||||||
|
if not os.path.exists(EXTENSIONS_DIRECTORY):
|
||||||
|
os.makedirs(EXTENSIONS_DIRECTORY)
|
||||||
|
os.environ["EXTENSIONS_DIRECTORY"] = EXTENSIONS_RELATIVE_PATH
|
||||||
|
|
||||||
|
for entry_point in iter_entry_points('redash.extensions'):
|
||||||
|
# This is where the frontend code for an extension lives
|
||||||
|
# inside of its package.
|
||||||
|
content_folder_relative = os.path.join(
|
||||||
|
entry_point.name, 'bundle')
|
||||||
|
(root_module, _) = os.path.splitext(entry_point.module_name)
|
||||||
|
|
||||||
|
if not resource_isdir(root_module, content_folder_relative):
|
||||||
|
continue
|
||||||
|
|
||||||
|
content_folder = resource_filename(root_module, content_folder_relative)
|
||||||
|
|
||||||
|
# This is where we place our extensions folder.
|
||||||
|
destination = os.path.join(
|
||||||
|
EXTENSIONS_DIRECTORY,
|
||||||
|
entry_point.name)
|
||||||
|
|
||||||
|
copy_tree(content_folder, destination)
|
||||||
@@ -1,32 +1,35 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# When the /app folder is a host volume, on Linux machines the redash user can't
|
|
||||||
# change files in the mounted volume if it has a different uid than the host user.
|
|
||||||
#
|
|
||||||
# In most cases the host uid will be 1000...
|
|
||||||
# This feels hackish, if anyone got a better solution I'll be happy to hear.
|
|
||||||
usermod -u 1000 redash
|
|
||||||
|
|
||||||
worker() {
|
worker() {
|
||||||
WORKERS_COUNT=${WORKERS_COUNT:-2}
|
WORKERS_COUNT=${WORKERS_COUNT:-2}
|
||||||
QUEUES=${QUEUES:-queries,scheduled_queries,celery}
|
QUEUES=${QUEUES:-queries,scheduled_queries,celery,schemas}
|
||||||
|
WORKER_EXTRA_OPTIONS=${WORKER_EXTRA_OPTIONS:-}
|
||||||
|
|
||||||
echo "Starting $WORKERS_COUNT workers for queues: $QUEUES..."
|
echo "Starting $WORKERS_COUNT workers for queues: $QUEUES..."
|
||||||
exec sudo -E -u redash /usr/local/bin/celery worker --app=redash.worker -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
|
exec /usr/local/bin/celery worker --app=redash.worker -c$WORKERS_COUNT -Q$QUEUES -linfo --max-tasks-per-child=10 -Ofair $WORKER_EXTRA_OPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduler() {
|
scheduler() {
|
||||||
WORKERS_COUNT=${WORKERS_COUNT:-1}
|
WORKERS_COUNT=${WORKERS_COUNT:-1}
|
||||||
QUEUES=${QUEUES:-celery}
|
QUEUES=${QUEUES:-celery}
|
||||||
|
SCHEDULE_DB=${SCHEDULE_DB:-celerybeat-schedule}
|
||||||
|
|
||||||
echo "Starting scheduler and $WORKERS_COUNT workers for queues: $QUEUES..."
|
echo "Starting scheduler and $WORKERS_COUNT workers for queues: $QUEUES..."
|
||||||
|
|
||||||
exec sudo -E -u redash /usr/local/bin/celery worker --app=redash.worker --beat -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
|
exec /usr/local/bin/celery worker --app=redash.worker --beat -s$SCHEDULE_DB -c$WORKERS_COUNT -Q$QUEUES -linfo --max-tasks-per-child=10 -Ofair
|
||||||
}
|
}
|
||||||
|
|
||||||
server() {
|
server() {
|
||||||
exec sudo -E -u redash /usr/local/bin/gunicorn -b 0.0.0.0:5000 --name redash -w4 redash.wsgi:app
|
exec /usr/local/bin/gunicorn -b 0.0.0.0:5000 --name redash -w${REDASH_WEB_WORKERS:-4} redash.wsgi:app
|
||||||
|
}
|
||||||
|
|
||||||
|
create_db() {
|
||||||
|
exec /app/manage.py database create_tables
|
||||||
|
}
|
||||||
|
|
||||||
|
celery_healthcheck() {
|
||||||
|
exec /usr/local/bin/celery inspect ping --app=redash.worker -d celery@$HOSTNAME
|
||||||
}
|
}
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
@@ -38,15 +41,25 @@ help() {
|
|||||||
echo "server -- start Redash server (with gunicorn)"
|
echo "server -- start Redash server (with gunicorn)"
|
||||||
echo "worker -- start Celery worker"
|
echo "worker -- start Celery worker"
|
||||||
echo "scheduler -- start Celery worker with a beat (scheduler) process"
|
echo "scheduler -- start Celery worker with a beat (scheduler) process"
|
||||||
|
echo "celery_healthcheck -- runs a Celery healthcheck. Useful for Docker's HEALTHCHECK mechanism."
|
||||||
echo ""
|
echo ""
|
||||||
echo "shell -- open shell"
|
echo "shell -- open shell"
|
||||||
echo "dev_server -- start Flask development server with debugger and auto reload"
|
echo "dev_server -- start Flask development server with debugger and auto reload"
|
||||||
|
echo "debug -- start Flask development server with remote debugger via ptvsd"
|
||||||
echo "create_db -- create database tables"
|
echo "create_db -- create database tables"
|
||||||
|
echo "manage -- CLI to manage redash"
|
||||||
|
echo "tests -- run tests"
|
||||||
}
|
}
|
||||||
|
|
||||||
tests() {
|
tests() {
|
||||||
export REDASH_DATABASE_URL="postgresql://postgres@postgres/tests"
|
export REDASH_DATABASE_URL="postgresql://postgres@postgres/tests"
|
||||||
exec sudo -E -u redash make test
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
TEST_ARGS=tests/
|
||||||
|
else
|
||||||
|
TEST_ARGS=$@
|
||||||
|
fi
|
||||||
|
exec pytest $TEST_ARGS
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -63,18 +76,34 @@ case "$1" in
|
|||||||
scheduler
|
scheduler
|
||||||
;;
|
;;
|
||||||
dev_server)
|
dev_server)
|
||||||
exec sudo -E -u redash /app/manage.py runserver --debugger --reload -h 0.0.0.0
|
export FLASK_DEBUG=1
|
||||||
|
exec /app/manage.py runserver --debugger --reload -h 0.0.0.0
|
||||||
|
;;
|
||||||
|
debug)
|
||||||
|
export FLASK_DEBUG=1
|
||||||
|
export REMOTE_DEBUG=1
|
||||||
|
exec /app/manage.py runserver --debugger --no-reload -h 0.0.0.0
|
||||||
;;
|
;;
|
||||||
shell)
|
shell)
|
||||||
exec sudo -E -u redash /app/manage.py shell
|
exec /app/manage.py shell
|
||||||
;;
|
;;
|
||||||
create_db)
|
create_db)
|
||||||
exec sudo -E -u redash /app/manage.py database create_tables
|
create_db
|
||||||
|
;;
|
||||||
|
manage)
|
||||||
|
shift
|
||||||
|
exec /app/manage.py $*
|
||||||
;;
|
;;
|
||||||
tests)
|
tests)
|
||||||
tests
|
shift
|
||||||
|
tests $@
|
||||||
;;
|
;;
|
||||||
*)
|
help)
|
||||||
|
shift
|
||||||
help
|
help
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
7
bin/flake8_tests.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
flake8 --version ; pip --version
|
||||||
|
# stop the build if there are Python syntax errors or undefined names
|
||||||
|
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
|
||||||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||||||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||||||
36
bin/get_changes.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/env python
|
||||||
|
from __future__ import print_function
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
def get_change_log(previous_sha):
|
||||||
|
args = ['git', '--no-pager', 'log', '--merges', '--grep', 'Merge pull request', '--pretty=format:"%h|%s|%b|%p"', 'master...{}'.format(previous_sha)]
|
||||||
|
log = subprocess.check_output(args)
|
||||||
|
changes = []
|
||||||
|
|
||||||
|
for line in log.split('\n'):
|
||||||
|
try:
|
||||||
|
sha, subject, body, parents = line[1:-1].split('|')
|
||||||
|
except ValueError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
|
||||||
|
pull_request = " #{}".format(pull_request)
|
||||||
|
except Exception as ex:
|
||||||
|
pull_request = ""
|
||||||
|
|
||||||
|
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
|
||||||
|
|
||||||
|
changes.append("{}{}: {} ({})".format(sha, pull_request, body.strip(), author))
|
||||||
|
|
||||||
|
return changes
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
previous_sha = sys.argv[1]
|
||||||
|
changes = get_change_log(previous_sha)
|
||||||
|
|
||||||
|
for change in changes:
|
||||||
|
print(change)
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
|
from __future__ import print_function
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import requests
|
import requests
|
||||||
|
import simplejson
|
||||||
|
|
||||||
github_token = os.environ['GITHUB_TOKEN']
|
github_token = os.environ['GITHUB_TOKEN']
|
||||||
auth = (github_token, 'x-oauth-basic')
|
auth = (github_token, 'x-oauth-basic')
|
||||||
@@ -16,7 +17,7 @@ def _github_request(method, path, params=None, headers={}):
|
|||||||
url = path
|
url = path
|
||||||
|
|
||||||
if params is not None:
|
if params is not None:
|
||||||
params = json.dumps(params)
|
params = simplejson.dumps(params)
|
||||||
|
|
||||||
response = requests.request(method, url, data=params, auth=auth)
|
response = requests.request(method, url, data=params, auth=auth)
|
||||||
return response
|
return response
|
||||||
@@ -95,7 +96,7 @@ def get_changelog(commit_sha):
|
|||||||
try:
|
try:
|
||||||
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
|
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
|
||||||
pull_request = " #{}".format(pull_request)
|
pull_request = " #{}".format(pull_request)
|
||||||
except Exception, ex:
|
except Exception as ex:
|
||||||
pull_request = ""
|
pull_request = ""
|
||||||
|
|
||||||
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
|
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
|
||||||
@@ -124,7 +125,7 @@ def update_release(version, build_filepath, commit_sha):
|
|||||||
else:
|
else:
|
||||||
release = create_release(version, commit_sha)
|
release = create_release(version, commit_sha)
|
||||||
|
|
||||||
print "Using release id: {}".format(release['id'])
|
print("Using release id: {}".format(release['id']))
|
||||||
|
|
||||||
remove_previous_builds(release)
|
remove_previous_builds(release)
|
||||||
response = upload_asset(release, build_filepath)
|
response = upload_asset(release, build_filepath)
|
||||||
@@ -135,8 +136,8 @@ def update_release(version, build_filepath, commit_sha):
|
|||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
raise exception_from_error("Failed updating release description", response)
|
raise exception_from_error("Failed updating release description", response)
|
||||||
|
|
||||||
except Exception, ex:
|
except Exception as ex:
|
||||||
print ex
|
print(ex)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
commit_sha = sys.argv[1]
|
commit_sha = sys.argv[1]
|
||||||
|
|||||||
14
bin/upgrade
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import os
|
import urllib
|
||||||
import argparse
|
import argparse
|
||||||
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
@@ -74,13 +75,13 @@ class Release(namedtuple('Release', ('version', 'download_url', 'filename', 'des
|
|||||||
|
|
||||||
|
|
||||||
def get_latest_release_from_ci():
|
def get_latest_release_from_ci():
|
||||||
response = requests.get('https://circleci.com/api/v1.1/project/github/getredash/redash/latest/artifacts')
|
response = requests.get('https://circleci.com/api/v1.1/project/github/getredash/redash/latest/artifacts?branch=master')
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
exit("Failed getting releases (status code: %s)." % response.status_code)
|
exit("Failed getting releases (status code: %s)." % response.status_code)
|
||||||
|
|
||||||
tarball_asset = filter(lambda asset: asset['url'].endswith('.tar.gz'), response.json())[0]
|
tarball_asset = filter(lambda asset: asset['url'].endswith('.tar.gz'), response.json())[0]
|
||||||
filename = tarball_asset['pretty_path'].replace('$CIRCLE_ARTIFACTS/', '')
|
filename = urllib.unquote(tarball_asset['pretty_path'].split('/')[-1])
|
||||||
version = filename.replace('redash.', '').replace('.tar.gz', '')
|
version = filename.replace('redash.', '').replace('.tar.gz', '')
|
||||||
|
|
||||||
release = Release(version, tarball_asset['url'], filename, '')
|
release = Release(version, tarball_asset['url'], filename, '')
|
||||||
@@ -111,7 +112,10 @@ def restart_services():
|
|||||||
# otherwise it won't notice that /opt/redash/current pointing at a different
|
# otherwise it won't notice that /opt/redash/current pointing at a different
|
||||||
# directory.
|
# directory.
|
||||||
green("Restarting...")
|
green("Restarting...")
|
||||||
|
try:
|
||||||
run('sudo /etc/init.d/redash_supervisord restart')
|
run('sudo /etc/init.d/redash_supervisord restart')
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
run('sudo service supervisor restart')
|
||||||
|
|
||||||
|
|
||||||
def update_requirements(version_name):
|
def update_requirements(version_name):
|
||||||
@@ -200,7 +204,9 @@ def show_description_and_confirm(description):
|
|||||||
|
|
||||||
def verify_newer_version(release):
|
def verify_newer_version(release):
|
||||||
if not release.is_newer(current_version()):
|
if not release.is_newer(current_version()):
|
||||||
red("The found release is not newer than your current deployed release ({}). Aborting upgrade.".format(current_version()))
|
red("The found release is not newer than your current deployed release ({}).".format(current_version()))
|
||||||
|
if not confirm("Continue with upgrade?"):
|
||||||
|
red("Cancelling upgrade.")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
37
circle.yml
@@ -1,37 +0,0 @@
|
|||||||
machine:
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
- redis
|
|
||||||
node:
|
|
||||||
version:
|
|
||||||
6.9.1
|
|
||||||
dependencies:
|
|
||||||
override:
|
|
||||||
- pip install --upgrade setuptools
|
|
||||||
- pip install -r requirements_dev.txt
|
|
||||||
- pip install -r requirements.txt
|
|
||||||
- make deps
|
|
||||||
cache_directories:
|
|
||||||
- node_modules/
|
|
||||||
test:
|
|
||||||
override:
|
|
||||||
- nosetests --with-xunit --xunit-file=$CIRCLE_TEST_REPORTS/junit.xml --with-coverage --cover-package=redash tests/
|
|
||||||
deployment:
|
|
||||||
github_and_docker:
|
|
||||||
branch: master
|
|
||||||
commands:
|
|
||||||
- make pack
|
|
||||||
# Skipping uploads for now, until master is stable.
|
|
||||||
# - make upload
|
|
||||||
#- echo "client/app" >> .dockerignore
|
|
||||||
#- docker pull redash/redash:latest
|
|
||||||
#- docker build -t redash/redash:$(./manage.py version | sed -e "s/\+/./") .
|
|
||||||
#- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
|
|
||||||
#- docker push redash/redash:$(./manage.py version | sed -e "s/\+/./")
|
|
||||||
notify:
|
|
||||||
webhooks:
|
|
||||||
- url: https://webhooks.gitter.im/e/895d09c3165a0913ac2f
|
|
||||||
general:
|
|
||||||
branches:
|
|
||||||
ignore:
|
|
||||||
- gh-pages
|
|
||||||
@@ -1,3 +1,20 @@
|
|||||||
{
|
{
|
||||||
"presets": ["es2015", "stage-2"]
|
"presets": [
|
||||||
|
["@babel/preset-env", {
|
||||||
|
"exclude": [
|
||||||
|
"@babel/plugin-transform-async-to-generator",
|
||||||
|
"@babel/plugin-transform-arrow-functions"
|
||||||
|
],
|
||||||
|
"useBuiltIns": "usage"
|
||||||
|
}],
|
||||||
|
"@babel/preset-react"
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"angularjs-annotate",
|
||||||
|
"@babel/plugin-proposal-class-properties",
|
||||||
|
"@babel/plugin-transform-object-assign",
|
||||||
|
["babel-plugin-transform-builtin-extend", {
|
||||||
|
"globals": ["Error"]
|
||||||
|
}]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
build/*.js
|
build/*.js
|
||||||
config/*.js
|
config/*.js
|
||||||
|
client/dist
|
||||||
|
|||||||
@@ -1,15 +1,66 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
root: true,
|
root: true,
|
||||||
extends: 'airbnb-base',
|
extends: ["airbnb", "plugin:compat/recommended"],
|
||||||
|
plugins: ["jest", "compat"],
|
||||||
|
settings: {
|
||||||
|
"import/resolver": "webpack"
|
||||||
|
},
|
||||||
|
parser: "babel-eslint",
|
||||||
env: {
|
env: {
|
||||||
"browser": true,
|
browser: true,
|
||||||
"node": true
|
node: true
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
// allow debugger during development
|
// allow debugger during development
|
||||||
'no-param-reassign': 0,
|
"no-debugger": process.env.NODE_ENV === "production" ? 2 : 0,
|
||||||
'no-mixed-operators': 0,
|
"no-param-reassign": 0,
|
||||||
'no-underscore-dangle': 0,
|
"no-mixed-operators": 0,
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
|
"no-underscore-dangle": 0,
|
||||||
|
"no-use-before-define": ["error", "nofunc"],
|
||||||
|
"prefer-destructuring": "off",
|
||||||
|
"prefer-template": "off",
|
||||||
|
"no-restricted-properties": "off",
|
||||||
|
"no-restricted-globals": "off",
|
||||||
|
"no-multi-assign": "off",
|
||||||
|
"no-lonely-if": "off",
|
||||||
|
"consistent-return": "off",
|
||||||
|
"no-control-regex": "off",
|
||||||
|
"no-multiple-empty-lines": "warn",
|
||||||
|
"no-script-url": "off", // some <a> tags should have href="javascript:void(0)"
|
||||||
|
"operator-linebreak": "off",
|
||||||
|
"react/destructuring-assignment": "off",
|
||||||
|
"react/jsx-filename-extension": "off",
|
||||||
|
"react/jsx-one-expression-per-line": "off",
|
||||||
|
"react/jsx-uses-react": "error",
|
||||||
|
"react/jsx-uses-vars": "error",
|
||||||
|
"react/jsx-wrap-multilines": "warn",
|
||||||
|
"react/no-access-state-in-setstate": "warn",
|
||||||
|
"react/prefer-stateless-function": "warn",
|
||||||
|
"react/forbid-prop-types": "warn",
|
||||||
|
"react/prop-types": "warn",
|
||||||
|
"jsx-a11y/anchor-is-valid": "off",
|
||||||
|
"jsx-a11y/click-events-have-key-events": "off",
|
||||||
|
"jsx-a11y/label-has-associated-control": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
controlComponents: true
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"jsx-a11y/label-has-for": "off",
|
||||||
|
"jsx-a11y/no-static-element-interactions": "off",
|
||||||
|
"max-len": [
|
||||||
|
"error",
|
||||||
|
120,
|
||||||
|
2,
|
||||||
|
{
|
||||||
|
ignoreUrls: true,
|
||||||
|
ignoreComments: false,
|
||||||
|
ignoreRegExpLiterals: true,
|
||||||
|
ignoreStrings: true,
|
||||||
|
ignoreTemplateLiterals: true
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"no-else-return": ["error", { allowElseIf: true }],
|
||||||
|
"object-curly-newline": ["error", { consistent: true }]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
7
client/app/.eslintrc.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
module.exports = {
|
||||||
|
extends: ["plugin:jest/recommended"],
|
||||||
|
plugins: ["jest"],
|
||||||
|
env: {
|
||||||
|
"jest/globals": true,
|
||||||
|
},
|
||||||
|
};
|
||||||
4
client/app/__tests__/enzyme_setup.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import { configure } from 'enzyme';
|
||||||
|
import Adapter from 'enzyme-adapter-react-16';
|
||||||
|
|
||||||
|
configure({ adapter: new Adapter() });
|
||||||
5
client/app/__tests__/mocks.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import MockDate from 'mockdate';
|
||||||
|
|
||||||
|
const date = new Date('2000-01-01T02:00:00.000');
|
||||||
|
|
||||||
|
MockDate.set(date);
|
||||||
@@ -1,685 +0,0 @@
|
|||||||
body {
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.headless {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.headless nav.app-header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a[ng-click] {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.link {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.page-title {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
max-width: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.navbar-brand {
|
|
||||||
padding: 5px 5px 0px 0px;
|
|
||||||
margin-left: 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .fa {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.navbar-brand img {
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar {
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar img {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logout {
|
|
||||||
color: white;
|
|
||||||
position: relative;
|
|
||||||
left: -9px;
|
|
||||||
bottom: -11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.details-toggle {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.details-toggle::before {
|
|
||||||
content: '▸';
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.details-toggle.open::before {
|
|
||||||
content: '▾';
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place span {
|
|
||||||
white-space: pre-line;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place span.editable {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place span.editable:hover {
|
|
||||||
background: #FCFCA2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place input,
|
|
||||||
.edit-in-place textarea {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place.active span {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit-in-place.active input,
|
|
||||||
.edit-in-place.active textarea {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.delete-button {
|
|
||||||
float: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-item.active button {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-heading > p:last-child {
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-heading > a,
|
|
||||||
.panel-heading .query-link {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-heading .query-link:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group.required .control-label:after {
|
|
||||||
content: "*";
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group .help-block.error {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-group.has-error .help-block.error {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* angular-growl */
|
|
||||||
.growl {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 10px;
|
|
||||||
right: 10px;
|
|
||||||
float: right;
|
|
||||||
width: 250px;
|
|
||||||
z-index: 10000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.growl-item.ng-enter,
|
|
||||||
.growl-item.ng-leave {
|
|
||||||
-webkit-transition: 0.5s linear all;
|
|
||||||
-moz-transition: 0.5s linear all;
|
|
||||||
-o-transition: 0.5s linear all;
|
|
||||||
transition: 0.5s linear all;
|
|
||||||
}
|
|
||||||
|
|
||||||
.growl-item.ng-enter,
|
|
||||||
.growl-item.ng-leave.ng-leave-active {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.growl-item.ng-leave,
|
|
||||||
.growl-item.ng-enter.ng-enter-active {
|
|
||||||
opacity: 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Gridster */
|
|
||||||
|
|
||||||
li.widget {
|
|
||||||
/*background-color:grey;*/
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: grey;
|
|
||||||
opacity: 0.7;
|
|
||||||
cursor: move;
|
|
||||||
}
|
|
||||||
|
|
||||||
li.widget:hover {
|
|
||||||
opacity: 1.0 !important;
|
|
||||||
|
|
||||||
-webkit-transition: opacity .6s;
|
|
||||||
-moz-transition: opacity .6s;
|
|
||||||
-o-transition: opacity .6s;
|
|
||||||
-ms-transition: opacity .6s;
|
|
||||||
transition: opacity .6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gridster .preview-holder {
|
|
||||||
border: none !important;
|
|
||||||
border-radius: 0 !important;
|
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gridster li .heading {
|
|
||||||
border: #ddd;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Editor */
|
|
||||||
|
|
||||||
.ace_editor {
|
|
||||||
border: 1px solid #eee;
|
|
||||||
height: 100%;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Support for Font-Awesome in btn-xs */
|
|
||||||
|
|
||||||
.btn-xs > .fa {
|
|
||||||
font-size: 14px;
|
|
||||||
top: 1px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Because of ng-repeat we add span between the .dropdown-menu element and the li element, so we had
|
|
||||||
to add those CSS styles here. */
|
|
||||||
|
|
||||||
.dropdown-menu > span > li > a {
|
|
||||||
display: block;
|
|
||||||
padding: 3px 20px;
|
|
||||||
clear: both;
|
|
||||||
font-weight: normal;
|
|
||||||
line-height: 1.428571429;
|
|
||||||
color: #333333;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu > span > li > a:hover,
|
|
||||||
.dropdown-menu > span > li > a:focus {
|
|
||||||
color: #ffffff;
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #428bca;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dropdown submenus */
|
|
||||||
.dropdown-submenu {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
|
||||||
top: 0;
|
|
||||||
left: 100%;
|
|
||||||
margin-top: -6px;
|
|
||||||
margin-left: -1px;
|
|
||||||
-webkit-border-radius: 0 6px 6px 6px;
|
|
||||||
-moz-border-radius: 0 6px 6px 6px;
|
|
||||||
border-radius: 0 6px 6px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu:hover > .dropdown-menu {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu > a:after {
|
|
||||||
display: block;
|
|
||||||
content: " ";
|
|
||||||
float: right;
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-color: transparent;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 5px 0 5px 5px;
|
|
||||||
border-left-color: #cccccc;
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-right: -10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu:hover > a:after {
|
|
||||||
/*border-left-color: #ffffff;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu.pull-left {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-submenu.pull-left > .dropdown-menu {
|
|
||||||
left: -100%;
|
|
||||||
margin-left: 10px;
|
|
||||||
-webkit-border-radius: 6px 0 6px 6px;
|
|
||||||
-moz-border-radius: 6px 0 6px 6px;
|
|
||||||
border-radius: 6px 0 6px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rd-tab .remove {
|
|
||||||
cursor: pointer;
|
|
||||||
color: #A09797;
|
|
||||||
padding: 0 3px 1px 4px;
|
|
||||||
font-size: 11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rd-tab .remove:hover {
|
|
||||||
color: white;
|
|
||||||
background-color: #FF8080;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tab-nav > li.rd-tab-btn {
|
|
||||||
float: right;
|
|
||||||
padding-right: 10px;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* light version of bootstrap's form-control */
|
|
||||||
.rd-form-control {
|
|
||||||
display: block;
|
|
||||||
padding: 6px 12px;
|
|
||||||
line-height: 1.428571429;
|
|
||||||
color: #555555;
|
|
||||||
vertical-align: middle;
|
|
||||||
background-color: #ffffff;
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
|
||||||
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rd-form-control {
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
pivot-table-renderer > table, grid-renderer > div, visualization-renderer > div {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer {
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer counter {
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 15px 50px;
|
|
||||||
display: block;;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer value,
|
|
||||||
counter-renderer counter-target {
|
|
||||||
font-size: 80px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer counter-target {
|
|
||||||
color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer counter.positive value {
|
|
||||||
color: #5cb85c;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer counter.negative value {
|
|
||||||
color: #d9534f;
|
|
||||||
margin-right: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
counter-renderer counter-name {
|
|
||||||
font-size: 40px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
|
||||||
font: 10px sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box line,
|
|
||||||
.box rect,
|
|
||||||
.box circle {
|
|
||||||
fill: #fff;
|
|
||||||
stroke: #000;
|
|
||||||
stroke-width: 1.5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box .center {
|
|
||||||
stroke-dasharray: 3, 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box .outlier {
|
|
||||||
fill: none;
|
|
||||||
stroke: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.axis text {
|
|
||||||
font: 10px sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.axis path,
|
|
||||||
.axis line {
|
|
||||||
fill: none;
|
|
||||||
stroke: #000;
|
|
||||||
shape-rendering: crispEdges;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-background {
|
|
||||||
fill: #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid path,
|
|
||||||
.grid line {
|
|
||||||
fill: none;
|
|
||||||
stroke: #fff;
|
|
||||||
shape-rendering: crispEdges;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid .minor line {
|
|
||||||
stroke-opacity: .5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid text {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.iframe-container {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.schema-container {
|
|
||||||
height: 100%;
|
|
||||||
z-index: 10;
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.schema-browser {
|
|
||||||
height: calc(100% - 45px);
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: hidden;
|
|
||||||
border: 1px solid rgba(0,0,0,.15);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.table-name {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.table-name:hover {
|
|
||||||
background: #f4f4f4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blankslate {
|
|
||||||
text-align: center;
|
|
||||||
padding: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Footer */
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
color: #818d9f;
|
|
||||||
padding-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a {
|
|
||||||
color: #818d9f;
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.col-table .missing-value {
|
|
||||||
color: #b94a48;
|
|
||||||
}
|
|
||||||
|
|
||||||
.col-table .super-small-input {
|
|
||||||
padding-left: 3px;
|
|
||||||
height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.col-table .ui-select-toggle, .col-table .ui-select-search {
|
|
||||||
padding: 2px;
|
|
||||||
padding-left: 5px;
|
|
||||||
height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clearable button {
|
|
||||||
border-top-right-radius: 0;
|
|
||||||
border-bottom-right-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Immediately apply ng-cloak, instead of waiting for angular.js to load: */
|
|
||||||
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset {
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset1 {
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset2 {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset3 {
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset4 {
|
|
||||||
margin-top: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset5 {
|
|
||||||
margin-top: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset6 {
|
|
||||||
margin-top: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset7 {
|
|
||||||
margin-top: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset8 {
|
|
||||||
margin-top: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.voffset9 {
|
|
||||||
margin-top: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.overlay {
|
|
||||||
background-color: #808080;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
padding: 0;
|
|
||||||
z-index: 1000;
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container-fluid {
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-xl {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.modal-xl .modal-dialog {
|
|
||||||
position: fixed;
|
|
||||||
margin: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-xl .modal-content {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
border: 2px solid #3c7dcf;
|
|
||||||
border-radius: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-xl .modal-header {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
left: 0;
|
|
||||||
height: 50px;
|
|
||||||
padding: 10px;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-xl .modal-body {
|
|
||||||
position: absolute;
|
|
||||||
top: 50px;
|
|
||||||
bottom: 60px;
|
|
||||||
width: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-xl .modal-footer {
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
height: 60px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Bootstrap Overrides */
|
|
||||||
|
|
||||||
.flex-parent {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsing,
|
|
||||||
.collapse.in {
|
|
||||||
padding: 5px 10px;
|
|
||||||
transition: all 0.35s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.schema-browser .collapse.in {
|
|
||||||
background: #f4f4f4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .collapse.in {
|
|
||||||
background: #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fixes for SuperFlat */
|
|
||||||
|
|
||||||
.table-hover > tbody > tr:hover {
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
z-index: 1000000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.t-body a.actions {
|
|
||||||
font-size: 24px;
|
|
||||||
line-height: 100%;
|
|
||||||
padding: 4px 10px 3px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.t-body a.actions:hover,
|
|
||||||
.t-body a.actions.open > a {
|
|
||||||
background-color: rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ui-select adjustments for SuperFlat */
|
|
||||||
|
|
||||||
/* Same definition as .form-control */
|
|
||||||
.ui-select-toggle.btn-default {
|
|
||||||
height: 35px;
|
|
||||||
padding: 6px 12px;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 1.42857143;
|
|
||||||
color: #9E9E9E;
|
|
||||||
background: #fff none;
|
|
||||||
border: 1px solid #e8e8e8;
|
|
||||||
border-radius: 5px;
|
|
||||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
|
||||||
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
|
||||||
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
|
||||||
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.t-header.widget {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sankey Visualization */
|
|
||||||
.sankey .node rect {
|
|
||||||
fill-opacity: .9;
|
|
||||||
shape-rendering: crispEdges;
|
|
||||||
stroke-width: 0;
|
|
||||||
}
|
|
||||||
.sankey .node text {
|
|
||||||
text-shadow: 0 1px 0 #fff;
|
|
||||||
}
|
|
||||||
.sankey .link {
|
|
||||||
fill: none;
|
|
||||||
stroke: #000;
|
|
||||||
stroke-opacity: .2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Dashboard list view */
|
|
||||||
.m-2{
|
|
||||||
margin:2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu > .disabled{
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The real magic ;) */
|
|
||||||
.dropdown-menu > .disabled > a{
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
6
client/app/assets/images/avatar.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="630" height="630" viewBox="0 0 630 630" version="1.1">
|
||||||
|
<g transform="translate(-56.611934,-184.36221)">
|
||||||
|
<path fill="#a7a7a7" d="m 58.467329,810.92426 c 0,-10.37237 6.53079,-28.55017 15.29935,-42.58418 9.70782,-15.53729 28.965401,-35.11964 51.655121,-52.52627 7.21357,-5.53395 6.57284,-5.08564 22.23877,-15.56023 20.2393,-13.53245 55.34935,-32.58361 79.80676,-43.30416 19.72995,-8.64834 57.2268,-21.58721 62.55974,-21.58721 0.76988,0 3.09659,-0.67892 5.17046,-1.50872 7.3197,-2.92876 12.5713,-16.1286 13.89202,-34.91737 l 0.64689,-9.20257 -8.38455,-10.04931 c -7.66622,-9.18836 -11.59308,-14.62897 -20.80286,-28.82203 -9.85543,-15.1881 -22.91997,-47.26171 -24.69185,-60.61889 -0.56037,-4.22429 -1.0976,-5.21546 -3.27999,-6.05157 -10.15146,-3.88918 -15.7489,-9.08881 -20.96084,-19.47118 -6.6162,-13.17971 -8.62087,-36.5618 -4.2711,-49.81738 2.29242,-6.98599 4.4873,-10.89589 8.72413,-15.54098 2.11744,-2.32146 2.22102,-2.9999 1.45041,-9.5 -2.58899,-21.83821 -3.34954,-41.36055 -2.18394,-56.05862 3.87891,-48.91259 20.17112,-81.47548 50.89033,-101.71339 16.68129,-10.98968 34.4196,-16.74492 62.2113,-20.1846 32.20647,-3.98609 68.82401,0.75436 93.8318,12.14731 14.67849,6.68717 28.98155,17.91433 38.99893,30.61215 19.81832,25.12131 29.57328,66.42856 26.24603,111.13853 -0.69821,9.38224 -1.63714,20.17477 -2.08651,23.9834 -0.81425,6.90129 -0.80559,6.93815 2.55469,10.86388 7.03777,8.22205 10.02312,18.44949 9.84447,33.72599 -0.27308,23.35114 -10.37432,43.49379 -24.44339,48.74202 l -5.34465,1.99373 -1.18738,6.3748 c -4.9831,26.75313 -22.71761,61.14702 -45.76986,88.76506 l -7.88572,9.44759 0.64805,9.21931 c 1.18682,16.88381 6.49256,31.6953 12.30203,34.34227 1.23595,0.56314 6.42637,1.99946 11.53427,3.19182 35.45428,8.27628 97.76078,37.16683 137.59386,63.80012 15.66594,10.47459 15.02521,10.02628 22.23877,15.56023 22.46534,17.23449 41.43241,36.56563 52.11597,53.1163 7.31528,11.33263 13.49882,27.98884 14.54335,39.17447 l 0.58435,6.25763 -313.14461,0 -313.144601,0 0,-3.43795 z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
BIN
client/app/assets/images/db-logos/Cassandra.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
client/app/assets/images/db-logos/athena.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/db-logos/aws_es.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
client/app/assets/images/db-logos/axibasetsd.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
client/app/assets/images/db-logos/bigquery.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
client/app/assets/images/db-logos/clickhouse.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
client/app/assets/images/db-logos/cockroach.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
client/app/assets/images/db-logos/couchbase.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
client/app/assets/images/db-logos/csv.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
client/app/assets/images/db-logos/databricks.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
client/app/assets/images/db-logos/db2.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
client/app/assets/images/db-logos/drill.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
client/app/assets/images/db-logos/druid.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
client/app/assets/images/db-logos/dynamodb_sql.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/db-logos/elasticsearch.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
client/app/assets/images/db-logos/google_analytics.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
client/app/assets/images/db-logos/google_spreadsheets.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
client/app/assets/images/db-logos/graphite.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
client/app/assets/images/db-logos/hive.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
client/app/assets/images/db-logos/hive_http.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
client/app/assets/images/db-logos/impala.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
client/app/assets/images/db-logos/influxdb.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
client/app/assets/images/db-logos/jirajql.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/db-logos/kibana.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
client/app/assets/images/db-logos/kylin.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
client/app/assets/images/db-logos/mapd.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
client/app/assets/images/db-logos/memsql.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/db-logos/mongodb.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
client/app/assets/images/db-logos/mssql.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
client/app/assets/images/db-logos/mysql.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/db-logos/oracle.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
client/app/assets/images/db-logos/pg.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
client/app/assets/images/db-logos/phoenix.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
client/app/assets/images/db-logos/presto.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
client/app/assets/images/db-logos/prometheus.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
client/app/assets/images/db-logos/python.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
client/app/assets/images/db-logos/qubole.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
client/app/assets/images/db-logos/rds_mysql.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
client/app/assets/images/db-logos/redshift.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
client/app/assets/images/db-logos/results.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
client/app/assets/images/db-logos/rockset.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
client/app/assets/images/db-logos/salesforce.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
client/app/assets/images/db-logos/scylla.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
client/app/assets/images/db-logos/snowflake.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
client/app/assets/images/db-logos/sqlite.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
client/app/assets/images/db-logos/treasuredata.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
client/app/assets/images/db-logos/uptycs.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
client/app/assets/images/db-logos/url.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
client/app/assets/images/db-logos/vertica.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
client/app/assets/images/db-logos/yandex_appmetrika.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
client/app/assets/images/db-logos/yandex_metrika.png
Normal file
|
After Width: | Height: | Size: 824 B |
BIN
client/app/assets/images/destinations/chatwork.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
client/app/assets/images/destinations/email.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
client/app/assets/images/destinations/hangouts_chat.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
client/app/assets/images/destinations/hipchat.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/destinations/mattermost.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
client/app/assets/images/destinations/pagerduty.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
client/app/assets/images/destinations/slack.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |