Compare commits

...

2781 Commits

Author SHA1 Message Date
wh1te909
41aa84f403 back to dev [skip ci] 2025-02-04 18:02:57 +00:00
wh1te909
0669a126ed bump version 2025-02-04 17:52:01 +00:00
wh1te909
d5fc77e70a update jinja 2025-02-03 21:59:30 +00:00
wh1te909
079c987c44 bump webver 2025-02-03 21:58:02 +00:00
wh1te909
e4fb4ac28a update reqs 2025-02-03 05:14:39 +00:00
wh1te909
10fd07577f fix for celery workers stop consuming tasks when connection to redis lost 2025-02-01 20:51:59 +00:00
wh1te909
83b4d8c686 fix tests 2025-01-21 21:02:59 +00:00
wh1te909
0a2547d65c fix cors error 2025-01-21 18:52:35 +00:00
wh1te909
5ee2a3cb54 update readme 2024-11-28 19:56:19 +00:00
wh1te909
e505d0768c add server maintenance mode mgmt command 2024-11-22 19:14:55 +00:00
wh1te909
6d4fe84ddc back to dev [skip ci] 2024-11-22 00:41:46 +00:00
wh1te909
c6b667f8b3 bump version [skip ci] 2024-11-21 16:57:37 +00:00
wh1te909
ad4cddb4f3 bump web ver [skip ci] 2024-11-20 19:50:21 +00:00
wh1te909
ddba83b993 Merge pull request #2001 from sadnub/sso
feat: single sign-on #508
2024-11-20 11:17:52 -08:00
wh1te909
91c33b0431 add setting override to disable sso 2024-11-16 19:28:28 +00:00
wh1te909
d1df40633a call sync mesh after sso user created 2024-11-16 19:10:17 +00:00
wh1te909
7f9fc484e8 revert as these haven't changed [skip ci] 2024-11-15 20:40:16 +00:00
wh1te909
ecf564648e update reqs 2024-11-15 20:25:54 +00:00
wh1te909
150e3190bc refurb 2024-11-15 20:19:00 +00:00
wh1te909
63947346e9 remove deprecated login endpoints 2024-11-15 20:18:41 +00:00
wh1te909
86816ce357 move name stuff to the correct view and add email fallback 2024-11-10 20:59:27 +00:00
wh1te909
0d34831df4 also check if first name only and display 2024-11-06 20:32:28 +00:00
wh1te909
c35da67401 update reqs 2024-11-05 20:26:50 +00:00
wh1te909
fb47022380 redo migrations 2024-11-04 23:40:59 +00:00
wh1te909
46c5128418 move callback url info to the backend 2024-11-04 21:58:37 +00:00
wh1te909
4a5bfee616 fix failsafe to ensure no lockouts and add self-reset sso perms 2024-11-04 20:28:01 +00:00
wh1te909
f8314e0f8e fix pop 2024-11-04 18:57:09 +00:00
wh1te909
9624af4e67 fix tests 2024-11-03 08:47:40 +00:00
wh1te909
5bec4768e7 forgot frontend 2024-11-03 06:22:33 +00:00
wh1te909
3851b0943a modify settings instead of local_settings 2024-11-03 06:17:04 +00:00
wh1te909
cc1f640a50 set icon based on provider 2024-11-01 17:42:51 +00:00
wh1te909
ec0a2dc053 handle deployment config updates 2024-10-31 19:06:39 +00:00
wh1te909
a6166a1ad7 add random otp to social accounts 2024-10-31 01:25:20 +00:00
wh1te909
41e3d1f490 move check to signup 2024-10-30 23:07:14 +00:00
wh1te909
2cbecaa552 don't show providers list on login screen if sso is disabled globally 2024-10-30 05:13:35 +00:00
wh1te909
8d543dcc7d move inside if block 2024-10-29 20:03:10 +00:00
sadnub
18b1afe34f formatting 2024-10-29 11:40:05 -04:00
sadnub
0f86bbfad8 disable password/mfa reset views if block_local_logon is enabled 2024-10-29 11:29:04 -04:00
wh1te909
0d021a800a use exists 2024-10-29 11:29:04 -04:00
wh1te909
038304384a move sso settings 2024-10-29 11:29:04 -04:00
wh1te909
2c09ad6b91 update headers 2024-10-29 11:29:04 -04:00
wh1te909
0bd09d03c1 fix tests 2024-10-29 11:29:04 -04:00
wh1te909
faa0e6c289 handle orphaned sso providers 2024-10-29 11:29:04 -04:00
wh1te909
c28d800d7f blacked 2024-10-29 11:29:04 -04:00
wh1te909
4fd772ecd8 update reqs 2024-10-29 11:29:04 -04:00
sadnub
5520a84062 fix client ip not showing in audit log for sso logon and disable some unused urls and settings 2024-10-29 11:29:04 -04:00
sadnub
66c7123f7c allow displaying full name in UI if present 2024-10-29 11:29:03 -04:00
sadnub
bacf4154fd fix some 500 errors 2024-10-29 11:29:03 -04:00
wh1te909
61790d2261 blacked 2024-10-29 11:29:03 -04:00
wh1te909
899111a310 remove unused imports 2024-10-29 11:29:03 -04:00
wh1te909
3bfa35e1c7 move settings before local import 2024-10-29 11:29:03 -04:00
wh1te909
ebefcb7fc1 block local should be disabled by default 2024-10-29 11:29:03 -04:00
sadnub
ce11685371 secure sso token a little more and allow for disabling sso feature. 2024-10-29 11:29:03 -04:00
sadnub
9edb848947 implement default role for sso signups and log ip for sso logins 2024-10-29 11:29:03 -04:00
wh1te909
f326096fad isort 2024-10-29 11:29:03 -04:00
wh1te909
46f0b23f4f rename to avoid conflict with django settings 2024-10-29 11:29:03 -04:00
wh1te909
1c1d3bd619 frontend needs to come first 2024-10-29 11:29:03 -04:00
wh1te909
d894f92d5e format 2024-10-29 11:29:03 -04:00
wh1te909
6c44191fe4 blacked 2024-10-29 11:29:03 -04:00
wh1te909
0deb78a9af fix settings 2024-10-29 11:29:03 -04:00
sadnub
9c15f4ba88 implemented user session tracking, social account tracking, and blocking local user logon 2024-10-29 11:29:03 -04:00
sadnub
4ba27ec1d6 add auditing and session key checking to the sso auth token view 2024-10-29 11:29:03 -04:00
sadnub
c8dd80530a fix session auth and restrict it only to access_token view 2024-10-29 11:29:03 -04:00
sadnub
eda5ea7d1a sso init 2024-10-29 11:29:03 -04:00
wh1te909
77a916e1a8 don't force env vars fixes #2048 2024-10-29 04:31:24 +00:00
wh1te909
7ba2a4b27b update chocos 2024-10-24 09:23:16 +00:00
wh1te909
d33f69720a back to dev [skip ci] 2024-10-23 17:31:55 +00:00
wh1te909
e5c355e8f9 bump version 2024-10-23 17:23:00 +00:00
wh1te909
d36fadf3ca update wording 2024-10-23 17:22:48 +00:00
wh1te909
b618cbdf7c update reqs 2024-10-23 00:56:57 +00:00
wh1te909
15ec7173aa bump web vers 2024-10-23 00:56:46 +00:00
wh1te909
4166e92754 don't trim script whitespace 2024-10-18 06:20:13 +00:00
wh1te909
85166b6e8b add run on server option to run script endpoint #1923 2024-10-17 20:27:15 +00:00
wh1te909
5278599675 update nats 2024-10-17 20:26:04 +00:00
wh1te909
18cac8ba5d show more detail in checks tab #2014 2024-10-15 08:31:06 +00:00
wh1te909
dfccbceea6 bump mesh 2024-10-15 08:28:38 +00:00
wh1te909
fc4b651e46 change to match standard install 2024-10-15 08:25:22 +00:00
wh1te909
fb89922ecf format 2024-10-15 08:24:07 +00:00
wh1te909
8ab23c8cd9 update reqs 2024-10-13 19:51:43 +00:00
wh1te909
787a2c5071 add separate perms for global keystore #1984 2024-10-06 05:58:15 +00:00
wh1te909
da76a20345 forgot to add migration 2024-10-06 03:06:31 +00:00
wh1te909
9688dbdb36 add saving output of bulk script to custom field and agent note closes #1845 2024-10-06 01:49:27 +00:00
wh1te909
6fa16e1a5e update req 2024-10-05 20:25:40 +00:00
wh1te909
71a2e3cfca remove extra mgmt cmd 2024-09-30 19:27:14 +00:00
wh1te909
e9c0f7e200 update reqs 2024-09-30 08:20:22 +00:00
wh1te909
25154a4331 update nats 2024-09-30 07:21:32 +00:00
wh1te909
22c152f600 update reqs 2024-09-04 09:32:37 +00:00
Dan
3eab61cbc3 Merge pull request #1980 from cdp1337/community-scripts-245
Proposed work for amidaware/community-scripts#245
2024-08-20 12:49:17 -07:00
wh1te909
a029c1d0db set alert template when moving site to another client fixes #1975 2024-08-15 18:40:19 +00:00
Charlie Powell
706757d215 Black didn't like the format of that line
whatever, quick fix.
2024-08-15 00:57:04 -04:00
Charlie Powell
9054c233f4 Proposed work for amidaware/community-scripts#245
Modify the load_community_scripts logic to add
env and run_as_user keys.
2024-08-15 00:41:04 -04:00
wh1te909
751b0ef716 bump versions 2024-08-05 17:49:11 +00:00
wh1te909
716450b97e add check for turnkey 2024-08-04 00:30:29 +00:00
wh1te909
2c289a4d8f fix regex 2024-08-01 05:38:16 +00:00
wh1te909
a4ad4c033f also remove control chars 2024-07-30 21:24:43 +00:00
wh1te909
511bca9d66 preserve newlines and tabs 2024-07-30 21:17:07 +00:00
wh1te909
ac3fb03b2d add client and site name to script email closes #1945 2024-07-30 09:10:48 +00:00
wh1te909
282087d0f3 fix custom field view perms fixes #1941 2024-07-30 09:03:45 +00:00
wh1te909
781282599c more webhook json fixes 2024-07-29 22:08:39 +00:00
wh1te909
d611ab0ee2 log body and headers 2024-07-28 22:54:22 +00:00
Dan
411cbdffee Merge pull request #1940 from bc24fl/develop
Allow docker installs the ability to disable web terminal or server side scripts via .env file
2024-07-27 12:39:36 -07:00
bc24fl
cfd19e02a7 Update .env.example 2024-07-27 12:33:20 -04:00
bc24fl
717eeb3903 Update docker-compose.yml 2024-07-27 12:29:50 -04:00
bc24fl
a394fb8757 Update .env.example 2024-07-27 12:29:08 -04:00
bc24fl
2125a7ffdb Update entrypoint.sh 2024-07-27 11:21:45 -04:00
bc24fl
00c0a6ec60 Enable docker installs to disable web terminal and/or server scripts 2024-07-26 19:08:40 -04:00
wh1te909
090bcf89ac potential fix for webhook failures 2024-07-26 19:14:53 +00:00
wh1te909
c8d72ddd3b bump version [skip ci] 2024-07-22 19:40:35 +00:00
wh1te909
5cf618695f fix lint 2024-07-22 19:31:21 +00:00
wh1te909
8a1f497265 fix alert actions not honoring 'run only on' settings and fix availability webhook invalid escape 2024-07-22 19:19:58 +00:00
wh1te909
acdf20f800 add webhook to readme [skip ci] 2024-07-18 18:26:43 +00:00
wh1te909
dbd1003002 back to dev 2024-07-18 18:26:09 +00:00
wh1te909
41ccd14f25 bump version [skip ci] 2024-07-18 05:59:09 +00:00
wh1te909
60800df798 fix resolved emails not being sent 2024-07-18 00:52:34 +00:00
wh1te909
9c36f2cbc5 trigger policy refresh on more fields 2024-07-17 21:19:28 +00:00
wh1te909
0b4fff907a back to dev [skip ci] 2024-07-13 00:28:27 +00:00
wh1te909
50af28b2aa bump versions 2024-07-12 18:53:05 +00:00
wh1te909
28ad74a68e fix lint 2024-07-09 22:58:58 +00:00
wh1te909
13cdbae38f disable unused websocket endpoint 2024-07-09 22:54:58 +00:00
wh1te909
55c77df5ae update reqs 2024-07-09 18:22:07 +00:00
wh1te909
9b1d2fd985 bump web ver [skip ci] 2024-07-08 21:10:16 +00:00
wh1te909
91b7ea0367 more reqs updates 2024-07-08 20:35:38 +00:00
wh1te909
96d3926d09 update bins 2024-07-08 20:34:57 +00:00
wh1te909
c709b5a7eb update nats-api reqs 2024-07-08 20:33:55 +00:00
wh1te909
df82914005 make sure server scripts start with shebang 2024-07-08 19:00:44 +00:00
wh1te909
b1bdc38283 update reqs 2024-07-08 19:00:23 +00:00
sadnub
beb1215329 stop sending resolved message if the alert severity isn't configured to do so 2024-07-08 00:21:12 -04:00
wh1te909
51784388b9 add global option for handling info/warning notifications closes #1834 2024-07-05 21:18:14 +00:00
wh1te909
dbbbd53a4d wording 2024-07-05 21:16:27 +00:00
wh1te909
f9d992c969 add error handling 2024-07-02 16:52:05 +00:00
wh1te909
29a4d61e90 fix auditing/perms for webhook testing 2024-07-02 00:17:32 +00:00
wh1te909
2667cdb26c lower workers on smaller instances 2024-07-01 19:05:55 +00:00
wh1te909
a1669a5104 disabled in hosted 2024-07-01 18:45:54 +00:00
wh1te909
059f1bd63d bump test vers [skip ci] 2024-06-28 23:09:44 +00:00
wh1te909
82ae5e442c use homedir as cwd 2024-06-28 21:50:55 +00:00
Dan
b10114cd7c Merge pull request #1823 from sadnub/urlaction-rework
Serverside actions and cli
2024-06-28 13:30:08 -07:00
wh1te909
33f730aac4 redo migrations 2024-06-28 20:23:24 +00:00
wh1te909
92fdfdb05c delete migrations 2024-06-28 20:21:13 +00:00
wh1te909
fbaf3f3623 update reqs 2024-06-28 18:57:31 +00:00
wh1te909
5f400bc513 fix auditing 2024-06-28 17:13:12 +00:00
wh1te909
0fc59645fc alerts should still be created even if no notifications are selected 2024-06-28 17:13:12 +00:00
wh1te909
e2dee272b8 update pylance settings 2024-06-28 17:13:12 +00:00
wh1te909
364cf362f4 blacked 2024-06-28 17:13:12 +00:00
sadnub
8394a263c4 add auditing to new views 2024-06-28 17:13:12 +00:00
wh1te909
0e9aa26cfc enforce server script perms when handling alert templates 2024-06-28 17:13:12 +00:00
wh1te909
6a23d63266 use constant 2024-06-28 17:13:12 +00:00
wh1te909
af2fc15964 update reqs 2024-06-28 17:13:12 +00:00
wh1te909
5919037a4a fix deprecation warning 2024-06-28 17:13:12 +00:00
wh1te909
a761dab229 simplify query and add logging 2024-06-28 17:13:12 +00:00
wh1te909
fa656e1f56 add missing returns 2024-06-28 17:13:12 +00:00
wh1te909
77e141e84a return error if disabled 2024-06-28 17:13:12 +00:00
wh1te909
2439965fa8 disable web terminal by default 2024-06-28 17:13:12 +00:00
wh1te909
f66afbee90 make default method post and move imports 2024-06-28 17:13:12 +00:00
wh1te909
5a89d23a67 make description textfield 2024-06-28 17:13:12 +00:00
wh1te909
07c8dad1c3 redo migrations 2024-06-28 17:13:12 +00:00
wh1te909
beb8b18e98 remove migrations 2024-06-28 17:13:12 +00:00
wh1te909
887bb5d7cc rename model fields 2024-06-28 17:13:12 +00:00
wh1te909
4a9542d970 still need the old login views for frontend transition 2024-06-28 17:13:12 +00:00
wh1te909
c049d9d5ff alerts should not be created if agent in maintenance mode fixes #1849 2024-06-28 17:13:12 +00:00
wh1te909
c2cc4389a0 add test 2024-06-28 17:13:12 +00:00
wh1te909
12b5011266 fix tests 2024-06-28 17:13:12 +00:00
wh1te909
6e3cad454c add error handling for server script 2024-06-28 17:13:12 +00:00
sadnub
8251bd028c add error handling to webhook test function 2024-06-28 17:13:12 +00:00
sadnub
da87d452c2 fix tests 2024-06-28 17:13:12 +00:00
wh1te909
9bca0dfb3c fix action/resolved name if webhook 2024-06-28 17:13:12 +00:00
wh1te909
57904c4a97 also disable in demo 2024-06-28 17:13:12 +00:00
wh1te909
4e74d851e9 add test server script and start making server scripts/webterm optional 2024-06-28 17:13:12 +00:00
wh1te909
e5c1f69b02 use sigkill instead of sigterm 2024-06-28 17:13:12 +00:00
sadnub
9d390d064c flake 2024-06-28 17:13:12 +00:00
sadnub
4994d7892c black 2024-06-28 17:13:12 +00:00
sadnub
1ea06e3c42 fixes some tests for auth, fixes the recursive property lookup, fixes the replacement of alert variables 2024-06-28 17:13:12 +00:00
sadnub
a4b7a6dfc7 code formatting 2024-06-28 17:13:12 +00:00
sadnub
7fe1cce606 remove some unused imports 2024-06-28 17:13:12 +00:00
sadnub
7e5abe32e0 remove more server task stuff 2024-06-28 17:13:12 +00:00
wh1te909
47caf7c142 blacked 2024-06-28 17:13:12 +00:00
sadnub
cf4d777344 remove run_server_task command 2024-06-28 17:13:12 +00:00
sadnub
255927c346 remove autotasks rework 2024-06-28 17:13:12 +00:00
sadnub
e8c5fc79a6 added check to make sure instance_type == 'none' doesn't trigger a Model lookup and added json.dumps on body 2024-06-28 17:13:12 +00:00
sadnub
b309b24d0b Fix string replacement function and fix flaw in regex to match {{model.prop}} tags 2024-06-28 17:13:12 +00:00
sadnub
13f4cca9d5 allow strings in instance id for Agent hostname 2024-06-28 17:13:12 +00:00
sadnub
b3c0273e0c cleanup model resolution and potential fix for nested object and array properties in requets body 2024-06-28 17:13:12 +00:00
wh1te909
1df7fdf703 fix request body and url 2024-06-28 17:13:12 +00:00
wh1te909
cbf38309e2 blacked 2024-06-28 17:13:12 +00:00
sadnub
2ec7257dd7 add view for web hook test and add recursion to the dictionary data replacer 2024-06-28 17:13:12 +00:00
wh1te909
531aac6923 harden connect method 2024-06-28 17:13:12 +00:00
wh1te909
59b4604c77 wrong role name 2024-06-28 17:13:12 +00:00
sadnub
52aa269af9 modify totp setup view 2024-06-28 17:13:12 +00:00
wh1te909
8a03d9c498 set term 2024-06-28 17:13:12 +00:00
wh1te909
a36fc7ecfd fix webhooks 2024-06-28 17:13:12 +00:00
sadnub
7b0c269bce fix flake 2024-06-28 17:13:12 +00:00
sadnub
c10bf9b357 black 2024-06-28 17:13:12 +00:00
sadnub
0606642953 fix failure action not saving correctly if a server script 2024-06-28 17:13:12 +00:00
sadnub
d1b2cae201 add migrations 2024-06-28 17:13:12 +00:00
sadnub
097e567122 init 2024-06-28 17:13:12 +00:00
wh1te909
d22e1d6a24 update nats-server 2024-06-28 17:12:11 +00:00
wh1te909
2827069bd9 handle expired nginx signing key 2024-06-25 16:06:26 +00:00
Dan
614e3bd2a0 Merge pull request #1903 from silversword411/develop
troubleshoot_server.sh - Checking for resolvconf and giving helper text
2024-06-24 13:48:01 -07:00
silversword411
ff756a01d2 Added version tracking header info 2024-06-24 16:31:56 -04:00
silversword411
db14606dbe troubleshoot_server: Add helper for resolvconf error 2024-06-24 16:24:14 -04:00
wh1te909
5bf5065d9a replace expired nginx key 2024-06-24 05:51:36 +00:00
wh1te909
0235dadbf7 fix alert template not assigned on new agent fixes #1896 2024-06-19 04:23:44 +00:00
wh1te909
203a15b447 cleanup pid file on start 2024-06-11 00:31:53 +00:00
wh1te909
fe4dfe2194 update reqs 2024-06-08 08:33:21 +00:00
wh1te909
c2eb93abe0 switch to localhost to download mesh exe 2024-06-08 08:07:05 +00:00
wh1te909
d32b834ae7 fix snippet bug fixes #1702 2024-05-29 06:29:00 +00:00
Dan
cecf45a698 Merge pull request #1824 from dinger1986/dinger1986-added-passwordless-sudo-verify
added passwordless sudo verify for backup scheduling
2024-05-18 22:28:22 -07:00
Dan
69cd348cc3 Merge branch 'develop' into dinger1986-added-passwordless-sudo-verify 2024-05-18 22:23:59 -07:00
wh1te909
868025ffa3 update reqs 2024-05-16 19:40:22 +00:00
wh1te909
60126a8cc5 update reqs 2024-05-07 02:30:06 +00:00
wh1te909
8cfba49559 add noninteractive 2024-04-25 22:03:22 +00:00
wh1te909
168f053c6f revert, already fixed in #1823 2024-04-22 18:12:02 +00:00
wh1te909
897e1d4539 fix script name fixes #1852 2024-04-22 17:32:05 +00:00
wh1te909
5ef6a0f4ea update reqs 2024-04-19 21:21:13 +00:00
wh1te909
eb80e32812 no-owner for pg_dump 2024-04-19 20:36:11 +00:00
wh1te909
620dadafe4 back to dev [skip ci] 2024-04-09 03:14:10 +00:00
wh1te909
376b421eb9 bump versions 2024-04-09 00:37:07 +00:00
wh1te909
e1643aca80 revert DRF for now until we do more testing 2024-04-08 23:35:48 +00:00
wh1te909
4e97c0c5c9 add note about where to find bulk output results 2024-04-08 23:27:30 +00:00
dinger1986
2d51b122af Update backup.sh 2024-04-02 16:59:48 +01:00
wh1te909
05b88a3c73 fix for usernames with spaces in them fixes #1820 2024-03-30 22:08:15 +00:00
wh1te909
3c087d49e9 update reqs 2024-03-30 06:32:59 +00:00
wh1te909
d81fcccf10 add guest sharing perm 2024-03-30 05:56:24 +00:00
wh1te909
ee3a7bbbfc fix run urlactions perms fixes #1819 2024-03-30 05:52:09 +00:00
wh1te909
82d9e2fb16 back to dev 2024-03-30 05:49:56 +00:00
wh1te909
4aa413e697 bump version 2024-03-29 21:07:33 +00:00
wh1te909
04b3fc54b0 add nonalpha chars to mesh password #1814 2024-03-29 20:10:35 +00:00
wh1te909
e4c5a4e886 fix rights 2024-03-29 08:39:18 +00:00
wh1te909
a0ee7a59eb remove old funcs 2024-03-29 08:36:03 +00:00
wh1te909
b4a05160df skip if no mesh node id #1814 2024-03-28 23:43:18 +00:00
Dan
1a437b3961 Merge pull request #1815 from silversword411/develop
Tweaking bug report template
2024-03-28 14:10:14 -07:00
wh1te909
bda8555190 remove lambda 2024-03-28 07:32:54 +00:00
silversword411
10ca38f91d Tweaking bug report template 2024-03-28 02:24:18 -04:00
wh1te909
a468faad20 fix lint 2024-03-28 04:30:31 +00:00
wh1te909
7a20be4aff fix for mesh sync if trmm username is an email 2024-03-28 04:18:25 +00:00
wh1te909
06b974c8a4 back to dev 2024-03-28 04:18:01 +00:00
wh1te909
515394049a bump version 2024-03-27 18:09:17 +00:00
wh1te909
35c8b4f535 add mgmt command to get mesh login url 2024-03-27 17:28:32 +00:00
wh1te909
1a325a66b4 bump versions 2024-03-25 17:35:44 +00:00
wh1te909
7d82116fb9 add home endpoint 2024-03-25 17:29:43 +00:00
wh1te909
8a7bd4f21b update bins 2024-03-24 19:31:12 +00:00
wh1te909
2e5a2ef12d update nats 2024-03-24 19:29:18 +00:00
wh1te909
89aceda65a update reqs 2024-03-21 18:28:59 +00:00
Dan
39fd83aa16 Merge pull request #1810 from dinger1986/dinger1986-add-mesh-coname-to-initial
Update views.py
2024-03-20 17:03:07 -07:00
dinger1986
a23d811fe8 Update tests.py 2024-03-20 23:29:33 +00:00
dinger1986
a238779724 Update tests.py 2024-03-20 23:24:51 +00:00
dinger1986
3a848bc037 Update views.py 2024-03-20 20:52:31 +00:00
wh1te909
0528ecb454 fix iter logic 2024-03-18 09:12:18 +00:00
wh1te909
141835593c ensure email always verified 2024-03-16 09:03:20 +00:00
wh1te909
3d06200368 update deno 2024-03-16 09:02:54 +00:00
wh1te909
729bef9a77 update reqs 2024-03-15 07:53:28 +00:00
wh1te909
94f33bd642 force sync in hosted 2024-03-13 02:00:54 +00:00
wh1te909
7e010cdbca nodesource added their installation scripts back 2024-03-13 01:06:07 +00:00
wh1te909
8887bcd941 disable auto login no longer needed with mesh sync 2024-03-12 05:26:40 +00:00
wh1te909
56aeeee04c add stdout 2024-03-12 05:22:32 +00:00
wh1te909
98eb3c7287 fix mgmt commands 2024-03-11 20:27:12 +00:00
wh1te909
6819c1989b move to mgmt commands 2024-03-11 19:05:20 +00:00
wh1te909
7e01dd3e97 change to run ever 2 hours 2024-03-11 16:49:02 +00:00
wh1te909
ea4f2c3de8 break sync into chunks 2024-03-10 22:29:00 +00:00
wh1te909
b2f63b8761 should have been 10mb default 2024-03-10 21:26:12 +00:00
wh1te909
65865101ce handle large requests 2024-03-10 02:05:38 +00:00
wh1te909
c3637afe69 max websocket max size customizable 2024-03-10 00:14:04 +00:00
wh1te909
ab543ddf0c add option to use own cert during install 2024-03-09 19:21:21 +00:00
wh1te909
80595e76e7 cleanup orphaned checkhistory results fixes #1789 2024-03-09 08:31:25 +00:00
wh1te909
d49e68737a update reqs 2024-03-09 08:30:53 +00:00
wh1te909
712e15ba80 just try returning str for all 2024-03-05 20:45:34 +00:00
wh1te909
986160e667 also allow accessing floats 2024-03-05 20:27:32 +00:00
wh1te909
1ae4e23db1 more sync mesh fixes 2024-03-04 10:05:45 +00:00
wh1te909
bad646141c rework mesh sync #182 2024-03-03 11:37:24 +00:00
wh1te909
7911235b68 fix serializer/tests 2024-02-29 07:53:05 +00:00
wh1te909
12dee4d14d py 3.11.8 and update reqs 2024-02-29 02:09:33 +00:00
wh1te909
cba841beb8 don't show in hosted 2024-02-29 02:07:53 +00:00
wh1te909
4e3ebf7078 remove from local settings 2024-02-29 01:56:19 +00:00
wh1te909
1c34969f64 fix redis 2024-02-25 23:42:08 +00:00
wh1te909
dc26cabacd make sure to cleanup if sync is toggled off 2024-02-25 07:17:54 +00:00
wh1te909
a7bffcd471 install by default 2024-02-25 06:41:40 +00:00
wh1te909
6ae56ac2cc increase max ws response size for instances with large agent counts 2024-02-25 02:18:40 +00:00
wh1te909
03c087020c exclude inactive users from the sync 2024-02-25 02:17:07 +00:00
wh1te909
857a1ab9c4 handle old node and add mgmt command for sync mesh 2024-02-24 23:19:03 +00:00
wh1te909
64d9530e13 fixes to sync mesh #182 2024-02-24 07:53:05 +00:00
wh1te909
5dac1efc30 sync mesh users/perms with trmm #182 2024-02-23 21:17:24 +00:00
wh1te909
18bc74bc96 match more flags 2024-02-23 18:56:23 +00:00
wh1te909
f64efc63f8 allow access to jsonfields in script vars 2024-02-23 02:48:32 +00:00
Dan
e84b897991 Merge pull request #1766 from conlan0/develop
Add agent shutdown endpoint and nats
2024-02-22 13:48:03 -08:00
wh1te909
519647ef93 exit on install if existing 2024-02-22 21:25:45 +00:00
wh1te909
f694fe00e4 allow getting pk/id 2024-02-22 21:18:50 +00:00
wh1te909
0b951f27b6 add defaults 2024-02-22 21:18:06 +00:00
wh1te909
8aa082c9df exit restore if existing install 2024-02-22 21:17:05 +00:00
wh1te909
f2c5d47bd8 add migration 2024-02-22 04:52:05 +00:00
Dan
ac7642cc15 Merge pull request #1676 from NiceGuyIT/feature/cross-platform-scripting
[Feature] Add cross site scripting
2024-02-21 20:48:24 -08:00
conlan0
8f34865dab Add shutdown url 2024-02-21 21:29:53 -05:00
conlan0
c762d12a40 Add shutdown class 2024-02-21 21:29:29 -05:00
wh1te909
fe1e71dc07 update vscode settings 2024-02-21 17:34:44 +00:00
wh1te909
85b0350ed4 update reqs 2024-02-21 17:34:32 +00:00
wh1te909
a980491455 update reqs 2024-02-20 22:28:10 +00:00
wh1te909
5798c0ccaa wrong branch 2024-02-20 22:22:16 +00:00
wh1te909
742f49ca1f update reqs 2024-02-19 06:06:57 +00:00
wh1te909
5560fc805b switch to bigint for pk 2024-02-19 06:01:01 +00:00
wh1te909
9d4f8a4e8c update reqs 2024-02-09 17:39:55 +00:00
wh1te909
b4d25d6285 revert, prevent recursion 2024-02-09 17:31:59 +00:00
wh1te909
a504a376bd avoid db call and add test 2024-02-09 16:59:50 +00:00
wh1te909
f61ea6e90a fix super calls 2024-02-09 16:58:59 +00:00
wh1te909
b2651df36f wrong model, and don't need to pass class 2024-02-09 16:49:52 +00:00
wh1te909
b56c086841 back to dev [skip ci] 2024-02-06 06:46:32 +00:00
wh1te909
4343478c7b bump version 2024-02-06 06:41:51 +00:00
wh1te909
94649cbfc7 handle localhost bind issues on some instances 2024-02-06 06:19:57 +00:00
wh1te909
fb83f84d84 back to dev [skip ci] 2024-02-06 04:20:28 +00:00
wh1te909
84c2632d40 bump versions 2024-02-05 09:06:15 +00:00
wh1te909
3417ee25eb update reqs 2024-02-03 06:15:44 +00:00
wh1te909
6ada30102c bump web ver [skip ci] 2024-02-02 01:15:27 +00:00
wh1te909
ac86ca7266 forgot to add year 2024-02-01 17:15:47 +00:00
wh1te909
bb1d3edf71 make workers consistent with standard install [skip ci] 2024-01-30 19:05:17 +00:00
wh1te909
97b9253017 handle alert template when montype/site changes fixes #1733 2024-01-30 08:56:44 +00:00
wh1te909
971c2180c9 update mesh [skip ci] 2024-01-28 03:54:45 +00:00
wh1te909
f96dc6991e feat: hide custom fields in summary tab only closes #1745 2024-01-28 03:24:47 +00:00
wh1te909
6855493b2f feat: add serial number to linux/mac #1683 2024-01-27 02:54:26 +00:00
wh1te909
ff0d1f7c42 feat: show cpu cores/threads in summary tab closes #1715 2024-01-27 01:32:09 +00:00
wh1te909
3ae5824761 internal only now 2024-01-26 20:55:32 +00:00
wh1te909
702e865715 format 2024-01-26 20:55:08 +00:00
wh1te909
6bcf64c83f fix func 2024-01-26 19:35:33 +00:00
wh1te909
18b270c9d0 fixes to nats rework and add tests 2024-01-26 19:19:38 +00:00
wh1te909
783376acb0 node 20 2024-01-26 18:35:39 +00:00
wh1te909
81dab470d2 blacked 2024-01-26 07:38:52 +00:00
wh1te909
a12f0feb66 rework nats 2024-01-26 07:26:50 +00:00
wh1te909
d3c99d9c1c update bins 2024-01-26 07:09:00 +00:00
wh1te909
3eb3586c0f ioutil is deprecated 2024-01-26 07:08:18 +00:00
wh1te909
fdde16cf56 feat: add from name to email closes #1726 2024-01-26 00:39:45 +00:00
wh1te909
b8bc5596fd feat: add time and ret code to script test #1713 2024-01-26 00:03:11 +00:00
wh1te909
47842a79c7 update reqs 2024-01-26 00:02:08 +00:00
wh1te909
391d5bc386 update nats-api 2024-01-21 03:42:02 +00:00
wh1te909
ba8561e357 update reqs 2024-01-21 03:17:13 +00:00
wh1te909
6aa1170cef fix for redis 5 2024-01-16 03:18:10 +00:00
wh1te909
6d4363e685 prep for celery 6 2024-01-16 02:53:45 +00:00
wh1te909
6b02b1e1e8 update reqs 2024-01-15 03:16:58 +00:00
wh1te909
58a5550989 debian repo issue #1721 2023-12-30 01:20:40 +00:00
wh1te909
f225c5cf9a nodesource no longer installs npm on node 18 2023-12-29 05:24:43 +00:00
Dan
5c62c7992c Merge pull request #1717 from alexcmatm/patch-1
Add gmail relay handling for emails
2023-12-27 17:03:30 -08:00
wh1te909
70b8f09ccb fix logic 2023-12-28 00:50:24 +00:00
Alexandra Stone
abfeafa026 Add gmail relay handling for emails
This change adds ehlo and starttls when the server hostname is smtp-relay.gmail.com and authentication is disabled.
Just sending the message and quitting isn't enough for gmail specifically.
2023-12-27 14:07:57 -07:00
wh1te909
aa029b005f back to dev [skip ci] 2023-12-24 01:36:38 +00:00
wh1te909
b753d2ca1e bump agent version 2023-12-24 01:10:59 +00:00
wh1te909
1e50329c9e bump version 2023-12-22 17:40:36 +00:00
wh1te909
4942811694 update reqs 2023-12-22 17:38:16 +00:00
wh1te909
59e37e0ccb also make sudo changes to restore 2023-12-22 17:38:04 +00:00
Dan
20aa86d8a9 Merge pull request #1712 from Tenebor/ubuntu-psql-fix
Ubuntu psql fix and cert folder chown
2023-12-21 12:44:51 -08:00
Tenebor
64c5ab7042 fix: chown on ssl cert
Exec chown on /etc/letsencrypt only in case of secure installation.
2023-12-21 20:51:16 +01:00
Tenebor
d210f5171a fix: use interactive shell to run psql
Using ubuntu "sudo -u postgres psql" returns a permission error
2023-12-21 16:47:39 +01:00
wh1te909
c7eee0f14d update reqs 2023-12-11 19:27:28 +00:00
wh1te909
221753b62e update hash_bucket_size 2023-12-11 18:36:08 +00:00
wh1te909
d213e4d37f vscode 2023-12-11 18:35:21 +00:00
wh1te909
f8695f21d3 back to dev 2023-12-11 18:34:15 +00:00
David Randall
4ac1030289 Fix: Unused import
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-12-10 18:41:30 -05:00
David Randall
93c7117319 Fix: Whitespace formatting 2023-12-10 18:06:09 -05:00
David Randall
974afd92ce Merge remote-tracking branch 'upstream/develop' into feature/cross-platform-scripting 2023-12-05 19:32:55 -05:00
wh1te909
be847baaed bump versions 2023-12-04 21:37:56 +00:00
wh1te909
2b819e6751 clarify wording 2023-12-04 19:55:47 +00:00
wh1te909
66247cc005 add version check for onboarding tasks 2023-12-04 18:41:19 +00:00
David Randall
eafd38d3f2 Merge branch 'feature/cross-platform-scripting' of github.com:NiceGuyIT/tacticalrmm into feature/cross-platform-scripting 2023-12-03 23:20:00 -05:00
David Randall
c4e590e7a0 Add: Server variables are opt-out by default
- Pull the Nushell and Deno versions from the server.
- Support downloading Nushell and Deno from a url (not GitHUb).
- Add support for nu config.nu and env.nu files.
- Add support for default Deno permissions.
2023-12-03 23:19:43 -05:00
wh1te909
b92a594114 doesn't support go 1.21 yet, removing for now 2023-12-01 20:26:02 +00:00
wh1te909
9dfb16f6b8 update ci 2023-12-01 20:07:04 +00:00
wh1te909
4b74866d85 update bins 2023-12-01 19:50:07 +00:00
wh1te909
f532c85247 update natsapi 2023-12-01 19:49:10 +00:00
wh1te909
b1cc00c1bc dynamically import custom filters 2023-12-01 19:25:36 +00:00
wh1te909
5696aa49d5 update reqs 2023-12-01 19:24:54 +00:00
wh1te909
e12dc936fd fix tests 2023-11-27 21:58:27 +00:00
sadnub
6d39a7fb75 add onboarding task and revert runonce 2023-11-22 23:42:45 -05:00
sadnub
c87c312349 set insecure nats mode for docker dev 2023-11-22 23:42:45 -05:00
wh1te909
e9c1886cdd bump webver [skip ci] 2023-11-23 00:52:15 +00:00
wh1te909
13e4b1a781 increase timeout and change logger 2023-11-22 23:14:31 +00:00
wh1te909
3766fb14ef increase timeout 2023-11-22 22:55:35 +00:00
sadnub
29ee50e38b fix flake8 2023-11-22 16:52:48 -05:00
sadnub
d1ab69dc31 change nats task payload for run once task change 2023-11-22 16:47:22 -05:00
wh1te909
e3c4a54193 small fixes 2023-11-22 10:23:54 +00:00
wh1te909
2abbd2e3cf switch logger 2023-11-22 10:13:43 +00:00
wh1te909
f9387a5851 update reqs 2023-11-21 19:50:22 +00:00
wh1te909
7a9fb74b54 remove log 2023-11-21 19:49:27 +00:00
David Randall
d754f3dd4c Merge branch 'develop' into feature/cross-platform-scripting 2023-11-18 20:08:49 -05:00
David Randall
f54fc9e990 Fix: Linux uninstall script
Signed-off-by: David Randall <David@NiceGuyIT.biz>
2023-11-18 19:51:59 -05:00
wh1te909
8952095da5 fix payload and skip posix 2023-11-15 07:56:10 +00:00
wh1te909
597240d501 fixes to async rework 2023-11-15 02:53:10 +00:00
wh1te909
7377906d02 update reqs 2023-11-14 23:46:46 +00:00
wh1te909
ce6da1bce3 async rework of sync scheduled tasks 2023-11-13 02:44:37 +00:00
David Randall
1bf8ff73f8 [Feature] Add cross site scripting 2023-11-12 15:10:18 -05:00
wh1te909
564aaaf3df rework agent uninstall perms fixes #1673 2023-11-09 20:01:42 +00:00
wh1te909
64ba69b2d0 fix sorted migrations 2023-11-09 19:59:49 +00:00
wh1te909
ce5ada42af django-ipware is deprecated, switch to python-ipware 2023-11-08 21:34:24 +00:00
wh1te909
1ce5973713 call task directly and remove note about debug log 2023-11-08 21:21:35 +00:00
wh1te909
b035b53092 remove pytz 2023-11-08 08:17:23 +00:00
sadnub
7d0e02358c fix json output with custom fields 2023-11-07 17:34:20 -05:00
sadnub
374ff0aeb5 increase max text for report template and base template name field 2023-11-07 17:34:20 -05:00
wh1te909
947a43111e back to dev [skip ci] 2023-11-07 18:56:34 +00:00
wh1te909
5fed81c27b bump versions 2023-11-07 17:19:35 +00:00
wh1te909
dce4f1a5ae update reqs 2023-11-07 17:19:23 +00:00
wh1te909
7e1fc32a1c forgot to bump version of backup script last update 2023-11-07 17:17:37 +00:00
sadnub
a69f14f504 add loop controls and expression extensions to jinja 2023-11-03 15:49:10 -04:00
wh1te909
931069458d add custom filter for local_ips and rework imports 2023-11-03 17:17:54 +00:00
wh1te909
a5259baab0 start adding support for custom jinja filters 2023-11-03 16:58:43 +00:00
wh1te909
8aaa27350d expose ZoneInfo to template 2023-11-03 16:22:11 +00:00
wh1te909
ac74d2b7c2 remove debug stuff 2023-11-02 21:25:24 +00:00
sadnub
2b316aeae9 expose datetime and re modules to template 2023-11-02 16:37:23 -04:00
wh1te909
aff96a45c6 back to dev [skip ci] 2023-11-01 23:31:26 +00:00
wh1te909
e2f524ce7a this is a major version duh [skip ci] 2023-11-01 19:30:25 +00:00
wh1te909
a58b054292 bump version 2023-11-01 19:00:53 +00:00
wh1te909
ea9e5be1fc bump script versions [skip ci] 2023-10-31 18:32:01 +00:00
wh1te909
760ea4727c update reqs 2023-10-31 18:14:51 +00:00
wh1te909
f57f2e53a0 better scaling 2023-10-30 00:09:14 +00:00
Dan
136a393a17 Merge pull request #1663 from lcsnetworks/docker_allow_custom_uwsgi_configs
Add option to skip uWSGI config in Docker environments
2023-10-29 16:22:41 -07:00
wh1te909
8bbaab78b7 update markdown 2023-10-29 22:11:13 +00:00
wh1te909
067cd59637 daphne needed for tests 2023-10-29 21:46:21 +00:00
wh1te909
ce6ac7bf53 replace daphne with uvicorn 2023-10-29 21:38:33 +00:00
wh1te909
99271c4477 comment flaky test for now 2023-10-29 21:38:06 +00:00
wh1te909
156142ed58 bump web ver [skip ci] 2023-10-29 19:34:47 +00:00
wh1te909
4b5516c0eb update reqs 2023-10-29 19:01:55 +00:00
wh1te909
c3d8d2d240 change datetime 2023-10-29 18:54:13 +00:00
wh1te909
c29cf70025 back to uwsgi 2023-10-28 20:07:50 +00:00
wh1te909
6ebce55be3 update for weasyprint 2023-10-28 01:41:50 +00:00
sadnub
01c4a85bc0 move from uwsgi to gunicorn in docker. fix pulling dynamic web tar 2023-10-27 09:37:26 -04:00
sadnub
12d4206d84 update dockerfile image versions 2023-10-27 09:36:15 -04:00
wh1te909
946de18bea move import 2023-10-27 06:33:10 +00:00
wh1te909
904eb3538c fix grep 2023-10-27 06:32:14 +00:00
wh1te909
c851ca9328 switch to gunicorn due to issues with uwsgi and reporting 2023-10-27 02:22:16 +00:00
wh1te909
0ac415ad83 lower max requests per worker 2023-10-26 06:11:14 +00:00
sadnub
b3ba34d980 update docker to support reporting 2023-10-25 23:30:20 -04:00
wh1te909
52740271d9 nginx updates and python 3.11.6 2023-10-26 01:08:52 +00:00
wh1te909
c2e444249a add helper 2023-10-25 20:21:06 +00:00
wh1te909
97310b091e update reqs 2023-10-25 15:56:10 +00:00
Dan
4dda9cc3a1 Merge pull request #1086 from sadnub/feat-reports
Reporting Feature
2023-10-24 18:24:24 -07:00
wh1te909
a0538b57e2 more refurb 2023-10-25 01:10:56 +00:00
wh1te909
d7f394eeb6 refurb 2023-10-25 00:38:07 +00:00
wh1te909
1bc4571d42 isort 2023-10-25 00:18:54 +00:00
wh1te909
22e878502a return error 2023-10-25 00:12:18 +00:00
wh1te909
03c1b6e30c update repo 2023-10-24 22:29:10 +00:00
Joel DeTeves
374a434d98 Add option to skip uWSGI config in Docker environments 2023-10-24 14:35:16 -07:00
wh1te909
f1e85ff0e9 update license 2023-10-24 05:34:00 +00:00
wh1te909
6b010f76ea add download 2023-10-24 05:18:47 +00:00
wh1te909
0c3e9f7824 update reqs 2023-10-23 23:32:17 +00:00
wh1te909
ccca578622 test with superuser 2023-10-20 22:47:26 +00:00
wh1te909
56f7c18550 add reporting perms 2023-10-20 22:24:07 +00:00
wh1te909
d438f71bbb add assets 2023-10-20 20:25:43 +00:00
wh1te909
ca5df24b6d add pending actions to reporting 2023-10-18 22:38:22 +00:00
sadnub
4a6c2d106f fix and add some tests for csv data queries 2023-10-15 18:26:02 -04:00
sadnub
cd25a9568b remove reporting user and configuration 2023-10-15 12:24:50 -04:00
sadnub
f78a787adb initial wip shared report templates 2023-10-14 23:08:59 -04:00
sadnub
dc520fa77c allow overwriting templates on name conflicts. Remove 'make_dataqueries_inline' 2023-10-14 20:51:36 -04:00
sadnub
8f06d4dd9d add csv option to data source 2023-10-14 19:49:32 -04:00
sadnub
a7047183e1 use django timezone to get current time 2023-10-13 18:07:01 -04:00
sadnub
c0b145da24 add yaml extension to get the current date and also subtract/add time 2023-10-13 17:43:00 -04:00
sadnub
52e7fd6f72 add plain text template type 2023-10-05 12:59:42 -04:00
wh1te909
4bbe22b1c7 small fixes 2023-10-04 16:51:26 +00:00
sadnub
4747ffc08b fix dockerfile in dev and remove chart rendering if data query is empty 2023-10-04 11:01:28 -04:00
wh1te909
9d07131fd6 remove duplicate entry 2023-10-03 22:51:47 +00:00
wh1te909
721126d3db function renamed 2023-10-03 20:15:57 +00:00
wh1te909
2b65f5e3dc update reqs 2023-10-03 20:13:56 +00:00
Dan
57f10cf387 using psycopg3 now 2023-10-03 12:45:11 -07:00
wh1te909
f60c8a173b add redis ping to monitoring endpoint 2023-10-02 17:14:13 +00:00
Dan
857cd690be Merge pull request #1643 from bc24fl/develop
Added optional web port override settings
2023-10-02 10:05:31 -07:00
sadnub
a407b60152 fix report preview 2023-10-02 12:32:02 -04:00
sadnub
2c3c55adc0 fix test 2023-10-02 12:32:02 -04:00
sadnub
f586b4da17 fix flake8 errors 2023-10-02 12:32:02 -04:00
sadnub
0b7eb41049 finish up tests and some code rework 2023-10-02 12:32:02 -04:00
sadnub
bd19c4e2bd add json support for data sources 2023-10-02 12:32:02 -04:00
sadnub
e8a73087d6 fix custom fields 2023-10-02 12:32:02 -04:00
sadnub
dde4fd82f4 update json schema and add custom fields to data sources 2023-10-02 12:32:02 -04:00
wh1te909
0420c393f3 fix grep 2023-10-02 12:32:02 -04:00
wh1te909
c88dac6437 fix mkdir 2023-10-02 12:32:02 -04:00
wh1te909
cd450f55e2 fix command 2023-10-02 12:32:02 -04:00
wh1te909
190ee7f9fb add query schema view 2023-10-02 12:32:02 -04:00
wh1te909
fd057300cc black and isort 2023-10-02 12:32:02 -04:00
wh1te909
56791089c1 generate must come before collectstatic 2023-10-02 12:32:02 -04:00
wh1te909
e91cb32ca3 redo migrations and fix hardcoded url 2023-10-02 12:32:02 -04:00
wh1te909
9ab20df8d2 update pandas 2023-10-02 12:32:02 -04:00
sadnub
050350501c fix some issues and improve report import/export 2023-10-02 12:32:02 -04:00
sadnub
d078acdf73 fix error messages and resolve data frames in charts 2023-10-02 12:32:02 -04:00
sadnub
b786a688b5 fix up json schema with new options 2023-10-02 12:32:02 -04:00
sadnub
6b7fe40dd2 limited any variable analysis queries to 1 result 2023-10-02 12:32:02 -04:00
sadnub
6f6c422246 add variables length to sidebar 2023-10-02 12:32:02 -04:00
sadnub
d371ff4f60 variables introspection 2023-10-02 12:32:02 -04:00
sadnub
d1a8348912 fix report preview without debug 2023-10-02 12:32:02 -04:00
sadnub
be956d3cb6 allow traversing relations in debug view 2023-10-02 12:32:02 -04:00
sadnub
ba5beb81b7 some fixes 2023-10-02 12:32:02 -04:00
sadnub
106bbe5244 add debug mode for preview. add template import/export. other fixes 2023-10-02 12:32:02 -04:00
sadnub
f39d0e7ba2 send template errors to frontend 2023-10-02 12:32:02 -04:00
sadnub
de7a1fd8ff more improvements 2023-10-02 12:32:02 -04:00
sadnub
1ac2b25876 send error messages to UI when generating reports 2023-10-02 12:32:02 -04:00
sadnub
9e014d1371 put yaml data source in variables to support variables 2023-10-02 12:32:02 -04:00
sadnub
93b274a113 fix the variable replacement in variables 2023-10-02 12:32:02 -04:00
sadnub
474c7ae873 Update config.py 2023-10-02 12:32:02 -04:00
sadnub
31690d4cad charts 2023-10-02 12:32:02 -04:00
sadnub
bbfc7e7e49 create DB user in mgmt command for docker build 2023-10-02 12:32:02 -04:00
sadnub
1c0aa55e7a more improvements 2023-10-02 12:32:02 -04:00
sadnub
29778ca19e fix report assets over https and add an endpoint for asset selection 2023-10-02 12:32:02 -04:00
sadnub
9e87318cc5 get jinja templates 100% compatible with reporting 2023-10-02 12:32:02 -04:00
sadnub
c645be6b70 fix data lookups 2023-10-02 12:32:02 -04:00
sadnub
57fc5ac088 docker and install script fixes 2023-10-02 12:32:02 -04:00
sadnub
924774f52a fix report asset path 2023-10-02 12:32:02 -04:00
sadnub
446a7a0844 fix url 2023-10-02 12:32:02 -04:00
sadnub
5cfeed76d0 fix 2023-10-02 12:32:02 -04:00
sadnub
de419319d8 fix branch 2023-10-02 12:32:02 -04:00
sadnub
7a3d36899b fix permissions 2023-10-02 12:32:02 -04:00
sadnub
f5dbb363f4 install script fixes 2023-10-02 12:32:00 -04:00
sadnub
2bbc59a212 fix install/update script 2023-10-02 12:31:31 -04:00
sadnub
3403d76aae reporting wip 2023-10-02 12:31:29 -04:00
bc24fl
58399cedb6 Update docker-compose.yml
Added optional web port override settings for those who prefer to use tactical behind a proxy.
2023-10-02 00:46:18 -04:00
bc24fl
9bca7e9e11 Update .env.example
Added optional web port override settings for those who prefer to use tactical behind a proxy.
2023-10-02 00:43:25 -04:00
wh1te909
3a61430e44 back to dev [skip ci] 2023-10-02 01:58:49 +00:00
wh1te909
a2e996b550 bump version 2023-10-02 01:49:57 +00:00
wh1te909
cfc1c31050 rename setting 2023-10-02 00:12:39 +00:00
wh1te909
45106bf6f9 remove apt-key [skip ci] 2023-10-01 15:59:14 +00:00
wh1te909
6e3cfe491b update chocos fixes #1538 2023-09-30 23:33:52 +00:00
wh1te909
12f2158afd feat: make env vars expand custom fields closes #1609 2023-09-30 22:05:52 +00:00
wh1te909
6d78773c55 bump web ver 2023-09-30 22:02:49 +00:00
wh1te909
43a62d4eb6 update reqs 2023-09-30 20:53:08 +00:00
wh1te909
cc08dfda96 make beta api optional 2023-09-30 19:33:22 +00:00
Dan
622e33588e Merge pull request #1636 from redanthrax/beta-api
beta api clients, agents, sites with paging
2023-09-30 12:16:54 -07:00
wh1te909
67980b58a0 fix docker 2023-09-29 08:29:59 +00:00
redanthrax
027e444955 beta api clients, agents, sites with paging
formatted with black

django filter requirement

updated beta api, restricted to get and put
2023-09-27 14:36:14 -07:00
wh1te909
d838750389 update reqs 2023-09-27 17:25:56 +00:00
wh1te909
71d8bd5266 update reqs 2023-09-20 03:24:40 +00:00
wh1te909
ec4ae24bbd add note about x forwarding 2023-09-20 03:21:15 +00:00
wh1te909
1128149359 fix docker mesh npm install 2023-09-20 03:20:15 +00:00
wh1te909
bdfc6634ec fix tempdir cleanup [skip ci] 2023-09-13 20:29:33 +00:00
wh1te909
ca4d19667b update reqs 2023-09-11 02:43:50 +00:00
wh1te909
c71aa7baa7 back to dev 2023-09-11 02:40:28 +00:00
wh1te909
9dc0b24399 bump versions 2023-09-01 23:48:31 +00:00
wh1te909
747954e6fb wording 2023-09-01 22:03:51 +00:00
wh1te909
274f4f227e node install script is deprecated [skip ci] 2023-09-01 21:12:45 +00:00
wh1te909
92197d8d49 change to localhost 2023-09-01 18:56:09 +00:00
wh1te909
aee06920eb more self signed stuff 2023-09-01 18:55:34 +00:00
wh1te909
5111b17d3c bump web ver [skip ci] 2023-08-30 04:29:36 +00:00
wh1te909
2849d8f45d update scripts for self signed 2023-08-29 23:53:19 +00:00
wh1te909
bac60d9bd4 feat: reset all checks status closes amidaware/tacticalrmm#1615 2023-08-29 20:36:20 +00:00
wh1te909
9c797162f4 only Manual is supported in insecure mode 2023-08-29 20:33:58 +00:00
wh1te909
09d184e2f8 update installers 2023-08-25 18:25:09 +00:00
wh1te909
7bca618906 allow self-signed certs 2023-08-24 21:40:51 +00:00
wh1te909
67607103e9 back to dev [skip ci] 2023-08-24 21:05:50 +00:00
wh1te909
b42f2ffe33 bump version [skip ci] 2023-08-18 04:29:41 +00:00
wh1te909
30a3f185ef fix npm #1604 [skip ci] 2023-08-18 04:28:58 +00:00
wh1te909
83b9d13ec9 bump version [skip ci] 2023-08-14 20:57:14 +00:00
wh1te909
cee7896c37 back to dev [skip ci] 2023-08-14 17:06:40 +00:00
wh1te909
b472f3644e bump versions 2023-08-14 16:42:32 +00:00
wh1te909
5d8ea837c8 fix posix restart 2023-08-12 00:28:20 +00:00
wh1te909
82de6bc849 syntax fix [skip ci] 2023-08-11 23:05:14 +00:00
wh1te909
cb4bc68c48 fix syntax [skip ci] 2023-08-11 22:07:59 +00:00
wh1te909
3ce6b38247 bump dev vers [skip ci] 2023-08-11 07:08:48 +00:00
wh1te909
716c0fe979 handle cloud init hosts file 2023-08-11 05:14:43 +00:00
wh1te909
c993790b7a bump web ver [skip ci] 2023-08-06 23:08:35 +00:00
wh1te909
aa32286531 update reqs 2023-08-06 22:31:40 +00:00
wh1te909
6f94abde00 fix alert filtering fixes #1572 2023-07-30 20:05:34 +00:00
wh1te909
fa19538c9d handle custom certs in backup/restore 2023-07-30 07:14:44 +00:00
wh1te909
84c858b878 fix issuer name 2023-07-30 07:12:51 +00:00
wh1te909
865de142d4 update reqs 2023-07-30 07:11:33 +00:00
wh1te909
9118162553 fix duplicate agent customfields 2023-07-18 22:23:34 +00:00
wh1te909
f4fc6ee9b4 update nats 2023-07-18 22:22:19 +00:00
wh1te909
108c38d57b update reqs 2023-07-18 22:20:38 +00:00
wh1te909
a1d73eb830 noexec 2023-07-18 22:10:29 +00:00
wh1te909
997906a610 formatting 2023-07-18 22:06:36 +00:00
wh1te909
b6e5d120d3 mongo check [skip ci] 2023-07-11 01:06:45 +00:00
wh1te909
d469d0b435 format [skip ci] 2023-07-11 01:05:10 +00:00
Dan
e9f823e000 Merge pull request #1560 from dinger1986/develop
change script to work with debian 12
2023-07-10 17:58:02 -07:00
dinger1986
d7fb76ba74 Update troubleshoot_server.sh 2023-07-10 23:35:57 +01:00
dinger1986
b7dde1a0d9 Merge branch 'amidaware:develop' into develop 2023-07-10 23:06:41 +01:00
dinger1986
15095d8c23 Update troubleshoot_server.sh 2023-07-10 10:13:06 +01:00
wh1te909
dfbebc7606 testing psycopg3 2023-07-09 07:04:38 +00:00
wh1te909
895309d93d pg 15 for ci 2023-07-09 07:03:48 +00:00
wh1te909
bcf50e821a update ansible for 0.16.0 2023-07-07 09:07:43 +00:00
wh1te909
30195800dd handle new dir 2023-07-07 03:59:48 +00:00
wh1te909
6532b0f149 back to dev 2023-07-07 03:58:36 +00:00
sadnub
5e108e4057 fix dockerfile 2023-07-05 21:16:43 -04:00
Dan
c2b2f4d222 Merge pull request #1550 from dinger1986/develop
changed find and delete of old backups
2023-07-05 17:49:12 -07:00
dinger1986
bc4329ad21 Update backup.sh 2023-07-05 22:38:50 +01:00
dinger1986
aec6d1b2f6 Update backup.sh 2023-07-05 22:38:30 +01:00
wh1te909
6fe4c5a2ed bump versions 2023-07-05 02:03:34 +00:00
wh1te909
4abc8e41d8 only chown if exists 2023-07-05 02:02:58 +00:00
wh1te909
af694f1ce9 arm64/deb12/ubuntu22 support, remove mongo, postgres 15 and node 18 2023-07-04 08:53:06 +00:00
wh1te909
7c3a5fcb83 update reqs 2023-07-03 23:35:45 +00:00
wh1te909
57f64b18c6 bump web ver [skip ci] 2023-06-30 20:34:12 +00:00
wh1te909
4cccc7c2f8 fix escape error 2023-06-27 23:00:12 +00:00
wh1te909
903a2d6a6e flaky test 2023-06-25 02:16:19 +00:00
wh1te909
34c674487a update reqs 2023-06-24 22:20:59 +00:00
Dan
d15a8c5af3 Merge pull request #1543 from dinger1986/develop
Update troubleshoot_server.sh
2023-06-23 20:23:51 -07:00
dinger1986
3e0dec9383 Update troubleshoot_server.sh 2023-06-24 00:02:41 +01:00
wh1te909
8b810aad81 add arm64 bin [skip ci] 2023-06-19 06:31:50 +00:00
wh1te909
e676bcb4f4 update reqs 2023-06-19 05:44:00 +00:00
wh1te909
a7aed77764 python 3.11.4 2023-06-19 05:29:10 +00:00
wh1te909
88875c0257 update reqs 2023-06-19 05:25:52 +00:00
wh1te909
f711a0c91a update reqs 2023-06-05 05:40:36 +00:00
wh1te909
d8a076cc6e update demo 2023-06-04 01:59:46 +00:00
wh1te909
c900831ee9 back to dev 2023-06-04 01:59:25 +00:00
wh1te909
ae5d0b1d81 bump versions 2023-05-30 23:42:49 +00:00
wh1te909
cd5e87be34 update reqs 2023-05-30 18:33:31 +00:00
wh1te909
3e967f58d2 ansible fixes [skip ci] 2023-05-29 07:51:16 +00:00
wh1te909
1ea005ba7e add cert expiring soon indicator #722 2023-05-27 23:34:51 +00:00
wh1te909
092772ba90 add wake-on-lan closes #1180 2023-05-27 00:45:30 +00:00
wh1te909
b959854a76 add serial number to search closes #1355 2023-05-26 22:55:44 +00:00
wh1te909
8ccb1ebe4f make cmd placeholder text customizable amidaware/tacticalrmm-web#5 2023-05-26 22:16:26 +00:00
wh1te909
91b3be6467 update reqs 2023-05-26 21:29:19 +00:00
wh1te909
d79d5feacc update requests 2023-05-25 20:56:04 +00:00
wh1te909
5cc78ef9d5 allow customizing dashboard colors #1514 2023-05-25 20:41:06 +00:00
wh1te909
8639cd5a72 back to django 4.1 2023-05-25 20:36:20 +00:00
wh1te909
021ddc17e7 remove mypy 2023-05-25 20:35:35 +00:00
wh1te909
ee47b8d004 update nats server 2023-05-23 04:54:01 +00:00
wh1te909
55d267c935 remove ignore 2023-05-23 04:48:29 +00:00
Dan
0fd0b9128d Merge pull request #1511 from dinger1986/develop
Updates to the Update script and backup script
2023-05-18 22:43:59 -07:00
wh1te909
d9cf505b50 change default to mixed closes #1513 2023-05-17 07:13:09 +00:00
wh1te909
6079332dda remove redundant ws close 2023-05-17 07:07:52 +00:00
wh1te909
929ec20365 remove deprecated django func 2023-05-14 06:30:25 +00:00
wh1te909
d0cad3055f comment flaky test for now 2023-05-14 06:22:00 +00:00
wh1te909
4974a13bc0 test django 4.2 2023-05-14 05:50:36 +00:00
wh1te909
bd048df225 update demo 2023-05-14 05:47:50 +00:00
dinger1986
ed83cbd574 Update update.sh 2023-05-11 20:02:25 +01:00
dinger1986
7230207853 Update backup.sh 2023-05-11 20:00:49 +01:00
dinger1986
1ead8a72ab Update update.sh 2023-05-11 19:59:39 +01:00
dinger1986
36a2e9d931 Update backup.sh 2023-05-11 19:58:29 +01:00
dinger1986
0f147a5518 Update backup.sh 2023-05-11 19:54:07 +01:00
dinger1986
fce511a18b Update backup.sh 2023-05-11 19:45:41 +01:00
wh1te909
64bb61b009 back to dev [skip ci] 2023-05-11 02:29:41 +00:00
wh1te909
4c6f829c92 bump versions 2023-05-11 02:16:45 +00:00
wh1te909
8c5cdd2acb back to dev [skip ci] 2023-05-10 20:04:26 +00:00
wh1te909
3800f19966 bump versions [skip ci] 2023-05-10 19:56:20 +00:00
wh1te909
7336f84a4b update reqs 2023-05-08 22:01:45 +00:00
wh1te909
7bf4a5b2b5 begin pytz removal 2023-05-08 21:12:08 +00:00
wh1te909
43a7b97218 update reqs 2023-05-07 02:22:28 +00:00
wh1te909
9f95c57a09 fix timezone logic bug for run once tasks 2023-04-23 21:47:01 +00:00
wh1te909
8f6056ae66 remove deprecated package 2023-04-13 20:52:23 +00:00
wh1te909
9bcac6b10e improve superseded update detection fixes #647 fixes #820 2023-04-13 20:35:03 +00:00
wh1te909
86318e1b7d async rework of bulk script and more async refactor 2023-04-11 07:14:16 +00:00
wh1te909
a8a1458833 update demo 2023-04-11 06:57:13 +00:00
wh1te909
942c1e2dfe catch exception and code cleanup 2023-04-11 06:56:35 +00:00
sadnub
a6b6814eae Merge pull request #1479 from sadnub/develop
open ai integration
2023-04-10 19:06:14 -04:00
sadnub
0af95aa9b1 add error handling 2023-04-10 18:57:44 -04:00
sadnub
b4b9256867 open ai integration 2023-04-09 22:36:57 -04:00
wh1te909
a6f1281a98 back to dev [skip ci] 2023-04-09 04:52:00 +00:00
wh1te909
741c74e267 bump versions 2023-04-09 03:43:16 +00:00
wh1te909
3061dba5ed add prefetch 2023-04-07 22:29:35 +00:00
wh1te909
09f5f4027e fix import 2023-04-07 20:33:57 +00:00
wh1te909
925695fd56 python 3.11.3 2023-04-07 20:30:24 +00:00
wh1te909
3c758be856 update ansible go 2023-04-07 20:28:55 +00:00
wh1te909
569b76a7e3 bump webver 2023-04-07 20:25:23 +00:00
wh1te909
dca69eff9c update nats-api 2023-04-07 20:24:43 +00:00
wh1te909
6b8fedc675 try flaky test again 2023-04-07 20:23:36 +00:00
wh1te909
c42a379e7c update reqs 2023-04-07 20:22:18 +00:00
wh1te909
a40858adbf optimize query 2023-04-07 20:21:22 +00:00
wh1te909
19bc720bc9 fix script email results not saving output to history 2023-04-07 16:56:36 +00:00
wh1te909
bf79ca30bb optimize query 2023-04-07 16:55:29 +00:00
Dan
75454895e5 Merge pull request #1467 from Supermanu/bulk_delete_agents_hostname
Enable hostname filtering for bulk agents deletion
2023-04-06 20:16:56 -07:00
wh1te909
c81aa2d6fe set nats reply expiration 2023-04-07 02:32:41 +00:00
Supermanu
376f6369b8 Enable combination of filters for bulk agents deletion 2023-04-04 13:42:30 +02:00
wh1te909
b1e67a1ed3 fix lint 2023-04-04 06:07:59 +00:00
wh1te909
7393a30bd1 fix flaky test 2023-04-04 05:45:37 +00:00
Dan
c934065f8e Merge pull request #1468 from jpros/add-custom-fields-to-agents-route
Added agent's custom fields to table result
2023-04-03 22:30:20 -07:00
wh1te909
56124d2b50 add prefetch to view to avoid n+1 queries 2023-04-04 05:13:17 +00:00
wh1te909
e8a003ff8a update reqs 2023-04-04 04:55:54 +00:00
João Paulo Ros
4c789225b2 Added agent's custom fields to table result
This action is to enable search and summary in the dashboard view.
2023-03-30 11:44:15 -07:00
Supermanu
59dcdd5393 Enable hostname filtering for bulk delete agents 2023-03-30 12:21:48 +02:00
wh1te909
b28316a4f2 back to dev [skip ci] 2023-03-23 21:00:49 +00:00
wh1te909
b5eed69712 bump versions 2023-03-23 19:54:21 +00:00
wh1te909
b79aacb2a7 validate hours fixes #1461 2023-03-23 19:42:38 +00:00
wh1te909
8a2eb7b058 use older syntax for systems with older systemd like synology 2023-03-22 22:15:53 +00:00
wh1te909
7316d076a2 make wording more clear 2023-03-22 22:14:27 +00:00
wh1te909
479d3bcb40 bump web ver [skip ci] 2023-03-21 19:01:27 +00:00
wh1te909
f2358f1530 remove overwrite backup script #1363 [skip ci] 2023-03-21 18:43:26 +00:00
wh1te909
47d9e1b966 fix formatting 2023-03-21 05:57:24 +00:00
wh1te909
c53657d693 update reqs and python3.11 2023-03-20 01:58:54 +00:00
Dan
f19ce59e00 Merge pull request #1413 from dinger1986/develop
Update restore.sh
2023-03-14 15:04:21 -07:00
wh1te909
076f3e05d6 update ansible 2023-03-10 02:50:35 +00:00
wh1te909
7d017f9494 feat: bulk run checks by client or site 2023-03-10 00:19:58 +00:00
wh1te909
675de4e420 update reqs and nats-api 2023-03-10 00:18:33 +00:00
wh1te909
418a709c6c test with 3.11.2 2023-03-06 01:37:45 +00:00
wh1te909
1d7dd1b754 update reqs 2023-03-05 08:05:37 +00:00
Dan
3fa70d6d2b Merge pull request #1444 from silversword411/develop
tweaking mesh check error
2023-02-27 10:57:43 -08:00
silversword411
9c67f52161 tweaking mesh check error 2023-02-27 13:28:36 -05:00
wh1te909
9f2f23fa96 blacked 2023-02-15 00:21:57 +00:00
wh1te909
46d955691a update reqs 2023-02-15 00:15:44 +00:00
dinger1986
3f8800187d Update restore.sh 2023-01-24 22:38:39 +00:00
Dan
ebbe90dfa8 Merge pull request #1391 from dinger1986/develop
Changes to Backup
2023-01-20 12:52:42 -08:00
wh1te909
a0e1783e18 bump versions [skip ci] 2023-01-18 20:13:30 +00:00
wh1te909
fc83e11d8b add note about celery stopping 2023-01-18 20:13:06 +00:00
wh1te909
f43627b170 bump dev versions 2023-01-17 00:47:51 +00:00
wh1te909
8964441f44 async refactor of bulk cmd 2023-01-16 08:48:52 +00:00
wh1te909
cfd7a0c621 add more filtering 2023-01-16 08:47:51 +00:00
wh1te909
15a422873e handle exception 2023-01-16 08:45:55 +00:00
wh1te909
d1f5583cd7 cleanup 2023-01-16 08:44:43 +00:00
wh1te909
08f07c6f3e update reqs 2023-01-16 08:43:15 +00:00
Dan
35a08debc3 Merge pull request #1402 from lcsnetworks/mesh_pe_options
Add options to enable/disable Mesh Compression, WebRTC
2023-01-12 15:21:02 -08:00
Joel DeTeves
a3424c480f Add options to enable/disable Mesh Compression, WebRTC 2023-01-12 13:12:35 -08:00
wh1te909
118ced0a43 async rework of remove orphaned tasks 2023-01-11 00:31:56 +00:00
wh1te909
6d355ef0cd add ignore 2023-01-10 23:48:56 +00:00
wh1te909
a8aa5ac231 add todo note 2023-01-10 22:20:13 +00:00
wh1te909
df6bc0b3c9 refactor 2023-01-10 22:18:55 +00:00
wh1te909
6b965b765c add new endpoint 2023-01-10 22:12:27 +00:00
Dan
d7aea6b5ba Merge pull request #1397 from mollymaemilano/develop
Update views.py
2023-01-07 14:01:03 -08:00
mollymaemilano
1e9a46855d Update views.py 2023-01-06 12:27:00 -06:00
wh1te909
91e9c18110 fix tests 2023-01-04 08:34:50 +00:00
wh1te909
8ffa6088d7 fix db conn leak 2023-01-04 08:18:46 +00:00
wh1te909
52d2f8364f delete task after expiry date fixes #1367 2023-01-04 07:57:16 +00:00
dinger1986
1f679af6fa Update backup.sh 2023-01-01 01:06:41 +00:00
dinger1986
1ba92cdcd5 Update backup.sh 2022-12-31 23:41:32 +00:00
dinger1986
45c60ba5f5 Update backup.sh 2022-12-31 23:30:54 +00:00
dinger1986
d3eef45608 Update backup.sh 2022-12-31 23:25:46 +00:00
wh1te909
1960c113d4 add more locks 2022-12-31 00:34:51 +00:00
wh1te909
63d6b4a1c9 fix tests 2022-12-30 23:58:18 +00:00
wh1te909
9f47bb1252 fix policy tasks 2022-12-30 23:52:43 +00:00
wh1te909
df4fea31d0 adjust some random sleeps 2022-12-30 23:41:21 +00:00
wh1te909
98ef1484c8 rework task to use threading 2022-12-30 22:27:09 +00:00
wh1te909
c4ef9960b9 auto scale celery workers in docker 2022-12-30 21:26:41 +00:00
wh1te909
6b6f7744aa add clearing of celery locks to docker 2022-12-30 21:21:45 +00:00
wh1te909
9192fa0fe2 improve some account management commands 2022-12-30 21:15:32 +00:00
wh1te909
3c7c2dc1a5 implement celery locking and rework some tasks 2022-12-30 01:24:57 +00:00
wh1te909
5c176a1af0 beat needs to stop first 2022-12-30 00:53:09 +00:00
wh1te909
6d03a1cc76 update note about format 2022-12-28 19:31:05 +00:00
wh1te909
1cf10edef1 code cleanup 2022-12-28 19:06:50 +00:00
wh1te909
6a97c63bf4 no longer need this file 2022-12-28 19:03:25 +00:00
wh1te909
15f9612bfa revert redis for celery 2022-12-28 01:49:22 +00:00
wh1te909
9a7c90b194 only if powershell 2022-12-27 07:49:50 +00:00
wh1te909
91f2708a87 fix tests and handle custom fields #1345 2022-12-24 02:04:00 +00:00
wh1te909
7bf3ecd89d better fix for #1345 2022-12-24 01:01:08 +00:00
wh1te909
4768581631 fix tests 2022-12-24 00:22:01 +00:00
wh1te909
aa4cd10e13 fix for when args contain single quote #1345 2022-12-24 00:07:18 +00:00
wh1te909
34ae57e6fe bump versions 2022-12-21 19:59:23 +00:00
wh1te909
107c2b50e2 update middleware 2022-12-21 19:09:11 +00:00
wh1te909
a832765203 add packaging to reqs 2022-12-21 17:33:56 +00:00
wh1te909
977fee82b5 bump docker nats [skip ci] 2022-12-21 17:04:25 +00:00
wh1te909
8c74cbc1c6 test with 3.11.1 2022-12-21 03:53:44 +00:00
wh1te909
b38eec5039 update bin 2022-12-21 03:10:54 +00:00
wh1te909
6c20b932fa update nats and add some debug callbacks 2022-12-21 03:09:52 +00:00
wh1te909
deb24c638f allow self reset without user perms #1378 2022-12-20 23:20:47 +00:00
wh1te909
40fcdb4d28 update reqs 2022-12-20 23:18:06 +00:00
wh1te909
f3e44cf458 back to dev [skip ci] 2022-12-08 07:22:58 +00:00
wh1te909
483bf331fa bump version 2022-12-08 06:59:40 +00:00
wh1te909
9d62b4acdd use iterator instead of all in case large queryset 2022-12-08 06:59:02 +00:00
wh1te909
c9deef6e76 add a migration for old tasks 2022-12-08 05:34:41 +00:00
wh1te909
8ba6f8b0e1 fix keyerror for old tasks 2022-12-07 20:26:24 +00:00
wh1te909
448c59ea88 bump docker nats 2022-12-04 23:33:05 +00:00
wh1te909
91b858bf33 bump versions 2022-12-04 23:31:57 +00:00
wh1te909
c12bede980 update bin 2022-12-04 07:14:05 +00:00
wh1te909
71e9fa3d16 update name and deps 2022-12-04 07:11:01 +00:00
wh1te909
6800b9aaae fix mgmt command 2022-12-04 06:14:37 +00:00
wh1te909
77d44f25f9 create and log an agent history event for alert failure/resolved script runs 2022-12-04 02:11:49 +00:00
wh1te909
ab6227828b add env vars for script checks 2022-12-03 09:56:44 +00:00
wh1te909
719ba56c59 remove db hit 2022-12-03 09:55:37 +00:00
wh1te909
dacedf4018 add ram check 2022-12-03 08:14:53 +00:00
wh1te909
2526fa3c47 fix backup/restore when OS are different 2022-12-01 06:33:27 +00:00
wh1te909
7e2295c382 rework celery config 2022-12-01 00:22:09 +00:00
wh1te909
6ef02004ff update reqs 2022-11-30 23:56:18 +00:00
wh1te909
0e60d062e9 feat: env vars 2022-11-30 23:25:52 +00:00
wh1te909
80a94f97c4 add ws compression option 2022-11-30 23:25:52 +00:00
wh1te909
c18bc5fe67 switch to stringio 2022-11-30 23:25:52 +00:00
wh1te909
02b98a2429 don't call now twice 2022-11-30 23:25:52 +00:00
Dan
0383aeaa87 Merge pull request #1358 from styx-tdo/develop
Fix wrong service name
2022-11-30 12:49:25 -08:00
Spam Me
15a41d532e Fix wrong service name 2022-11-30 15:01:17 +01:00
wh1te909
0f49725789 update reqs 2022-11-22 19:13:44 +00:00
wh1te909
1db6733e66 add checkin config 2022-11-22 19:06:18 +00:00
wh1te909
0343ee4f6b fix mypy 2022-11-13 08:05:42 +00:00
wh1te909
2c37d2233a add flake8 2022-11-13 07:44:23 +00:00
wh1te909
0cb8ccfddd back to dev [skip ci] 2022-11-13 01:53:05 +00:00
wh1te909
35b1a39ed8 bump versions 2022-11-13 01:36:39 +00:00
wh1te909
61a577ba70 add arch check 2022-11-12 20:58:29 +00:00
wh1te909
a1e32584fa bump docker nats 2022-11-12 20:57:57 +00:00
wh1te909
28e0ee536d update reqs 2022-11-12 20:28:27 +00:00
wh1te909
9d64a9c038 update wheel 2022-11-08 21:01:16 +00:00
wh1te909
702ba969c2 revert caching of the check results. will refactor it and do another way 2022-11-08 21:00:49 +00:00
wh1te909
6dde8ee2b8 update reqs 2022-11-08 07:23:22 +00:00
wh1te909
018420310c code cleanup 2022-11-08 07:22:31 +00:00
wh1te909
6d49d34033 update go deps 2022-11-08 07:21:25 +00:00
wh1te909
1fbd403164 fix params 2022-11-08 07:16:32 +00:00
wh1te909
13f544d2be add more caching to speed up agent table loading 2022-11-03 07:35:01 +00:00
wh1te909
3c9e64de81 update reqs 2022-11-03 07:32:04 +00:00
Dan
5a9bafbc32 Merge pull request #1294 from Can-eh-dian11/develop
ability to bulk delete using client and site
2022-10-29 14:27:24 -07:00
wh1te909
b89d96b66f add python 3.11 to testing matrix 2022-10-28 19:16:17 +00:00
wh1te909
b7176191ac update reqs 2022-10-28 04:55:31 +00:00
wh1te909
453c5f47c2 just kidding 2022-10-28 04:43:28 +00:00
wh1te909
eea62e1263 fixed slow dashboard loading due to bad query 2022-10-28 01:02:53 +00:00
Scott MacDowall
4fb2a0f1ca Merge branch 'amidaware:develop' into develop 2022-10-25 23:02:02 -04:00
wh1te909
bf3c65778e bump versions [skip ci] 2022-10-25 22:10:50 +00:00
wh1te909
df7fe3e6b4 bump mesh [skip ci] 2022-10-25 21:40:44 +00:00
wh1te909
b657468b62 update uninstall for new path 2022-10-25 19:03:57 +00:00
wh1te909
4edc0058d3 update reqs 2022-10-25 06:32:51 +00:00
wh1te909
2c3b35293b bump versions 2022-10-25 06:32:38 +00:00
wh1te909
be0c9a4d46 add path 2022-10-25 05:59:14 +00:00
wh1te909
dd4140558e fix tests 2022-10-21 16:51:52 +00:00
wh1te909
71c2519b8e fix wording 2022-10-21 16:40:11 +00:00
wh1te909
badfc26aed fix fake agents script 2022-10-21 16:39:55 +00:00
wh1te909
b2bc3adb3d update demo 2022-10-20 19:03:37 +00:00
wh1te909
5ccf408fd6 back to dev [skip ci] 2022-10-19 23:14:45 +00:00
wh1te909
af16912541 bump versions [skip ci] 2022-10-19 22:50:59 +00:00
wh1te909
1bf9e2a5e6 update reqs 2022-10-19 06:50:01 +00:00
wh1te909
5a572651ff add token expired check 2022-10-19 06:45:53 +00:00
wh1te909
5a191e387f update tests 2022-10-19 04:02:21 +00:00
wh1te909
18f29f5790 update reqs 2022-10-18 19:54:48 +00:00
wh1te909
054a73e0f8 fix tests 2022-10-18 05:07:00 +00:00
wh1te909
14824db7b0 fix tests 2022-10-18 05:02:35 +00:00
wh1te909
721c48ea88 python 3.10.8 2022-10-18 04:54:04 +00:00
wh1te909
ed7bfcfb58 daphne/channels 4 2022-10-18 04:52:04 +00:00
wh1te909
773a40a126 bump docker nats 2022-10-18 04:50:48 +00:00
wh1te909
961252ef26 rework uwsgi conf 2022-10-18 00:23:10 +00:00
wh1te909
a2650f3c47 update setuptools 2022-10-18 00:21:11 +00:00
wh1te909
d71ee194e1 add optional nats monitoring 2022-10-18 00:12:57 +00:00
wh1te909
22e1a4cf41 update reqs 2022-10-14 07:41:16 +00:00
wh1te909
a50bf901d3 add check for wget fixes #1317 2022-10-14 07:39:27 +00:00
wh1te909
c9469635b5 remove unneeded chmod fixes #1307 2022-10-14 07:21:43 +00:00
Dan
36df3278e5 Merge pull request #1311 from dinger1986/develop
Update agent_linux.sh
2022-10-11 16:14:06 -07:00
dinger1986
cb2258aaa8 Update agent_linux.sh 2022-10-10 23:53:24 +01:00
wh1te909
0391d9eb7e update reqs 2022-10-10 17:07:00 +00:00
Dan
12698b4c20 Merge pull request #1310 from dinger1986/develop
Update agent_linux.sh
2022-10-10 10:01:50 -07:00
dinger1986
f7b9d459ab Update agent_linux.sh 2022-10-10 17:51:35 +01:00
wh1te909
65ab14e68b cleanup socket fixes #1210 2022-10-07 17:15:37 +00:00
Dan
93a5dd5de4 Merge pull request #1213 from stavros-k/json
Updating meshcentral's config casing to match upstreams json schema.
2022-10-06 09:38:16 -07:00
Dan
61807bdaaa Merge pull request #1301 from af7567/policyselect2
break from loop once a valid policy is found. remove old unused list
2022-10-06 09:36:59 -07:00
Dan
a1a5d1adba Merge pull request #1295 from silversword411/develop
typo
2022-10-06 09:36:20 -07:00
silversword411
9dd4aefea5 Merge branch 'amidaware:develop' into develop 2022-10-06 07:52:47 -04:00
Adam
db4540089a remove parentheses from if statement to fix codestyle test
Signed-off-by: Adam <adam@csparker.co.uk>
2022-10-03 13:17:48 +01:00
Adam
24c899c91a break from loop once a valid policy is found. remove old unused list
Signed-off-by: Adam <adam@csparker.co.uk>
2022-10-03 12:05:32 +01:00
wh1te909
ade1a73966 code cleanup and optimizations 2022-10-02 21:42:46 +00:00
wh1te909
fb9ec2b040 update reqs 2022-10-02 21:42:03 +00:00
wh1te909
3a683812e9 change tempdir 2022-10-02 21:37:04 +00:00
wh1te909
6d317603c9 fix script snippets fixes #1298 2022-09-27 23:21:26 +00:00
silversword411
5a3d2d196c typo 2022-09-25 17:21:17 -04:00
Scott MacDowall
e740c4d980 fix formatting 2022-09-25 14:59:05 -04:00
Scott MacDowall
253e4596e2 ability to bulk delete using client and site 2022-09-25 14:32:40 -04:00
wh1te909
4f885c9a79 bump versions 2022-09-24 03:08:44 +00:00
wh1te909
b519d2afac update readme for macOS support 2022-09-24 03:07:38 +00:00
wh1te909
6b61e3b76b bump docker nats 2022-09-24 02:52:12 +00:00
wh1te909
30b9c72c31 bump nats 2022-09-24 01:51:59 +00:00
wh1te909
385bf74f6e change dl cmd 2022-09-24 01:51:52 +00:00
wh1te909
be5615e530 bump web dev 2022-09-23 23:07:48 +00:00
wh1te909
d81a03c093 mac agent 2022-09-23 22:57:29 +00:00
wh1te909
f8249c8267 switch to corp funding 2022-09-23 22:10:05 +00:00
wh1te909
5a1cbdcd3b update reqs 2022-09-23 06:59:44 +00:00
wh1te909
e0c99d87bd update template 2022-09-23 06:59:26 +00:00
wh1te909
548250029d add missing field to serializer fixes #1283 2022-09-13 19:18:16 +00:00
wh1te909
66a354dbdc back to dev [skip ci] 2022-09-12 07:03:05 +00:00
wh1te909
1f693ca4f6 bump versions 2022-09-12 06:50:55 +00:00
wh1te909
97a0bc6045 optimize query to use less ram 2022-09-12 05:33:07 +00:00
wh1te909
8b75cdfefd update bin 2022-09-12 01:44:21 +00:00
wh1te909
917aecf1ff update deps and go 1.19 2022-09-12 01:42:24 +00:00
wh1te909
663dcd0396 fix tests 2022-09-11 20:51:57 +00:00
wh1te909
8f2dffb1ad update reqs 2022-09-11 20:29:45 +00:00
wh1te909
20228e3d19 add postgres ready check 2022-09-11 20:23:18 +00:00
wh1te909
81c6cc11b3 update supported version 2022-09-11 01:37:45 +00:00
wh1te909
2ccacbe5f3 fix for newer mesh 2022-09-11 01:33:00 +00:00
Dan
a5345e8468 Merge pull request #1277 from af7567/winupdatesfix
When checking if patches are to be installed, don't exit the function after finding a patched machine.
2022-09-06 12:02:26 -07:00
Dan
8f5d62bb81 Merge pull request #1273 from silversword411/develop
Adding client and site to mgmt command find_software
2022-09-06 11:59:07 -07:00
Adam
28f6838560 continue to next agent rather than return from function, otherwise other agents won't receive updates
Signed-off-by: Adam <adam@csparker.co.uk>
2022-09-04 18:09:58 +01:00
silversword411
c86aacb31c format tweak 2022-09-02 17:24:33 -04:00
silversword411
f62f5192d6 Adding client and site to mgmt command find_software 2022-09-02 14:28:45 -04:00
wh1te909
b14ea1fe3e fix maintenance mode and assigning policy via agent context menu not saving 2022-08-24 08:29:13 +00:00
wh1te909
552633a00b fix configs 2022-08-24 08:27:50 +00:00
wh1te909
7faba2a690 add migrations for updated pytz 2022-08-24 07:33:55 +00:00
wh1te909
db910aff06 back to dev 2022-08-23 06:02:48 +00:00
wh1te909
75d9f6a7e7 bump versions 2022-08-23 05:09:55 +00:00
wh1te909
de677294c6 refactor 2022-08-23 00:54:07 +00:00
wh1te909
da1e6b8259 update reqs 2022-08-22 06:47:52 +00:00
wh1te909
a9633b3990 update reqs 2022-08-20 20:09:53 +00:00
sadnub
7ac9af1cc1 fix sed command to do an inplace update of nginx.conf 2022-08-17 11:52:54 -04:00
Dan
00d8b8cd61 Merge pull request #1244 from dinger1986/develop
Update troubleshoot_server.sh
2022-08-17 08:43:13 -07:00
dinger1986
af7ff7f5cf Update troubleshoot_server.sh
Change SSL check as wasnt working and add output
2022-08-17 11:42:05 +01:00
wh1te909
2a20719130 fix demo script check history graph 2022-08-17 06:57:05 +00:00
sadnub
f481940180 fix tests 2022-08-14 21:56:09 -04:00
sadnub
ca8824d1e3 fix clients not filtering by role in policy overview 2022-08-14 21:49:38 -04:00
sadnub
f4be199b77 fix checks/tasks return cache values for other plats 2022-08-14 19:45:11 -04:00
sadnub
6bcef8334e fix nginx entypoint 2022-08-14 10:26:55 -04:00
wh1te909
3955eff683 more dev setup 2022-08-14 08:17:08 +00:00
wh1te909
aa0f6ecd75 python 3.10.6 2022-08-14 08:14:59 +00:00
wh1te909
ef4a94ed78 more ansible 2022-08-12 17:21:25 +00:00
wh1te909
b5c803ce65 update reqs 2022-08-12 17:19:04 +00:00
wh1te909
d4325ed82e more ansible dev 2022-08-12 06:15:21 +00:00
wh1te909
3805fb8f26 expose more fields in search amidaware/tacticalrmm-web@93dbc74e33 closes #652 2022-08-12 01:23:33 +00:00
wh1te909
d4d938c655 update paths 2022-08-12 01:06:56 +00:00
wh1te909
1c6911e361 start moving to nested serializers 2022-08-10 07:15:23 +00:00
wh1te909
a1b364f337 drop support for agent < 2.0.0 2022-08-10 07:12:51 +00:00
wh1te909
ece5c3da86 update reqs 2022-08-10 00:49:20 +00:00
wh1te909
5d1ae6047b back to dev 2022-08-10 00:38:13 +00:00
wh1te909
66bbcf0733 fix tests 2022-08-09 21:35:23 +00:00
wh1te909
acc23ea7bb bump versions 2022-08-09 21:18:41 +00:00
wh1te909
663bd0c9f0 remove dead code 2022-08-09 21:16:18 +00:00
wh1te909
39b1025dfa fix tests 2022-08-05 17:35:40 +00:00
sadnub
d2875e90b2 fix docker dev 2022-08-05 12:10:52 -04:00
wh1te909
ff461d1d02 fixes #1174 amidaware/tacticalrmm-web@76f330fb9c 2022-08-05 07:22:46 +00:00
wh1te909
58164ea2d3 dev 2022-08-05 05:57:38 +00:00
wh1te909
1bf4834004 Django 4.1 2022-08-04 23:43:57 +00:00
wh1te909
bf58d78281 fix return tuple formatting 2022-08-04 23:40:35 +00:00
wh1te909
a8aedfde55 bump version 2022-08-01 22:56:21 +00:00
wh1te909
9b92d1b673 bump version 2022-08-01 17:50:33 +00:00
wh1te909
febc9aed11 feat: run as user amidaware/tacticalrmm-web@137a5648ce amidaware/rmmagent@50cebb950d 2022-07-31 22:23:19 +00:00
wh1te909
de2462677e fix working dir 2022-07-31 21:31:58 +00:00
wh1te909
8bd94d46eb fix empty statement 2022-07-28 17:28:49 +00:00
wh1te909
d43cefe28f add file associations for yaml [skip ci] 2022-07-27 07:31:54 +00:00
wh1te909
b82874e261 back to develop 2022-07-27 07:30:53 +00:00
wh1te909
f901614056 bump version 2022-07-27 06:11:41 +00:00
wh1te909
b555d217ab remove check 2022-07-27 06:10:33 +00:00
wh1te909
775c600234 docker nginx changes 2022-07-27 04:19:17 +00:00
wh1te909
128f2570b8 catch exception if mesh is down 2022-07-27 02:01:29 +00:00
wh1te909
3cd53e79b4 add signing key 2022-07-27 01:59:55 +00:00
wh1te909
ebba84ffda switch to official nginx repo to get latest version 2022-07-26 08:09:49 +00:00
wh1te909
1e1a42fe98 update web ver 2022-07-26 08:08:43 +00:00
wh1te909
8a744a440d update reqs 2022-07-26 07:47:21 +00:00
wh1te909
f4fc3c7d55 unused var 2022-07-26 04:39:11 +00:00
wh1te909
0594d121de add agent ver to status closes #1224 2022-07-24 01:18:54 +00:00
wh1te909
12c85d6234 start ansible role to deploy dev environment 2022-07-20 07:16:47 +00:00
Stavros kois
87d05223af apply json fix to docker aswell 2022-07-18 22:08:06 +03:00
Stavros kois
babf6366e8 chore(install script): use same casing as the json schema 2022-07-18 21:13:20 +03:00
wh1te909
5e37728f66 remove devskum 2022-07-18 17:22:24 +00:00
wh1te909
e8e19fede7 don't allow dates in past #1174 2022-07-18 08:04:15 +00:00
wh1te909
e565dbfa66 invalidate cache on policy script change 2022-07-12 20:16:07 +00:00
wh1te909
d180d6820c back to develop 2022-07-10 03:35:15 +00:00
wh1te909
41db8681f8 no sudo 2022-07-10 00:38:09 +00:00
wh1te909
26cd58fd6d bump version 2022-07-10 00:16:32 +00:00
wh1te909
63c7e1aa9d update reqs 2022-07-10 00:16:13 +00:00
wh1te909
d5a6063e5e remove extra space 2022-07-09 09:31:05 +00:00
wh1te909
00affdbdec update supported version 2022-07-09 09:30:58 +00:00
wh1te909
db3f0bbd4f increase nginx open file limit 2022-07-09 08:09:24 +00:00
wh1te909
020a59cb97 remove un-needed expose 2022-07-09 08:08:09 +00:00
wh1te909
ff4fa6402d back to dev 2022-07-08 06:40:55 +00:00
wh1te909
10cc187c5d bump versions 2022-07-08 06:38:20 +00:00
wh1te909
25843edb48 bump script ver 2022-07-07 20:34:47 +00:00
wh1te909
54294141b0 bump versions 2022-07-07 19:44:11 +00:00
wh1te909
f3a8886b50 remove check for 4222 2022-07-07 16:31:01 +00:00
wh1te909
268cfaf234 bump web ver 2022-07-07 03:06:52 +00:00
wh1te909
651ae20304 forgot decorator 2022-07-06 23:37:52 +00:00
wh1te909
e22f69a5dc fix variable 2022-07-06 01:15:55 +00:00
wh1te909
a39808f44c update reqs 2022-07-05 18:07:20 +00:00
wh1te909
fcb541f734 update nginx conf for nats websocket 2022-07-03 22:44:59 +00:00
wh1te909
79ca0f1684 bump web ver 2022-07-03 01:48:39 +00:00
wh1te909
f2ebc38044 don't load swagger app unless enabled 2022-07-03 01:36:26 +00:00
wh1te909
d4335675f1 update nats-api and add debug info 2022-06-30 06:37:58 +00:00
wh1te909
be4b05423e update reqs 2022-06-30 06:27:45 +00:00
wh1te909
d9fe8db2a7 bump mesh 2022-06-30 06:27:28 +00:00
wh1te909
f92e780765 add delete endpoint 2022-06-30 06:21:13 +00:00
wh1te909
7aebdb7c78 add back middleware for django admin 2022-06-30 06:20:38 +00:00
wh1te909
abb2dd842b bigint for retcode 2022-06-29 07:57:58 +00:00
wh1te909
75713c8015 bump mesh and web 2022-06-27 08:09:55 +00:00
wh1te909
42e1717455 add nats websocket support 2022-06-26 22:16:28 +00:00
wh1te909
bfb19a9eb7 bump docker nats 2022-06-26 21:14:27 +00:00
wh1te909
3e08585114 add endpoint for trmm server monitoring and stats 2022-06-26 07:35:11 +00:00
wh1te909
12e82c7a8d update channels 2022-06-26 07:33:23 +00:00
wh1te909
0fcc683903 remove debug print 2022-06-26 07:02:15 +00:00
wh1te909
ed7a8dc0f5 add websocket endpoint for sendcmd 2022-06-25 09:05:26 +00:00
wh1te909
0a9d29c98d add dev check to version 2022-06-25 09:05:26 +00:00
wh1te909
f63e801608 auto scale uwsgi workers based on load 2022-06-25 09:05:26 +00:00
Dan
77f04e1a32 Merge pull request #1186 from silversword411/develop
Syncing readme with docs
2022-06-23 11:04:09 -07:00
silversword411
362819ce16 Syncing readme with docs 2022-06-23 12:14:38 -04:00
wh1te909
1d9165a627 more tests 2022-06-23 05:25:18 +00:00
wh1te909
7ee8aaa027 update reqs 2022-06-23 05:16:34 +00:00
wh1te909
516e279fc3 add migration 2022-06-23 05:15:08 +00:00
wh1te909
880611eddb forgot to call 2022-06-23 01:21:33 +00:00
wh1te909
c4bf776069 fix coverage 2022-06-23 00:33:15 +00:00
wh1te909
097d6464c0 update coverage 2022-06-23 00:23:53 +00:00
wh1te909
b86e4e017f add back coverage 2022-06-22 22:41:47 +00:00
wh1te909
bbec17d498 isort 2022-06-22 22:18:04 +00:00
wh1te909
3b7b5f4ec3 more tests 2022-06-22 22:10:03 +00:00
wh1te909
0986efef29 tests 2022-06-22 06:51:25 +00:00
wh1te909
06091cbf1c fix undefined var 2022-06-22 03:07:41 +00:00
wh1te909
b588bab268 start refactor for mac agent and break all the tests 2022-06-20 19:35:51 +00:00
wh1te909
0736cfe959 update reqs 2022-06-17 06:04:52 +00:00
Dan
400352254a Merge pull request #1173 from sarog/develop
Generify shell script interpreters
2022-06-15 13:39:56 -07:00
Saro G
259c3dc781 Generify shell script interpreters. 2022-06-15 16:04:58 -04:00
wh1te909
506055a815 update reqs 2022-06-07 16:53:51 +00:00
wh1te909
3edf6c57ba add goarch constant 2022-06-06 04:05:19 +00:00
wh1te909
c404ae7ac8 add bulk recovery endpoint, tests 2022-06-03 00:36:19 +00:00
wh1te909
312774e472 add tests 2022-06-01 19:14:30 +00:00
wh1te909
c540f802b0 add mgmt command to help with restores 2022-05-30 07:33:55 +00:00
wh1te909
6a2a2761e1 update docker for new web build 2022-05-29 07:40:49 +00:00
wh1te909
2508458c80 update reqs 2022-05-29 07:40:15 +00:00
wh1te909
025d9e0141 add find service 2022-05-26 18:54:02 +00:00
wh1te909
734b3b07ab update scripts for frontend repo move 2022-05-24 22:03:24 +00:00
wh1te909
e4250a857a add web version 2022-05-24 21:02:19 +00:00
wh1te909
56d1b2716c add mgmt command for scripts 2022-05-24 19:17:48 +00:00
wh1te909
c5d7e61e6c optimize query 2022-05-24 19:16:28 +00:00
wh1te909
6222a127bd update reqs 2022-05-24 19:15:33 +00:00
wh1te909
f0b7e515b6 fix workflows 2022-05-19 04:00:37 +00:00
wh1te909
98d8c23868 web now in separate repo 2022-05-19 03:45:31 +00:00
wh1te909
978bb9afd0 update certifi 2022-05-18 19:46:13 +00:00
wh1te909
058598b5f3 custom field enums 2022-05-18 19:20:28 +00:00
wh1te909
5b7ab3a10f more task enums 2022-05-18 18:37:35 +00:00
wh1te909
e42243c78b task type enum 2022-05-18 07:18:53 +00:00
wh1te909
c650ee8498 alert enums 2022-05-18 06:49:29 +00:00
wh1te909
50f8968901 agent history enum, remove unused model field 2022-05-18 06:11:40 +00:00
wh1te909
b0fa2e6d80 mon type enum 2022-05-18 05:48:02 +00:00
wh1te909
d59589425e status const 2022-05-18 05:18:06 +00:00
wh1te909
6c810e514b fix tests 2022-05-18 04:14:20 +00:00
wh1te909
efa41dbd22 add plat enum 2022-05-18 03:52:51 +00:00
sadnub
f34bcfd56d move to quasar vite plugin 2022-05-16 22:42:01 -04:00
sadnub
8ff2e3fb29 Fix removal of orphaned win tasks not completing if having issues communicating with an agent 2022-05-15 14:38:28 -04:00
wh1te909
033c04a0f2 back to develop [skip-ci] 2022-05-15 08:21:41 +00:00
wh1te909
cef1ab9512 bump versions 2022-05-15 07:01:47 +00:00
wh1te909
94f02bfca3 only if exists 2022-05-15 06:59:00 +00:00
sadnub
a941bb1744 disable auto quoting when using variable substitution on batch scripts. Fixes #1020 2022-05-14 22:45:25 -04:00
sadnub
6ff591427a Add watcher in agent view for route changes and set new active agent. Fixes #1110 2022-05-14 22:23:03 -04:00
sadnub
809e172280 Fixes check policy copy issue where copied checks are all of type diskspace 2022-05-14 22:01:29 -04:00
wh1te909
17aedae0a9 recreate env 2022-05-14 23:59:32 +00:00
wh1te909
ef817ccb3a isort 2022-05-14 23:30:01 +00:00
wh1te909
0fb55b0bee remove middleware 2022-05-14 23:23:24 +00:00
wh1te909
a1a6eddc31 update reqs 2022-05-14 23:00:31 +00:00
wh1te909
ff3d0b6b57 handle empty payload, add monitoring endpoint 2022-05-13 00:50:53 +00:00
wh1te909
dd64cef4c4 optimize endpoints, remove deprecated endpoint, start reworking tests 2022-05-11 22:38:03 +00:00
Dan
9796848079 Merge pull request #1127 from silversword411/develop
typo fix
2022-05-11 14:54:05 -07:00
silversword411
fea7eb4312 typo fix 2022-05-11 17:10:06 -04:00
wh1te909
c12cd0e755 fix task run doesn't show name in history tab fixes #1097 2022-05-10 19:21:49 +00:00
wh1te909
d86a72f858 remove py 3.10.2 2022-05-10 18:52:47 +00:00
wh1te909
50cd7f219a update reqs 2022-05-10 18:45:33 +00:00
wh1te909
8252b3eccc more enum 2022-05-10 17:09:06 +00:00
wh1te909
d0c6e3a158 move tests 2022-05-10 16:29:09 +00:00
wh1te909
1505fa547e update nats reqs and change mod name 2022-05-10 16:27:51 +00:00
wh1te909
9017bad884 fix test 2022-05-09 17:35:07 +00:00
wh1te909
2ac5e316a5 refactor recovery func 2022-05-09 06:43:04 +00:00
wh1te909
29f9113062 update coverage 2022-05-09 06:40:33 +00:00
wh1te909
46349672d8 optimize checkrunner result endpoint 2022-05-09 06:23:59 +00:00
wh1te909
4787be2db0 fix tabs in popout view #1110 2022-05-04 22:17:45 +00:00
wh1te909
f0a8c5d732 fix site sorting fixes #1118 2022-05-04 15:46:05 +00:00
wh1te909
9ad520bf7c remove unnecessary middleware 2022-05-02 00:57:40 +00:00
wh1te909
bd0cc51554 update asgi 2022-05-02 00:57:01 +00:00
wh1te909
12f599f974 add linux mint 2022-05-01 20:34:31 +00:00
wh1te909
0118d5fb40 log enums 2022-04-30 02:01:20 +00:00
wh1te909
65cadb311a more enum 2022-04-29 19:09:17 +00:00
wh1te909
dd75bd197d add back dummy cache 2022-04-29 17:22:10 +00:00
wh1te909
7e155bdb43 typing 2022-04-29 06:45:20 +00:00
wh1te909
993b6fddf4 redundant 2022-04-29 06:41:40 +00:00
wh1te909
6ba51df6a7 add sh to download 2022-04-29 06:29:43 +00:00
wh1te909
1185ac58e1 more enum 2022-04-29 06:21:48 +00:00
wh1te909
f835997f49 switch runners and use redis cache during testing 2022-04-29 05:23:50 +00:00
wh1te909
a597dba775 fix role cache 2022-04-29 05:21:51 +00:00
wh1te909
3194e83a66 update reqs 2022-04-29 00:27:01 +00:00
wh1te909
096c3cdd34 more enum 2022-04-28 18:01:11 +00:00
wh1te909
3a1ea42333 fix settings 2022-04-28 17:33:51 +00:00
wh1te909
64877d4299 fix black not auto formatting 2022-04-28 17:25:21 +00:00
wh1te909
e957dc5e2c black 2022-04-28 17:24:45 +00:00
wh1te909
578d5c5830 more enum 2022-04-28 17:07:58 +00:00
sadnub
96284f9508 make eslint error on warnings 2022-04-28 09:50:41 -04:00
wh1te909
698b38dcba fix warning 2022-04-28 07:07:33 +00:00
wh1te909
6db826befe fix dir again 2022-04-28 07:02:38 +00:00
wh1te909
1a3d412d73 pwd 2022-04-28 07:01:44 +00:00
wh1te909
b8461c9dd8 fix dir 2022-04-28 07:00:09 +00:00
wh1te909
699bd9de10 fix workflow 2022-04-28 06:56:03 +00:00
Dan
54b6866e21 Merge pull request #1102 from sadnub/typescript
Typescript prep and add some linting
2022-04-27 23:45:33 -07:00
sadnub
afd155e9c1 fix actions 2022-04-27 22:48:29 -04:00
sadnub
910a717230 add name to gh action 2022-04-27 22:34:52 -04:00
sadnub
70fbd33d61 add lint and formatting gh action 2022-04-27 21:18:52 -04:00
sadnub
2da0d5ee21 add typescript support and stricter formatting/linting 2022-04-27 20:47:32 -04:00
wh1te909
98f64e057a update reqs 2022-04-27 05:07:22 +00:00
wh1te909
3d9d936c56 update url 2022-04-27 05:06:21 +00:00
wh1te909
2b4cb59df8 add more typing to dev reqs 2022-04-26 23:34:10 +00:00
wh1te909
9d80da52e3 more demo stuff 2022-04-26 23:33:45 +00:00
wh1te909
fd176d2c64 start moving to enums for choicefields 2022-04-26 01:13:18 +00:00
sadnub
538b6de36b set default alert severities for checks and tasks so that blank alert templates being applied to agent don't stop all alerts 2022-04-25 14:38:34 -04:00
sadnub
f7eca8aee0 Ignore timezone when editing automated tasks 2022-04-25 14:17:57 -04:00
wh1te909
a754d94c2c remove test multiprocessing 2022-04-25 08:15:06 +00:00
wh1te909
5e3493e6a9 fix tests 2022-04-25 07:54:31 +00:00
wh1te909
619a14c26b refactor action_type 2022-04-25 07:47:58 +00:00
wh1te909
7d9a8decf0 start choice field refactor, remove deprecated model fields 2022-04-25 07:10:33 +00:00
wh1te909
d11e14ad89 add migration 2022-04-25 06:51:42 +00:00
wh1te909
69189cf2af isort 2022-04-25 06:50:48 +00:00
wh1te909
6e7d2f19d2 update middleware for django 4, refactor a func to fix circular import, start fixing fake_agents script 2022-04-25 06:48:14 +00:00
wh1te909
d99ebf5d6a remove deprecated model field 2022-04-25 06:43:58 +00:00
wh1te909
ef2d19e95b back to develop 2022-04-25 01:36:12 +00:00
wh1te909
9e544ad471 bump version 2022-04-25 01:31:09 +00:00
sadnub
5f19aa527a fix running policy script checks 2022-04-24 21:02:28 -04:00
sadnub
bfd5bc5c26 remove port changes for persistent mesh configurations 2022-04-24 20:51:18 -04:00
wh1te909
2d0ec3accd back to dev 2022-04-25 00:38:47 +00:00
wh1te909
d8dd3e133f bump version 2022-04-25 00:31:14 +00:00
wh1te909
528470c37f fix slow query 2022-04-25 00:17:34 +00:00
wh1te909
c03cd53853 fix deprecated function 2022-04-24 23:20:39 +00:00
wh1te909
b57fc8a29c testing num queries 2022-04-24 23:14:37 +00:00
wh1te909
a04ed5c3ca remove duplicate settings 2022-04-24 23:09:44 +00:00
Dan
3ad1df14f6 Merge pull request #1085 from dinger1986/patch-1
Update troubleshoot_server.sh
2022-04-24 15:26:47 -07:00
wh1te909
d8caf12fdc optimize policy query 2022-04-24 22:07:24 +00:00
wh1te909
5ca9d30d5f add a test and optimize some queries 2022-04-24 21:23:33 +00:00
sadnub
a7a71b4a46 fix default tab not working if 'servers' is selected 2022-04-24 16:35:42 -04:00
sadnub
638603ac6b fix variable substitution when running policy tasks 2022-04-24 16:35:18 -04:00
wh1te909
1d70c15027 wrong related 2022-04-24 01:45:03 +00:00
wh1te909
7a5f03d672 fix slow query 2022-04-23 23:24:36 +00:00
wh1te909
1943d8367e bump version 2022-04-23 22:57:09 +00:00
wh1te909
f91c5af9a1 optimize query 2022-04-23 22:51:45 +00:00
wh1te909
2be71fc877 increase chunk size 2022-04-23 22:50:06 +00:00
wh1te909
f5f5b4a8db fixed 'Save and test email' always returning success even if it failed 2022-04-23 18:50:23 +00:00
sadnub
ac9cfd09ea fix init container not having access to the redis service 2022-04-23 12:28:13 -04:00
sadnub
4cfc85dbfd fix agent sorting by last response 2022-04-23 12:21:18 -04:00
sadnub
1f3d2f47b1 increase max_length on customfield name field to 100 2022-04-23 10:26:34 -04:00
dinger1986
653c482ff7 Update troubleshoot_server.sh
add in output of afew log log files
2022-04-23 15:03:58 +01:00
wh1te909
4b069cc2b0 fix pending actions showing agent pending update even though it was already updated 2022-04-23 07:43:30 +00:00
wh1te909
c89349a43a update badge 2022-04-23 03:49:37 +00:00
wh1te909
6e92d6c62c testing codecov 2022-04-23 03:44:45 +00:00
wh1te909
5d3d3e9076 fix tests? 2022-04-23 02:07:00 +00:00
wh1te909
b440c772d6 forgot pytest.ini 2022-04-23 02:01:34 +00:00
wh1te909
2895560b30 testing pytest/codecov 2022-04-23 02:00:12 +00:00
wh1te909
bedcecb2e1 fix deprecations 2022-04-23 00:19:00 +00:00
wh1te909
656ac829a4 black 2022-04-22 23:22:41 +00:00
wh1te909
4d83debc0e also sort in db 2022-04-22 23:19:42 +00:00
wh1te909
4ff5d19979 fix sorting of clients tree 2022-04-22 22:48:54 +00:00
wh1te909
9acda5696e bump versions 2022-04-22 19:00:14 +00:00
wh1te909
dc6255048a fix wrong token variable being passed to func 2022-04-22 18:19:26 +00:00
wh1te909
2acde429d7 lower intervals 2022-04-22 16:35:51 +00:00
wh1te909
efcac1adac fix runaway memory during migration 2022-04-22 08:43:06 +00:00
wh1te909
81d5ecd758 add a run checks button to checks tab 2022-04-22 08:09:21 +00:00
wh1te909
d9ff004454 add trailing slash 2022-04-22 08:08:59 +00:00
wh1te909
d57135d793 lower intervals 2022-04-22 08:08:49 +00:00
wh1te909
bb5a0023af update nats-api 2022-04-21 21:26:22 +00:00
wh1te909
e3c25a167e nats 2.8.1 2022-04-21 21:16:31 +00:00
wh1te909
5be93ae17d update nats-server 2022-04-21 21:01:59 +00:00
wh1te909
3a2511d4a1 remove deprecated certbot flag 2022-04-21 20:45:47 +00:00
wh1te909
8ec7d98eef remove old docker instructions 2022-04-21 20:45:06 +00:00
wh1te909
9421ae25f7 update scripts and reqs 2022-04-21 20:32:41 +00:00
wh1te909
5b288b6fa1 prevent dialog error when script hasn't run yet 2022-04-21 19:17:57 +00:00
wh1te909
d35ed2980b add helper to run all celery tasks 2022-04-21 19:16:45 +00:00
wh1te909
6d8df6d2b9 lower intervals 2022-04-21 18:18:21 +00:00
wh1te909
a839513f7f more optimization 2022-04-21 17:29:38 +00:00
wh1te909
97b37b4742 make policy tabs match agent tabs UI 2022-04-21 17:14:07 +00:00
wh1te909
4894031219 fix for policy tasks not deleting on agents 2022-04-21 07:33:58 +00:00
wh1te909
8985b5511c remove import 2022-04-21 07:25:13 +00:00
wh1te909
b3c2a6a0cc fix typing 2022-04-21 07:08:33 +00:00
wh1te909
7291b440bb fix sync status 2022-04-21 06:34:06 +00:00
wh1te909
d75f134677 fix comment 2022-04-21 06:32:31 +00:00
wh1te909
e60069ec1d fix assigned task not running when the check it was assigned to was a policy check 2022-04-21 06:28:22 +00:00
wh1te909
034f49573d fix slow query 2022-04-21 01:08:02 +00:00
wh1te909
973d37a237 improve wording and add tooltip 2022-04-20 22:11:47 +00:00
wh1te909
d2ec609e68 add some default services 2022-04-20 21:30:10 +00:00
wh1te909
6b410399cd add function to clear cache 2022-04-20 19:47:49 +00:00
wh1te909
0c010570b9 make agent overdue alert button text more clear 2022-04-20 19:09:40 +00:00
wh1te909
78fc7faa13 fix SynchronousOnlyOperation when calling task from celery, due to wrong query 2022-04-20 18:43:04 +00:00
wh1te909
7671cce263 refactor and add tests for constants 2022-04-20 17:21:26 +00:00
wh1te909
a43a66a2d3 add daphne lock to gitignore 2022-04-20 17:20:11 +00:00
wh1te909
2190a2ed25 use isinstance 2022-04-20 17:03:01 +00:00
wh1te909
227636b705 always send recovery alert at agent level 2022-04-20 16:52:31 +00:00
wh1te909
5032170362 fix cache when deleting global policy 2022-04-20 16:38:43 +00:00
sadnub
b94c3961eb fix availability alert filter to get overdue alerts working 2022-04-20 08:51:17 -04:00
sadnub
46c7e89a94 fix displaying correct alert severity 2022-04-19 22:37:56 -04:00
sadnub
80861fd620 revert back to psycopg2 package 2022-04-19 22:37:56 -04:00
wh1te909
44f9390790 fix task call 2022-04-20 00:35:02 +00:00
wh1te909
8eca6c409a update reqs 2022-04-19 23:12:12 +00:00
wh1te909
4907c01191 refactor stuff 2022-04-19 22:33:51 +00:00
wh1te909
04bf314c61 fix task name 2022-04-19 22:26:27 +00:00
sadnub
57d92b276b some more django orm magic 2022-04-18 13:04:19 -04:00
sadnub
6a8efddab5 add category label to filtered custom field results 2022-04-18 12:36:54 -04:00
sadnub
fd908494ae make supported dropdowns filterable 2022-04-18 12:33:33 -04:00
sadnub
d617b23c2f add monitoring_type /agents filter and add index for monitoring_type field 2022-04-18 12:33:11 -04:00
sadnub
27874728bc return scripts from api sorted by category. #1066 2022-04-16 22:30:50 -04:00
wh1te909
56a0345260 fix arg 2022-04-16 23:18:39 +00:00
wh1te909
c412839165 ctx is no longer needed 2022-04-16 23:02:41 +00:00
wh1te909
b77f927ad5 remove old field 2022-04-16 23:00:57 +00:00
sadnub
8edd7f6a56 show the task name in agent history output. #1000 2022-04-16 17:31:29 -04:00
sadnub
c6915d0291 make agent count take permissions into account. #1028 2022-04-16 17:27:20 -04:00
sadnub
388eb94014 make site dropdown filterable #1068 2022-04-16 17:06:46 -04:00
sadnub
9ab80553e1 fix ui bug where policy checks weren't displaying if they had associated tasks 2022-04-16 16:47:52 -04:00
sadnub
86d639ee6a fix migration 2022-04-16 16:31:35 -04:00
sadnub
979fd8a249 fix migrations 2022-04-16 16:22:41 -04:00
sadnub
e65ab58f84 fix patches pending field on agent table 2022-04-16 16:22:26 -04:00
sadnub
8414bdbab1 prune orphaned tasks on agents daily 2022-04-16 15:24:07 -04:00
sadnub
d037b09128 fix Alerts model not existing during initial migratio run 2022-04-16 15:23:51 -04:00
sadnub
9a687fec9b add meshcentral port alias to fix chat 2022-04-16 14:37:07 -04:00
sadnub
e9d71f169c optimize the cache_db_values task 2022-04-16 14:36:31 -04:00
sadnub
e09c307d58 fix tests 2022-04-15 17:42:45 -04:00
sadnub
d23d641b1b fix alert_severity on check_result defaulting to warning 2022-04-15 17:29:31 -04:00
sadnub
b1301091f9 add migration to remove duplicate win_task_names and make it unique 2022-04-15 17:06:33 -04:00
sadnub
2458eb3960 create migration that will fix duplicate win_task_names and make win_task_name unique 2022-04-15 14:52:37 -04:00
sadnub
fa836d88c7 fix migrating task/check results 2022-04-15 14:17:57 -04:00
sadnub
e26349f2fc more improvements loading the clients tree 2022-04-14 22:41:10 -04:00
sadnub
daa4e4d566 move maintenance mode and agent count checks to annotate to load client tree faster 2022-04-14 22:26:15 -04:00
sadnub
8e75df686d fix check/task results not being added to the model 2022-04-14 19:08:14 -04:00
sadnub
53537e7b3a make gh use the correct cache 2022-04-14 18:20:52 -04:00
sadnub
4beddc2271 fix tests? 2022-04-14 18:12:09 -04:00
sadnub
a6e4a774e0 fix tests 2022-04-14 18:03:39 -04:00
sadnub
dacc1c5770 fix cache not hitting if it returns an empty list 2022-04-14 17:58:51 -04:00
sadnub
25e922bc4c reduce queries on agent table load and bust cache on policy changes 2022-04-14 17:17:40 -04:00
wh1te909
56bb206f25 back to latest 2022-04-13 16:14:40 +00:00
wh1te909
740a9ceaa7 add dev version 2022-04-13 07:43:36 +00:00
wh1te909
64e936127a revert docker version #1062 2022-04-13 05:38:10 +00:00
sadnub
b1f7bd3ead fix tests 2022-04-12 16:38:57 -04:00
sadnub
b5e3b16e3a add option to disable mesh autologin 2022-04-12 16:18:31 -04:00
wh1te909
96a72a2cd7 0.12.4 fix login token 2022-04-12 19:09:04 +00:00
sadnub
c155da858e fix submitting saving date times and convert to native date input versus quasar 2022-04-12 13:38:53 -04:00
wh1te909
c1b2bbd152 update reqs 2022-04-12 06:14:46 +00:00
Dan
e3b5f418d6 Merge pull request #1008 from sadnub/develop
Policy rework, Global datetime format and other GH issue fixes
2022-04-11 16:21:05 -07:00
wh1te909
cddac4d0fb bump version 2022-04-11 22:21:57 +00:00
sadnub
dd6f92e54d supress the redis key length warning 2022-04-10 23:23:04 -04:00
sadnub
5d4558bddf fix caching tasks 2022-04-10 23:18:47 -04:00
sadnub
5aa7b5a337 add custom cache backend for deleting many keys with a pattern 2022-04-10 22:42:10 -04:00
wh1te909
2fe0b5b90d testing coverage exludes 2022-04-10 20:26:00 +00:00
wh1te909
aa6997990c fix import 2022-04-10 19:21:03 +00:00
sadnub
c02ab50a0a clear role cache on save 2022-04-10 10:46:47 -04:00
sadnub
7cb16b2259 add caching for coresettings and roles 2022-04-10 10:44:51 -04:00
wh1te909
3173dc83a5 Merge branch 'develop' of https://github.com/sadnub/tacticalrmm into sadnub-develop 2022-04-10 05:09:03 +00:00
wh1te909
baddc29bb8 fix tests 2022-04-10 05:08:20 +00:00
Dan
612cbe6be4 Merge branch 'develop' into develop 2022-04-09 21:46:43 -07:00
sadnub
4c1d2ab1bb fix agent not getting alert template when policies change 2022-04-09 23:56:04 -04:00
sadnub
6b4704b2e2 fix caching tasks 2022-04-09 22:01:07 -04:00
wh1te909
c2286cde01 fix reqs 2022-04-09 23:09:42 +00:00
wh1te909
24a17712e7 skip on empty dict 2022-04-09 23:09:21 +00:00
wh1te909
27d537e7bb do not silently continue on exception 2022-04-09 23:08:34 +00:00
wh1te909
dbd89c72a3 django 4 2022-04-09 17:18:35 +00:00
wh1te909
ff41bbd0e5 adjust celery config 2022-04-09 17:09:54 +00:00
wh1te909
4bdb6ae84e fix graphics 2022-04-09 17:09:09 +00:00
sadnub
cece7b79ad remove silk profile config 2022-04-09 12:22:22 -04:00
sadnub
8d09d95fc3 fix ci attempt 2 2022-04-09 12:19:38 -04:00
sadnub
752542a1d1 fix ci and fix caching 2022-04-09 09:04:56 -04:00
sadnub
dd077383f7 fix docker dev settings 2022-04-08 23:39:18 -04:00
sadnub
6e808dbb0f add meshctrl to dev dependencies 2022-04-08 23:27:32 -04:00
sadnub
4ef3441f70 typo 2022-04-08 23:25:24 -04:00
sadnub
82624d6657 fix tests and more typing 2022-04-08 23:23:10 -04:00
sadnub
62e2b5230c configure mypy vscode extension and start fixing some types 2022-04-08 23:23:10 -04:00
sadnub
3325c30f29 Django 4 upgrade and add REDIS as cache backend 2022-04-08 23:22:33 -04:00
sadnub
18a06168f1 wip improving query times 2022-04-08 23:20:51 -04:00
sadnub
27e93e499f add django-silk to the docker dev setup 2022-04-08 23:20:51 -04:00
sadnub
90644a21a3 add date formatting helper icon that opens to quasar's site 2022-04-08 23:19:35 -04:00
sadnub
7e31f43ef1 allow date_format customization on the user level 2022-04-08 23:19:35 -04:00
sadnub
b13fc1fba4 fix websockets issues 2022-04-08 23:19:35 -04:00
sadnub
5d9109e526 add tests for handling multple alert objects returned 2022-04-08 23:19:35 -04:00
sadnub
78dfa36b2a fix negative index issue 2022-04-08 23:19:35 -04:00
sadnub
dc05d87b44 add redis volume back 2022-04-08 23:19:35 -04:00
wh1te909
2c323a13c1 typo 2022-04-08 23:19:35 -04:00
sadnub
d4c5e38857 fix redis background save issue 2022-04-08 23:19:35 -04:00
sadnub
fb80e5c367 remove aof from redis 2022-04-08 23:19:35 -04:00
sadnub
beb08a3afb add script action migrate and remove deprecated fields 2022-04-08 23:19:35 -04:00
sadnub
7b2de8cbbd return 400 error if agent_id is missing from check results 2022-04-08 23:19:35 -04:00
sadnub
83e63bc87c migrate check/task result data to new table and create post update tasks to remove checks/tasks managed by policy 2022-04-08 23:19:35 -04:00
sadnub
4f5da33fd6 add some more typing info 2022-04-08 23:19:35 -04:00
sadnub
d00d003a67 fix typo 2022-04-08 23:18:02 -04:00
sadnub
002f24be10 fix fake agents script 2022-04-08 23:18:02 -04:00
sadnub
04992a1d95 add a helper to get global settings and work to remove all of the 'ignore: type' 2022-04-08 23:18:02 -04:00
sadnub
3c7cf2446e fix auto resolve alerts task to get policy checks as well 2022-04-08 23:14:05 -04:00
sadnub
29774ac014 fixed the rest of the tests and more bug fixes 2022-04-08 23:14:05 -04:00
sadnub
562d580987 fixed/implemented more tests and more bug fixes 2022-04-08 23:14:05 -04:00
sadnub
d8ad6c0cb0 code formatting 2022-04-08 23:14:05 -04:00
sadnub
7897b0ebe9 fix some tests and fixed tons of bugs 2022-04-08 23:14:04 -04:00
sadnub
e38af9fd16 rework task create/modify/delete/running and fix checks tests 2022-04-08 23:14:04 -04:00
sadnub
6ffdf5c251 Fixed Check History graph and reworked task sync_status 2022-04-08 23:14:04 -04:00
sadnub
69ef7676af finalize the schema and fix ui for checks 2022-04-08 23:14:04 -04:00
sadnub
b0ac57040c cleanup migrations and rework all checks/tasks to use the task/results table. fix alerts 2022-04-08 23:14:04 -04:00
sadnub
826ac7f185 returned tasks/checks in agent runner serializer and saving results 2022-04-08 23:14:04 -04:00
sadnub
0623f53f5d fix date format string empty 2022-04-08 23:14:04 -04:00
sadnub
b5ae875589 fix issue with multiple alert object being returned 2022-04-08 23:14:04 -04:00
sadnub
c152e18e1a policy rework init 2022-04-08 23:14:04 -04:00
sadnub
903f0e5e19 implement global datetime format. #1007 2022-04-08 23:14:04 -04:00
sadnub
6fefd5589c Allow canceling other pending actions. Fixes #958 2022-04-08 23:14:04 -04:00
wh1te909
58fe14bd31 add coverage badge 2022-04-09 02:10:51 +00:00
wh1te909
97f362ed1e fix for multiprocessing 2022-04-09 01:26:04 +00:00
wh1te909
b63e87ecb6 add parallel 2022-04-09 01:01:32 +00:00
wh1te909
ac3550dfd7 add lcov 2022-04-09 00:48:00 +00:00
wh1te909
8278a4cfd9 remove run 2022-04-09 00:45:02 +00:00
wh1te909
f161a2bbc8 more coveralls 2022-04-09 00:43:47 +00:00
wh1te909
6a94489df0 testing coveralls 2022-04-09 00:26:22 +00:00
wh1te909
c3a0b9192f update reqs 2022-04-08 19:34:38 +00:00
wh1te909
69ff70a9ce typo [skip ci] 2022-04-08 18:49:15 +00:00
wh1te909
5284eb0af8 validate mesh username 2022-04-08 18:47:57 +00:00
wh1te909
58384ae136 update supported version 2022-04-08 18:45:53 +00:00
wh1te909
054cc78e65 add meshctrl 2022-04-08 18:30:17 +00:00
wh1te909
8c283281d6 remove lower() from mesh username 2022-04-08 16:06:44 +00:00
wh1te909
241fe41756 fix env 2022-04-05 22:44:41 +00:00
wh1te909
e50e0626fa also check env 2022-04-05 21:31:13 +00:00
wh1te909
c9135f1573 add option to specify sslmode for nats-api pg connection closes #1049 2022-04-05 21:14:22 +00:00
wh1te909
7567042c8a bump versions 2022-04-05 03:41:18 +00:00
wh1te909
c99ceb155f update CI badge and supported agent versions 2022-04-04 22:25:13 +00:00
wh1te909
f44c92f0d3 switch to gh actions for tests 2022-04-04 21:54:46 +00:00
wh1te909
492701ec62 change dir 2022-04-04 07:08:57 +00:00
wh1te909
a6d0acaa4d black 2022-04-03 23:14:44 +00:00
wh1te909
f84b4e7274 remove dev deps from pipelines 2022-04-03 23:09:08 +00:00
wh1te909
b7ef5b82d8 add silk to dev 2022-04-03 22:48:27 +00:00
wh1te909
a854d2c38c add authorization to NATS 2022-04-03 22:47:43 +00:00
wh1te909
5140499bbd update uwsgi conf 2022-04-01 06:12:19 +00:00
wh1te909
7183e9ee85 attempt 2 2022-03-31 06:07:23 +00:00
wh1te909
11885e0aca attemp 1 to fix pipelines 2022-03-31 05:54:30 +00:00
wh1te909
2bda4e822c move pipelines 2022-03-31 05:34:50 +00:00
wh1te909
154149a068 bump versions 2022-03-25 00:59:28 +00:00
wh1te909
c96985af03 add mesh troubleshooting script 2022-03-25 00:33:39 +00:00
wh1te909
e282420a6a handle locale, add --debug for linux install script 2022-03-24 23:53:58 +00:00
wh1te909
b9a207ea71 update reqs 2022-03-24 06:44:16 +00:00
wh1te909
28d52b5e7a tmpdir #1017 2022-03-24 02:10:21 +00:00
wh1te909
9761f1ae29 fix for older nix machines without updated certs 2022-03-24 00:48:03 +00:00
wh1te909
e62c8cc2e2 set platform on double click fixes #1013 2022-03-21 21:08:42 +00:00
wh1te909
b5aea92791 purge celery during update 2022-03-20 09:00:33 +00:00
wh1te909
03f35c1975 update readme 2022-03-19 20:04:17 +00:00
wh1te909
bc7dad77f4 update reqs 2022-03-19 01:31:21 +00:00
wh1te909
aaa2540114 update backup/restore 2022-03-19 01:24:17 +00:00
wh1te909
f46787839a remove extra print statement 2022-03-19 00:03:03 +00:00
wh1te909
228be95af1 bump banner 2022-03-18 22:47:37 +00:00
wh1te909
a22d7e40e5 no longer need to backup mesh exes 2022-03-18 19:40:14 +00:00
wh1te909
d0f87c0980 remove docs workflow 2022-03-18 18:13:51 +00:00
wh1te909
5142783db9 update for new repo 2022-03-18 18:09:58 +00:00
wh1te909
4aea16ca8c remove check 2022-03-17 19:55:31 +00:00
wh1te909
d91d372fc5 Merge branch 'develop' of https://github.com/wh1te909/tacticalrmm into develop 2022-03-17 19:54:58 +00:00
sadnub
7405d884de black and fix settings.py 2022-03-17 15:47:28 -04:00
wh1te909
a9ae63043e uncomment 2022-03-17 19:46:52 +00:00
sadnub
6b943866ef add migration 2022-03-17 15:03:43 -04:00
sadnub
c7bb94d82a add api key auth to swagger 2022-03-17 11:30:45 -04:00
sadnub
30fb855200 black 2022-03-17 00:11:15 -04:00
sadnub
80f9e56e3f Fixes #859 2022-03-16 23:58:57 -04:00
sadnub
d301d967c7 Fixes #912 2022-03-16 23:44:50 -04:00
sadnub
7b7bdc4e9c implements #827 2022-03-16 21:55:12 -04:00
wh1te909
796ebca74c fix undefined 2022-03-17 01:19:13 +00:00
sadnub
3150bc316a change to inline if/else 2022-03-16 20:20:58 -04:00
sadnub
0a91b12e6e fix alert template name rendering and circular import issue 2022-03-16 20:17:51 -04:00
sadnub
918e2cc1a9 implement #819 and cleanup my garbage code XD 2022-03-16 19:56:49 -04:00
sadnub
fb71f83d6d Addresses #957. Will check if the script within a task action doesn't exist and will remove it when running the task on an agent 2022-03-16 14:21:36 -04:00
Dan
82470bf04f Merge pull request #1004 from silversword411/develop
Commenting scripts
2022-03-15 20:39:47 -07:00
silversword411
0ac75092e6 fix print to echo 2022-03-15 00:20:34 -04:00
silversword411
e898163aff Commenting scripts 2022-03-15 00:02:57 -04:00
wh1te909
418c7e1d9e fix notes 2022-03-15 01:09:09 +00:00
wh1te909
24cbabeaf0 fix type 2022-03-14 15:53:02 +00:00
wh1te909
91069b989d set uwsgi procs/threads dynamically in docker 2022-03-14 07:27:44 +00:00
wh1te909
1b7902894a remove un-used column 2022-03-14 06:49:49 +00:00
wh1te909
47e022897e typo 2022-03-14 06:41:04 +00:00
wh1te909
9aada993b1 nginx/celery changes and bump docker deps 2022-03-14 04:20:41 +00:00
sadnub
cf837b6d05 black 2022-03-13 16:18:52 -04:00
sadnub
09192da4fc fix downloading mesh agent on docker 2022-03-13 14:29:39 -04:00
wh1te909
3a792765cd bump 2022-03-13 04:56:23 +00:00
sadnub
a8f1b1c8bc update mesh agent port docker 2022-03-12 16:34:04 -05:00
wh1te909
8ffdc6bbf8 isort 2022-03-12 08:06:39 +00:00
wh1te909
945370bc25 black 2022-03-12 08:04:26 +00:00
wh1te909
ed4b3b0b9c fix tests 2022-03-12 07:52:00 +00:00
wh1te909
83a4268441 fix more tests 2022-03-12 03:13:56 +00:00
wh1te909
2938be7a70 more recovery rework 2022-03-12 02:30:32 +00:00
wh1te909
e3b2ee44ca add recovery for linux agent 2022-03-12 01:54:28 +00:00
wh1te909
f0c4658c9f update deps 2022-03-12 01:52:52 +00:00
wh1te909
0a4b236293 linux install changes [skip ci] 2022-03-11 22:34:56 +00:00
wh1te909
bc7b53c3d4 add supported os to bulk actions 2022-03-11 21:33:43 +00:00
wh1te909
5535e26eec require shebang for linux/mac scripts, refactor middleware/posix 2022-03-11 20:57:04 +00:00
sadnub
c84c3d58db fix category removal function and fix vuex store with agent action menu 2022-03-11 15:40:00 -05:00
wh1te909
d6caac51dd change paths for linux agent [skip ci] 2022-03-11 18:49:20 +00:00
sadnub
979e7a5e08 fix script lists and filtering for platform 2022-03-10 22:55:44 -05:00
sadnub
40f16eb984 add supported_platforms and hidden field to scripts and filter in script dialogs and allow editing in script forms 2022-03-10 20:01:24 -05:00
wh1te909
c17ad1b989 start fixing tests 2022-03-10 07:24:42 +00:00
wh1te909
24bfa062da update python and node 2022-03-10 03:07:37 +00:00
wh1te909
765f675da9 remove meshagent from db during agent uninstall closes #147 2022-03-10 02:24:34 +00:00
wh1te909
c0650d2ef0 update reqs 2022-03-10 01:52:51 +00:00
wh1te909
168434739f remove badge 2022-03-10 01:52:43 +00:00
wh1te909
337eaa46e3 switch pipelines to 3.10 2022-03-10 01:50:37 +00:00
wh1te909
94d42503b7 update reqs 2022-03-10 01:50:18 +00:00
wh1te909
202edc0588 v0.12.0 2022-03-10 00:57:55 +00:00
wh1te909
c95d11da47 testing new coverage 2022-03-04 07:17:56 +00:00
wh1te909
4f8615398c update reqs 2022-02-14 07:25:23 +00:00
wh1te909
f3b5f0128f update reqs 2022-02-13 00:30:35 +00:00
wh1te909
ab5e50c29c fix vscode deprecations / remove mypy 2022-02-11 19:57:49 +00:00
wh1te909
f9236bf92f don't show version banner if error 2022-02-08 22:17:08 +00:00
wh1te909
2522968b04 update bin 2022-02-08 21:00:09 +00:00
wh1te909
9c1900963d update reqs 2022-02-08 17:27:16 +00:00
wh1te909
82ff41e0bb always retry websocket reconnect even on close code 1000 because daphne sucks 2022-02-03 06:35:06 +00:00
wh1te909
fb86c14d77 update reqs 2022-02-03 03:16:17 +00:00
sadnub
c6c0159ee4 remove mkdocs container from docker dev 2022-02-01 22:20:11 -05:00
sadnub
fe5bba18a2 fix dev containers for non-root containers 2022-02-01 22:15:38 -05:00
sadnub
f61329b5de update mesh ports for persistent mesh configuration 2022-02-01 22:15:08 -05:00
sadnub
fbc04afa5b fix typo 2022-02-01 22:14:34 -05:00
sadnub
2f5bcf2263 change community script link to new repo 2022-02-01 22:14:19 -05:00
sadnub
92882c337c Merge pull request #939 from lcsnetworks/non_root_containers
Non root containers
2022-02-01 22:11:02 -05:00
wh1te909
bd41f69a1c fix async call and update nats-py 2022-01-30 22:14:47 +00:00
wh1te909
f801709587 update reqs 2022-01-28 07:30:17 +00:00
wh1te909
1cb37d29df change scripts dir 2022-01-24 05:07:08 +00:00
wh1te909
2d7db408fd update reqs 2022-01-24 04:51:44 +00:00
sadnub
ef1afc99c6 remove community script tests 2022-01-22 00:12:10 -05:00
sadnub
5682c9a5b2 fix install.sh 2022-01-22 00:07:15 -05:00
sadnub
c525b18a02 remove unused import 2022-01-22 00:00:19 -05:00
sadnub
72159cb94d fix docker entrypoint when copying community scripts 2022-01-22 00:00:19 -05:00
sadnub
39e31a1039 change git urls back 2022-01-22 00:00:19 -05:00
sadnub
734177fecc delete community scripts from repo 2022-01-22 00:00:19 -05:00
sadnub
39311099df community-script rework 2022-01-22 00:00:18 -05:00
Dan
b8653e6601 Merge pull request #951 from silversword411/develop
Adding all services to troubleshooting_server.sh and docs additions
2022-01-21 15:53:40 -08:00
sadnub
cb4b1971e6 add print output for django commands 2022-01-21 13:23:00 -05:00
silversword411
63c60ba716 docs - Adding troubleshooting notes around 2022-01-21 11:52:25 -05:00
silversword411
50435425e5 adding all services to troubleshooting script 2022-01-21 11:51:54 -05:00
Joel DeTeves
ff192f102d Ensure external Mesh link defaults to port 443 2022-01-20 14:35:59 -08:00
Joel DeTeves
99cdaa1305 Forgot to update the container ports in the docker-compose file 2022-01-20 13:54:15 -08:00
Dan
7fc897dba9 Merge pull request #948 from silversword411/develop
docs - api example fix thx bc24fl
2022-01-19 22:54:00 -08:00
silversword411
3bedd65ad8 docs - how it works agent debug 2022-01-19 22:44:25 -05:00
silversword411
a46175ce53 docs - api example fix thx bc24fl 2022-01-19 21:55:02 -05:00
Joel DeTeves
dba3bf8ce9 Clean up volume inits, fix missing init for certs volume 2022-01-18 15:10:46 -08:00
Dan
3f32234c93 Merge pull request #945 from silversword411/develop
docs - enable keys and FAQ tweaks
2022-01-17 22:23:18 -08:00
silversword411
2863e64e3b docs - faq 2022-01-18 01:09:46 -05:00
silversword411
68ec78e01c docs - FAQ tweaks 2022-01-18 00:58:54 -05:00
silversword411
3a7c506a8f docs - enabling keys 2022-01-18 00:04:20 -05:00
Dan
1ca63ed2d2 Merge pull request #944 from silversword411/develop
docs - api examples and more
2022-01-17 20:28:32 -08:00
silversword411
e9e98ebcfc docs - api examples and more 2022-01-17 23:23:42 -05:00
Dan
04de7998af Merge pull request #941 from silversword411/develop
docs - docker backup options
2022-01-17 19:57:54 -08:00
Dan
a5d02dc34a Merge pull request #940 from Yamacore/develop
fixed tooltip error
2022-01-17 19:57:32 -08:00
Dan
6181b0466e Merge pull request #938 from iamkhris/develop
Add files via upload
2022-01-17 19:56:57 -08:00
Joel DeTeves
810d8f637d Set redis container to run as non-root 2022-01-17 15:18:21 -08:00
Joel DeTeves
223b3e81d5 Make NGINX_HOST_PORT configurable for K8s load balancer compatibility 2022-01-17 12:28:33 -08:00
silversword411
3a8b5bbd3f docs - docker backup options 2022-01-17 12:53:19 -05:00
Yamacore
ecf3b33ca7 fixed tooltip error
instead of "Continue if task if an action fails"
changed to "Continue task if an action fails"
2022-01-17 16:12:37 +01:00
Joel DeTeves
006b20351e Use uniform UID (1000) + fix permission for tactical-frontend container 2022-01-17 01:12:18 -08:00
Joel DeTeves
4b577c9541 Set docker-compose to run as non-root on all applicable containers 2022-01-17 01:03:21 -08:00
Joel DeTeves
8db59458a8 Make init container volume mount paths more accurate to avoid potential conflicts 2022-01-17 00:56:52 -08:00
Joel DeTeves
7eed5f09aa Fix permissions for mongodb container 2022-01-17 00:30:39 -08:00
Joel DeTeves
a1bb265222 Make NATS & NGINX container run as same UID (1000), fix NATS supervisord permission 2022-01-17 00:08:31 -08:00
Joel DeTeves
0235f33f8b Fix incorrect ports for nginx & mesh inits 2022-01-16 23:34:54 -08:00
Joel DeTeves
3d6fca85db Fix permissions for NGINX container, remove duplicate initialization for TACTICAL_DIR 2022-01-16 23:00:52 -08:00
Joel DeTeves
4c06da0646 Fix permissions for meshcentral container 2022-01-16 22:46:49 -08:00
Christopher Phillips
f63603eb84 Add files via upload
Sends Windows 10 Toast alert when password expiration reaches 7, 3, 2, and 1 days.  Works with both local and domain accounts.  Best to setup as a scheduled task, but can also be run manually.  On 1 day alert, an "Urgent" BurntToastLogo is downloaded and used instead of the regular logo to indicate importance.  These files are hosted on a site you have access to.
2022-01-16 14:54:59 -07:00
Joel DeTeves
44418ef295 Switch tactical-meshcentral to run as non-root 2022-01-16 11:13:27 -08:00
wh1te909
2a67218a34 fix lockfile version 2022-01-16 08:02:58 +00:00
wh1te909
911586ed0b update reqs 2022-01-16 07:47:59 +00:00
Dan
9d6a6620e3 Merge pull request #935 from silversword411/develop
docs - adding to how it all works
2022-01-15 23:44:32 -08:00
Joel DeTeves
598d0acd8e Fix incorrect ports on tactical-nginx container 2022-01-15 21:25:33 -08:00
Joel DeTeves
f16ece6207 Switch tactical-nats to run as non-root 2022-01-15 21:21:58 -08:00
Joel DeTeves
9b55bc9892 Switch tactical-nginx to nginx-unprivileged container 2022-01-15 20:20:53 -08:00
Joel DeTeves
707e67918b Switch tactical-frontend to nginx-unprivileged container 2022-01-15 19:12:04 -08:00
Joel DeTeves
faac572c30 Change tactical container uwsgi ports 2022-01-15 17:38:55 -08:00
silversword411
571b37695b docs - adding to how it all works 2022-01-15 13:17:16 -05:00
wh1te909
227adc459f update demo 2022-01-15 02:39:30 +00:00
wh1te909
2ee36f1a9c fix old version refresh needed banner not displaying 2022-01-14 07:51:09 +00:00
wh1te909
d0ce2a46ac bump version 2022-01-14 05:33:07 +00:00
wh1te909
7e5bc4e1ce add back debug tab 2022-01-14 05:29:24 +00:00
wh1te909
d2b6d0a0ff make field required 2022-01-14 05:29:01 +00:00
wh1te909
542b0658b8 fix reboot now/later fixes #933 2022-01-13 23:07:25 +00:00
Dan
e73c7e19b5 Merge pull request #934 from iamkhris/develop
Add files via upload
2022-01-13 14:43:57 -08:00
Dan
6a32ed7d7b Merge pull request #932 from bbrendon/patch-3
probably a copy paste error
2022-01-13 14:43:04 -08:00
Christopher Phillips
a63001f17c Add files via upload
Sends Windows 10 Toast alert when password expiration reaches 7, 3, 2, and 1 days.  Works with both local and domain accounts.  Best to setup as a scheduled task, but can also be run manually.  On 1 day alert, an "Urgent" BurntToastLogo is downloaded and used instead of the regular logo to indicate importance.  These files are hosted on a site you have access to.
2022-01-13 11:42:26 -07:00
bbrendon
4d1ad9c832 probably a copy paste error 2022-01-13 08:06:59 -08:00
wh1te909
454aa6ccda bump version 2022-01-13 02:48:22 +00:00
wh1te909
85ffebb3fa fix post update tasks for policy tasks 2022-01-13 02:47:34 +00:00
wh1te909
9e86020ef7 bump version 2022-01-13 02:03:13 +00:00
wh1te909
d66a41a8a3 bump versions 2022-01-12 23:24:52 +00:00
wh1te909
90914bff14 bump mesh 2022-01-12 21:42:40 +00:00
Dan
62414848f4 Merge pull request #930 from silversword411/develop
docs - av eset
2022-01-12 13:11:25 -08:00
Dan
d4ece6ecd7 Merge pull request #929 from iamkhris/develop
Add files via upload
2022-01-12 13:11:11 -08:00
silversword411
d1ec60bb63 docs - av eset 2022-01-12 15:31:34 -05:00
Christopher Phillips
4f672c736b Add files via upload
Sends Windows 10 Toast alert when password expiration reaches 7, 3, 2, and 1 days.  Works with both local and domain accounts.  Best to setup as a scheduled task, but can also be run manually.  On 1 day alert, an "Urgent" BurntToastLogo is downloaded and used instead of the regular logo to indicate importance.  These files are hosted on a site you have access to.
2022-01-12 09:51:06 -07:00
Dan
2e5c351d8b Merge pull request #927 from silversword411/develop
docs - av and faq additions
2022-01-11 14:14:55 -08:00
silversword411
3562553346 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2022-01-11 16:58:35 -05:00
silversword411
4750b292a5 docs - av, faq additions 2022-01-11 16:58:33 -05:00
Dan
3eb0561e90 Merge pull request #925 from yaroz/patch-1
Get Anydesk ID for licensed or unlicensed installs.
2022-01-11 09:39:59 -08:00
Dan
abb118c8ca Merge pull request #924 from lcsnetworks/mesh_smtp_settings
Make Mesh SMTP settings configurable
2022-01-11 09:38:53 -08:00
wh1te909
2818a229b6 fix bit to string 2022-01-11 03:16:11 +00:00
sadnub
a9b8af3677 fix last day of month 2022-01-10 20:28:26 -05:00
yaroz
0354da00da Update Win_AnyDesk_Get_Anynet_ID.ps1
Licensed AnyDesk installs do not save system.conf file to the $GoodPath\AnyDesk directory.  Searches subdirectories of $GoodPath for system.conf and uses the result to get the ID from.
2022-01-10 16:07:35 -05:00
Joel DeTeves
b179587475 Make Mesh SMTP settings configurable 2022-01-10 12:53:33 -08:00
wh1te909
3021f90bc5 agent ver check 2022-01-10 20:00:11 +00:00
wh1te909
a14b0278c8 remove dead code for unsupported agents 2022-01-10 19:32:48 +00:00
wh1te909
80070b333e fix exception in automation svc manual mode 2022-01-10 18:08:35 +00:00
Dan
3aa8dcac11 Merge pull request #923 from silversword411/develop
docs - docker 2fa reset
2022-01-10 09:34:51 -08:00
silversword411
e920f05611 docs - docker 2fa reset 2022-01-10 09:24:15 -05:00
wh1te909
3594afd3aa update reqs 2022-01-10 08:49:22 +00:00
wh1te909
9daaee8212 demo stuff 2022-01-10 08:37:30 +00:00
wh1te909
d022707349 remove unused imports 2022-01-10 08:09:36 +00:00
wh1te909
3948605ae6 remove deprecated endpoint 2022-01-10 08:00:20 +00:00
wh1te909
f2ded5fdd6 fix tz aware 2022-01-10 07:26:27 +00:00
wh1te909
00b47be181 add loading 2022-01-10 06:07:56 +00:00
sadnub
a2fac5d946 changes nats file watcher to use the NATS_CONFIG variable 2022-01-09 21:36:21 -05:00
sadnub
a00b5bb36b convert old scheduled type tasks to daily 2022-01-09 21:25:26 -05:00
wh1te909
d4fbc34085 fix collector task button when editing task 2022-01-10 01:49:59 +00:00
wh1te909
e9e3031992 add migration 2022-01-10 01:13:41 +00:00
sadnub
c2c7553f56 convert task to new format 2022-01-09 16:04:00 -05:00
sadnub
4e60cb89c9 fix remove if not scheduled 2022-01-09 12:17:07 -05:00
sadnub
ec4523240f remove inotify installation from nats docker image 2022-01-09 11:49:07 -05:00
sadnub
1655ddbcaa fix/add tests and add additional serverside validation for tasks 2022-01-09 11:41:52 -05:00
sadnub
997c677f30 wip 2022-01-08 21:46:32 -05:00
wh1te909
d5fc8a2d7e reduce the watcher interval to 1 second to prevent nats auth errors on first check-in 2022-01-09 01:11:57 +00:00
wh1te909
3bcd0302a8 fix django admin error 2022-01-09 01:02:31 +00:00
wh1te909
de91b7e8af update reqs 2022-01-08 10:34:02 +00:00
Dan
7efd1d7c9e Merge pull request #921 from silversword411/develop
docs - sophos and index update
2022-01-08 02:02:10 -08:00
Dan
b5151a2178 Merge pull request #920 from lcsnetworks/nats_config_watcher
Replace inotify with custom config watcher script
2022-01-08 02:01:21 -08:00
silversword411
c8432020c6 docs - Add Script Variables to Index 2022-01-07 12:35:05 -05:00
wh1te909
2c9d413a1a update nats docker 2022-01-07 08:04:37 +00:00
Joel DeTeves
cdf842e7ad Make NATS config watcher interval adjustable 2022-01-06 23:15:11 -08:00
Joel DeTeves
c917007949 Replace inotify with custom config watcher script 2022-01-06 22:49:01 -08:00
wh1te909
64278c6b3c update reqs 2022-01-07 06:46:55 +00:00
wh1te909
10a01ed14a add migration 2022-01-07 06:44:24 +00:00
sadnub
ba3bd1407b fix cert path in dev and prod 2022-01-06 09:56:33 -05:00
sadnub
73666c9a04 remove check for cert path exists for docker 2022-01-06 09:35:54 -05:00
sadnub
eae24083c9 fix docker dev with latest prod docker image options 2022-01-05 21:17:59 -05:00
silversword411
a644510c27 docs - Sophos rules 2022-01-05 11:12:14 -05:00
Dan
57859d0da2 Merge pull request #910 from silversword411/develop
docs - script temp, support, updating script run info, mesh agent blank data
2022-01-03 13:28:31 -08:00
silversword411
057f0ff648 docs - support template typo 2022-01-03 12:00:10 -05:00
sadnub
05d1c867f2 Merge pull request #911 from lcsnetworks/mesh-ws-mask-override
Add option to enable webSocketMaskOverride in MeshCentral config
2022-01-01 11:49:31 -05:00
Joel DeTeves
a2238fa435 Add option to enable webSocketMaskOverride in MeshCentral config 2021-12-31 19:31:18 -08:00
silversword411
12b7426a7c docs - mesh agent blank data 2021-12-31 17:38:47 -05:00
silversword411
5148d613a7 docs - updating script run info 2021-12-31 17:23:09 -05:00
sadnub
f455c15882 fix task edits not involving task_type 2021-12-31 15:11:33 -05:00
silversword411
618fdabd0e docs - support template update 2021-12-31 14:15:24 -05:00
silversword411
3b69e2896c docs - script temp location 2021-12-31 13:38:13 -05:00
sadnub
7306b63ab1 set some default values for task settings 2021-12-31 13:33:59 -05:00
sadnub
7e3133caa2 automated task rework 2021-12-30 23:56:37 -05:00
sadnub
560901d714 Merge pull request #909 from lcsnetworks/fix_get_mesh_exe_url
Update get_mesh_exe_url command to use MESH_WS_URL for docker
2021-12-30 20:19:20 -05:00
Joel DeTeves
166ce9ae78 Update get_mesh_exe_url command to use MESH_WS_URL for docker 2021-12-30 15:53:31 -08:00
Dan
d3395a685e Merge pull request #908 from silversword411/develop
Docs - update faq and mesh agent recovery
2021-12-30 13:55:31 -08:00
silversword411
6d5e9a8566 docs - agent repair 2021-12-30 16:43:05 -05:00
silversword411
69ec03feb4 docs - faq updates 2021-12-30 16:42:50 -05:00
sadnub
f92982cd5a fix quotes around cert path in tactical docker image 2021-12-30 08:50:10 -05:00
sadnub
5570f2b464 Merge pull request #907 from lcsnetworks/set_ssl_path
Make cert pub & private paths configurable
2021-12-29 21:56:25 -05:00
Joel DeTeves
ad19dc0240 Make cert pub & private paths configurable 2021-12-29 18:01:37 -08:00
sadnub
9b1d4faff8 fix typo in nginx config 2021-12-29 09:26:15 -05:00
Dan
76756d20e9 Merge pull request #904 from silversword411/develop
docs - nats-api update
2021-12-28 15:50:30 -08:00
sadnub
e564500480 update mesh initial setup command to use MESH_WS_URL for docker 2021-12-28 00:35:02 -05:00
sadnub
19c15ce58d Add configurable mesh websocket url 2021-12-28 00:31:35 -05:00
sadnub
a027785098 Merge pull request #905 from lcsnetworks/nginx_config_vars
Replace hardcoded services & DNS resolvers in NGINX config with variables
2021-12-28 00:27:02 -05:00
Joel DeTeves
36a9f10aae Replace hardcoded services in NGINX config with variables 2021-12-27 15:46:11 -08:00
silversword411
99a11a4b53 docs - nats-api update 2021-12-27 17:01:05 -05:00
wh1te909
55cac4465c speed up client/site tree loading and add popout button to summary tab 2021-12-26 09:36:56 +00:00
wh1te909
ff395fd074 update api docs 2021-12-24 21:15:43 +00:00
wh1te909
972b6e09c7 update docs fixes #896 2021-12-24 21:00:58 +00:00
Dan
e793a33b15 Merge pull request #901 from silversword411/develop
docs - enable swagger
2021-12-24 12:04:04 -08:00
silversword411
e70d4ff3f3 docs - api swagger tweaks 2021-12-24 14:50:02 -05:00
silversword411
cd0635d3a0 docs - enable swagger 2021-12-24 11:37:36 -05:00
wh1te909
81702d8595 update middleware method 2021-12-23 23:07:19 +00:00
sadnub
aaa4a65b04 fix tests 2021-12-23 14:47:44 -05:00
sadnub
430797e626 add take control button to summary 2021-12-23 14:44:04 -05:00
sadnub
d454001f49 fixed #874 2021-12-23 14:00:05 -05:00
sadnub
bd90ee1f58 added agent status page and added #332 2021-12-23 13:57:37 -05:00
wh1te909
196aaa5427 more demo stuff 2021-12-23 07:15:34 +00:00
wh1te909
6e42233b33 fix export button not working fixes #895 2021-12-22 22:10:52 +00:00
Dan
8e44df8525 Merge pull request #894 from MalteKiefer/feature/script-update-lenovo-drivers
added script for lenovo driver updates
2021-12-22 12:03:00 -08:00
wh1te909
a8a1536941 black 2021-12-22 19:58:09 +00:00
silversword411
99d1728c70 scripts_wip - working on newer version w/features 2021-12-22 12:57:55 -05:00
Malte Kiefer
6bbb92cdb9 move script to correct location 2021-12-22 16:30:35 +01:00
Malte Kiefer
b80e7c06bf added script for lenovo driver updates 2021-12-22 15:47:52 +01:00
wh1te909
bf467b874c make site dropdown required 2021-12-22 06:19:28 +00:00
wh1te909
43c9f6be56 add script to generate fake agents for demo 2021-12-22 06:15:40 +00:00
Dan
6811a4f4ae Merge pull request #890 from silversword411/develop
docs - link add
2021-12-21 22:13:18 -08:00
silversword411
1f16dd9c43 docs - av 2021-12-22 00:27:29 -05:00
silversword411
63a43ce104 docs - link add 2021-12-21 22:23:26 -05:00
wh1te909
bd7ce5417e add demo middleware 2021-12-22 02:34:36 +00:00
Dan
941ee54a97 Merge pull request #889 from silversword411/develop
docs - av exclusions
2021-12-21 11:04:42 -08:00
wh1te909
a5d4a64f47 nginx conf updates for older installs fixes #888 2021-12-21 19:04:00 +00:00
silversword411
d96fcd4a98 docs - av exclusions 2021-12-21 12:26:24 -05:00
Dan
de42e2f747 Merge pull request #887 from silversword411/develop
docs - sc and install server, and script_wip
2021-12-20 16:59:59 -08:00
silversword411
822a93aeb6 docs - sc and install server, and script_wip 2021-12-20 16:06:54 -05:00
Dan
c31b4aaeff Merge pull request #886 from silversword411/develop
script_wip - admin LAPS script
2021-12-20 10:51:01 -08:00
Dan
8c9a386054 Merge pull request #884 from MalteKiefer/feature/script-get-securepoint-deviceid
added script to get securepoint deviceid
2021-12-20 10:50:46 -08:00
silversword411
8c90933615 docs - fix TOC and typo 2021-12-20 12:35:43 -05:00
silversword411
6f8c242333 script_wip - admin LAPS script 2021-12-20 12:20:43 -05:00
Malte Kiefer
fe8b66873a added script to get securepoint deviceid 2021-12-20 10:32:08 +01:00
wh1te909
983a5c2034 bump versions 2021-12-20 05:47:00 +00:00
wh1te909
15829f04a3 update reqs 2021-12-20 05:46:12 +00:00
wh1te909
934618bc1c bump backup script version 2021-12-20 04:27:12 +00:00
Dan
2c5ec75b88 Merge pull request #881 from diskraider/patch-1
Change timeout method
2021-12-19 19:56:03 -08:00
diskraider
df11fd744f Change timeout method
The current timeout results in an error "ERROR: Input redirection is not supported, exiting the process immediately.".

Reusing the ping tool to act as a timeout resolves this error because the batch script is not producing a user interruptable timeout but will still produce a 4-5 second timeout.
2021-12-19 22:10:14 -05:00
wh1te909
4dba0fb43d update uninstall params 2021-12-20 00:48:55 +00:00
Dan
7a0d86b8dd Merge pull request #878 from silversword411/develop
docs - backup and silent uninstall tweaks
2021-12-19 16:42:53 -08:00
silversword411
a94cd98e0f docs - backup and silent uninstall tweaks 2021-12-19 13:48:25 -05:00
wh1te909
8e95e51edc reduce ram reqs 2021-12-19 00:36:32 +00:00
sadnub
6f1b00284a make post_update_tasks run on init container start 2021-12-17 18:25:53 -05:00
Dan
58549a6cac Merge pull request #875 from silversword411/develop
docs - mesh download multiple
2021-12-17 14:15:41 -08:00
silversword411
acc9a6118f docs - mesh download multiple 2021-12-17 17:04:50 -05:00
Dan
c7811e861c Merge pull request #873 from NiceGuyIT/pr-872
Fixes #872: backup.sh does not have EOL
2021-12-16 15:48:28 -08:00
Dan
55cf766ff0 Merge pull request #871 from silversword411/develop
docs - 3rd party Screenconnect AIO, update video, cron backups, sys reqs. Script update windows update settings removal
2021-12-16 15:48:13 -08:00
silversword411
a1eaf38324 docs code signing emphasis 2021-12-16 18:10:01 -05:00
silversword411
c6788092d3 docs - sys req info 2021-12-16 14:58:15 -05:00
David Randall
f89f74ef3f Fixes #872: backup.sh does not have EOL
Add EOL to backup.sh so CRON doesn't fail.
2021-12-16 14:22:43 -05:00
silversword411
3e40f02001 docs cron backups 2021-12-16 14:19:23 -05:00
silversword411
c169967c1b docs - video of updating server 2021-12-16 13:17:16 -05:00
silversword411
2830e7c569 script - tweak AUOptions revert 2021-12-16 12:57:09 -05:00
silversword411
415f08ba3a docs - 2rd party Screenconnect AIO 2021-12-16 12:27:24 -05:00
Dan
d726bcdc19 Merge pull request #866 from silversword411/develop
docs: gpo script update and wip script for api example
2021-12-14 12:12:41 -08:00
silversword411
f259c25a70 docs updating install agent script 2021-12-14 13:20:36 -05:00
silversword411
4db937cf1f Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-12-14 10:42:22 -05:00
silversword411
dad9d0660c script_wip 2021-12-14 10:42:15 -05:00
Dan
0c450a5bb2 Merge pull request #863 from silversword411/develop
docs faq log4j
2021-12-13 23:25:23 -08:00
silversword411
ef59819c01 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-12-13 22:07:02 -05:00
silversword411
c651e7c84b docs faq log4j 2021-12-13 22:07:00 -05:00
Dan
20b8debb1c Merge pull request #862 from silversword411/develop
docs - updating index
2021-12-13 17:52:16 -08:00
Dan
dd5743f0a1 Merge pull request #861 from bc24fl/develop
Added Printer Restart Jobs Community Script
2021-12-13 17:51:57 -08:00
silversword
7da2b51fae docs - updating index 2021-12-13 20:12:09 -05:00
bc24fl
0236800392 Added Printer Restart Jobs Community Script 2021-12-13 19:52:10 -05:00
wh1te909
4f822878f7 sorting fixes #857 2021-12-13 22:50:16 +00:00
wh1te909
c2810e5fe5 update reqs 2021-12-13 22:49:26 +00:00
Dan
b89ba4b801 Merge pull request #860 from silversword411/develop
docs - howitallworks nats server service
2021-12-13 00:09:48 -08:00
silversword411
07c680b839 docs - howitallworks nats server service 2021-12-13 03:02:14 -05:00
Dan
fd50db4eab Merge pull request #856 from bc24fl/develop
Added Sophos Endpoint Install Community Script
2021-12-12 23:08:50 -08:00
Dan
0ee95b36a6 Merge pull request #853 from Data4ITBV/develop
Vulnerability fix
2021-12-12 23:08:25 -08:00
Dan
b8cf07149e Merge pull request #852 from silversword411/develop
docs - nginx proxy info
2021-12-12 23:01:05 -08:00
silversword411
1b699f1a87 Merge branch 'wh1te909:develop' into develop 2021-12-12 13:46:10 -05:00
Michael Maertzdorf
d3bfd238d3 Create SECURITY.md 2021-12-12 01:54:18 +01:00
Michael Maertzdorf
1f43abb3c8 Create devskim-analysis.yml 2021-12-12 01:44:04 +01:00
bc24fl
287c753e4a Added Sophos Endpoint Install Community Script 2021-12-11 13:34:53 -05:00
bc24fl
8a5374d31a Added Sophos Endpoint Install Community Script 2021-12-11 13:31:39 -05:00
Michael Maertzdorf
e219eaa934 Merge pull request #1 from Data4ITBV/dependabot/pip/api/tacticalrmm/django-3.2.10
Bump django from 3.2.9 to 3.2.10 in /api/tacticalrmm
2021-12-11 11:49:27 +01:00
Michael Maertzdorf
fd314480ca Create codeql-analysis.yml 2021-12-11 11:48:49 +01:00
dependabot[bot]
dd45396cf3 Bump django from 3.2.9 to 3.2.10 in /api/tacticalrmm
Bumps [django](https://github.com/django/django) from 3.2.9 to 3.2.10.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.9...3.2.10)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 10:48:42 +00:00
sadnub
8011773af4 bump versions 2021-12-10 19:12:45 -05:00
sadnub
ddc69c692e formatting 2021-12-10 19:09:52 -05:00
sadnub
df925c9744 fix script tests 2021-12-10 19:04:20 -05:00
sadnub
1726341aad remove script hashing since it was erroring out on some characters 2021-12-10 18:51:32 -05:00
sadnub
63b1ccc7a7 fix deleted community scripts not being removed from database 2021-12-10 18:50:51 -05:00
silversword411
ee5db31518 docs - nginx proxy info 2021-12-10 16:21:53 -05:00
Dan
e80397c857 Merge pull request #847 from silversword411/develop
Community scripts - adding software install report, parameters to task scheduler, bluescreen report
2021-12-09 09:25:03 -08:00
silversword411
81aa7ca1a4 community scripts - user enable/disable 2021-12-09 01:44:40 -05:00
silversword411
f0f7695890 community script - Windows Update revert to MS Auto managed 2021-12-09 01:16:49 -05:00
silversword411
e7e8ce2f7a community script - adding chocolately list installed 2021-12-09 01:09:47 -05:00
silversword411
ba37a3f18d script library - task scheduler adding parameters 2021-12-09 01:00:41 -05:00
silversword411
60b11a7a5d community scripts - new user monitor add parameters 2021-12-09 00:56:13 -05:00
silversword411
29461c20a7 script library - Bluescreen Report 2021-12-09 00:50:43 -05:00
silversword411
2ff1f34543 Community scripts - adding software install report 2021-12-09 00:40:37 -05:00
wh1te909
b75d7f970f use getattr with a default for optional settings 2021-12-09 00:08:49 +00:00
wh1te909
204681f097 fix openfile limit with 1k+ agents 2021-12-09 00:06:33 +00:00
wh1te909
e239fe95a4 remove old checks from update script 2021-12-08 18:37:44 +00:00
Dan
0a101f061a Merge pull request #844 from silversword411/develop
adding docs tips n trick and fixing PR #833
2021-12-07 20:03:07 -08:00
silversword411
f112a17afa Fixing community scripts and docs from PR #833 2021-12-07 22:29:37 -05:00
silversword411
54658a66d2 docs - Adding tips n tricks 2021-12-07 22:12:44 -05:00
sadnub
6b8f5a76e4 Merge pull request #833 from r3die/develop
Splashtop 3rd party integration docs and script
2021-12-07 19:47:52 -05:00
Dan
623a5d338d Merge pull request #842 from silversword411/develop
Adding Repo to Help menu
2021-12-06 20:30:38 -08:00
silversword411
9c5565cfd5 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-12-06 22:50:12 -05:00
silversword411
722f2efaee Adding Github repo to Help menu 2021-12-06 22:49:45 -05:00
Dan
4928264204 Merge pull request #841 from silversword411/develop
docs update: mgmt commands
2021-12-04 01:14:20 -08:00
silversword411
12d62ddc2a docs - adding mgmt commands for docker 2021-12-03 11:13:44 -05:00
wh1te909
9c0993dac8 bump version 2021-12-02 07:50:52 +00:00
wh1te909
175486b7c4 fix bug where reboot_required field was not being updated when agent didn't have a patch policy and setting was set to 'inherit' 2021-12-02 01:39:41 +00:00
wh1te909
4760a287f6 update docs 2021-12-01 19:53:37 +00:00
wh1te909
0237b48c87 update reqs 2021-12-01 19:37:53 +00:00
Dan
95c9f22e6c Merge pull request #837 from silversword411/develop
docs tweak
2021-12-01 09:31:22 -08:00
silversword411
9b001219d5 docs tweak 2021-12-01 12:27:52 -05:00
Dan
6ff15efc7b Merge pull request #835 from silversword411/develop
docs outbound firewall rules
2021-11-30 16:07:56 -08:00
silversword411
6fe1dccc7e docs outbound firewall rules 2021-11-30 18:15:49 -05:00
sadnub
1c80f6f3fa Don't allow script arg variable assignment to callable attributes. Fixes #726 2021-11-29 22:18:05 -05:00
sadnub
54d3177fdd also don't include callable attributes with variable substitutions on alert scripts 2021-11-29 22:15:07 -05:00
r3die
a24ad245d2 splashtop 4rd party integration docs and script
splashtop 4rd party integration docs and script
2021-11-29 15:20:29 -08:00
wh1te909
f38cfdcadf fix test script 2021-11-29 18:51:18 +00:00
Dan
92e4ad8ccd Merge pull request #830 from silversword411/develop
docs updates
2021-11-29 09:20:14 -08:00
silversword411
3f3ab088d2 docs - adding bulk delete 2021-11-29 09:47:38 -05:00
sadnub
2c2cbaa175 formatting 2021-11-28 21:08:41 -05:00
sadnub
911b6bf863 fix sorting process cpu percentage. Fixes #831 2021-11-28 21:07:09 -05:00
sadnub
31462cab64 fix tests and also check for the correct script hash 2021-11-28 20:59:21 -05:00
silversword411
1ee35da62d docs updates 2021-11-28 15:31:37 -05:00
sadnub
edf4815595 make script file encoding consistent. utf-8 2021-11-28 13:23:47 -05:00
sadnub
06ccee5d18 add script hash field and calculate hash on script changes. Also removed storing scripts in DB as base64 strings. Should fix #634 2021-11-28 13:23:10 -05:00
sadnub
d5ad85725f fix duplicate package in dev requirements 2021-11-27 23:26:44 -05:00
sadnub
4d5bddb413 rework script form and add syntax field 2021-11-27 22:59:18 -05:00
Dan
2f4da7c381 Merge pull request #829 from ssteeltm/develop
Update unsupported_scripts.md
2021-11-26 16:11:50 -08:00
Dan
8b845fce03 Merge pull request #826 from NiceGuyIT/docs-howitallworks-services
Document server services and configuration
2021-11-26 16:11:24 -08:00
Dan
9fd15c38a9 Merge pull request #825 from silversword411/develop
scripts and docs
2021-11-26 16:11:00 -08:00
silversword411
ec1573d01f Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-11-26 18:05:02 -05:00
silversword411
92ec1cc9e7 docs - add howitallworks to index 2021-11-26 18:05:00 -05:00
Hugo Sampaio
8b2f9665ce Update unsupported_scripts.md
Added info about how I run rmm behind Apache Proxy
( discord Hugo )
2021-11-26 17:25:42 -03:00
silversword411
cb388a5a78 scripts - adding demo server scripts 2021-11-26 14:35:33 -05:00
David Randall
7f4389ae08 Docs: Server services
Document the server services and configuration.
2021-11-25 16:59:19 -05:00
silversword411
76d71beaa2 script_wip addition 2021-11-25 15:06:15 -05:00
silversword411
31bb9c2197 docs - tips and tricks add mesh connection logs 2021-11-25 08:59:21 -05:00
wh1te909
6a2cd5c45a reduce celery memory usage and optimize a query 2021-11-25 06:20:06 +00:00
Dan
520632514b Merge pull request #823 from silversword411/develop
docs - video embed #1 and getting started started
2021-11-24 15:25:46 -08:00
silversword411
f998b28d0b docs - numbering fix 2021-11-24 17:34:43 -05:00
silversword411
1a6587e9e6 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-11-24 17:13:09 -05:00
silversword411
9b4b729d19 undo vscode spellcheck 2021-11-24 17:12:58 -05:00
silversword411
e80345295e script library - adding security audit 2021-11-24 14:06:44 -05:00
silversword411
026c259a2e added vscode spellcheck, shouldn't go public 2021-11-24 11:32:04 -05:00
silversword411
63474c2269 community scripts - adding syntax to defender enable 2021-11-24 11:30:03 -05:00
silversword411
faa1a9312f scripts - adding parameter check 2021-11-24 11:25:15 -05:00
silversword411
23fa0726d5 docs - v1 of getting started guide 2021-11-24 10:10:46 -05:00
silversword411
22210eaf7d Merge branch 'wh1te909:develop' into develop 2021-11-23 23:40:47 -05:00
silversword411
dcd8bee676 docs - video embed 2021-11-23 23:40:29 -05:00
silversword411
06f0fa8f0e Revert "docs - video embed testing"
This reverts commit 6d0f9e2cd5.
2021-11-23 23:37:54 -05:00
silversword411
6d0f9e2cd5 docs - video embed testing 2021-11-23 23:33:25 -05:00
sadnub
732afdb65d move custom fields to tab in edit agent modal 2021-11-23 21:35:11 -05:00
sadnub
1a9e8742f7 remove the need to type agent name to delete agents in dashboard 2021-11-23 21:35:11 -05:00
sadnub
b8eda37339 Fix setting alert template when policy assignment changes 2021-11-23 21:35:11 -05:00
sadnub
5107db6169 add drf_spectacular to dev requirements 2021-11-23 21:35:11 -05:00
wh1te909
2c8f207454 add mgmt command to bulk delete agents 2021-11-22 20:26:10 +00:00
wh1te909
489bc9c3b3 optimize some queries 2021-11-22 17:24:48 +00:00
wh1te909
514713e883 don't log swagger 2021-11-22 17:23:38 +00:00
wh1te909
17cc0cd09c forgot to check core settings fixes #816 2021-11-22 17:18:58 +00:00
Dan
4475df1295 Merge pull request #815 from tremor021/develop
Update Defender script
2021-11-22 09:06:04 -08:00
Dan
fdad267cfd Merge pull request #814 from silversword411/develop
docs updates
2021-11-22 09:05:19 -08:00
silversword411
3684fc80f0 docs - spellchecking 2021-11-22 08:07:49 -05:00
silversword411
e97a5fef94 script library - adding syntax to tooltip helper 2021-11-22 00:14:19 -05:00
silversword411
de2972631f docs - tips about running scripts syntax 2021-11-21 23:02:47 -05:00
tremor021
e5b8fd67c8 Update Defender script 2021-11-22 02:14:11 +01:00
silversword411
5fade89e2d docs - fixing install and restore docs to eliminate confusion 2021-11-21 15:18:18 -05:00
wh1te909
e63d7a0b8a bump version 2021-11-21 02:24:07 +00:00
wh1te909
2a1b1849fa fix nats-api not working in docker 2021-11-21 02:02:29 +00:00
wh1te909
0461cb7f19 update docs 2021-11-20 22:21:02 +00:00
Dan
0932e0be03 Merge pull request #811 from silversword411/develop
docs updates
2021-11-20 14:17:11 -08:00
silversword411
4638ac9474 docs - reiterating no root and backup 2021-11-20 12:59:42 -05:00
silversword411
d8d7255029 docs - filter tips 2021-11-20 12:50:10 -05:00
wh1te909
fa05276c3f black 2021-11-19 20:00:22 +00:00
silversword411
e50a5d51d8 docs - troubleshooting enhancements 2021-11-19 14:14:12 -05:00
sadnub
c03ba78587 make swagger views optional 2021-11-19 13:58:38 -05:00
wh1te909
735b84b26d bump version 2021-11-19 17:39:14 +00:00
sadnub
8dd069ad67 push models.py file update for scripts 2021-11-19 12:13:20 -05:00
sadnub
1857e68003 change filename db field to not be required 2021-11-19 10:46:40 -05:00
wh1te909
9cb952b116 bump version 2021-11-19 08:04:25 +00:00
wh1te909
105e8089bb trigger an agent update task after rmm update 2021-11-19 07:25:32 +00:00
wh1te909
730f37f247 add debian 11 support and update reqs 2021-11-19 06:58:18 +00:00
wh1te909
284716751f update docs for new service 2021-11-19 06:32:15 +00:00
sadnub
8d0db699bf remove dynamic agent options function 2021-11-18 21:11:53 -05:00
Dan
53cf1cae58 Merge pull request #807 from silversword411/develop
docs and script adds
2021-11-18 12:32:22 -08:00
silversword411
307e4719e0 wip script - user enable/disabling 2021-11-18 12:23:52 -05:00
silversword411
5effae787a Community scripts - Fixing Drive Volume check 2021-11-18 10:45:25 -05:00
silversword411
6532be0b52 docs - reverting content tabs 2021-11-18 10:05:01 -05:00
silversword411
fb225a5347 community scripts add - Win11 check 2021-11-18 05:24:22 -05:00
silversword411
b83830a45e docs moving position 2021-11-18 05:20:12 -05:00
wh1te909
ca28288c33 add missing onMounted 2021-11-18 08:42:26 +00:00
wh1te909
b6f8d9cb25 change drive color based on percent closes #802 2021-11-18 07:46:17 +00:00
Dan
9cad0f11e5 Merge pull request #803 from silversword411/develop
Scripts and docs
2021-11-17 11:24:29 -08:00
silversword411
807be08566 docs - adding how to invalidate all auth tokens 2021-11-17 10:43:52 -05:00
sadnub
67f6a985f8 increase font size on script editors and fix import error 2021-11-16 21:16:03 -05:00
sadnub
f87d54ae8d move imports for styles and select light or dark theme for editor depending on if dark mode is enabled 2021-11-16 20:45:42 -05:00
sadnub
d894bf7271 move to ace text editor. Fixes script line wrap issue and more features. Fixes #712 2021-11-16 20:19:46 -05:00
sadnub
56e0e5cace formatting 2021-11-15 21:17:28 -05:00
sadnub
685084e784 add agent counts to client/site tooltip. Closes #426 2021-11-15 21:16:18 -05:00
sadnub
cbeec5a973 swagger api documentation start 2021-11-15 17:50:59 -05:00
sadnub
3fff56bcd7 cleanup script manager and snippet modals and move agent select dropdown for test script to script form 2021-11-15 17:50:26 -05:00
silversword411
c504c23eec docs add mesh token recovery 2021-11-15 16:47:18 -05:00
silversword411
16dae5a655 docs Updating index and adding permissions and considerations for choosing install type 2021-11-15 15:42:02 -05:00
silversword411
e512c5ae7d Merge branch 'wh1te909:develop' into develop 2021-11-15 15:39:56 -05:00
silversword411
094078b928 scripts wip adding disk status 2021-11-15 15:26:07 -05:00
wh1te909
34fc3ff919 fix issue where emails/sms were not being sent if recipients in global settings were empty, even if they were present in an alert template recipients 2021-11-15 00:05:42 +00:00
wh1te909
4391f48e78 add some tests 2021-11-14 19:52:21 +00:00
wh1te909
775608a3c0 update reqs 2021-11-14 19:51:28 +00:00
Dan
b326228901 Merge pull request #800 from silversword411/develop
script library - fixing choco
2021-11-14 11:27:40 -08:00
silversword411
b2e98173a8 script library - fixing choco 2021-11-14 13:04:37 -05:00
wh1te909
65c9b7952c have task runs appear in history tab closes #716 2021-11-14 09:18:32 +00:00
wh1te909
b9dc9e7d62 speed up some views 2021-11-14 09:15:43 +00:00
Dan
ce178d0354 Merge pull request #799 from silversword411/develop
Community scripts: Adding syntax for tooltip
2021-11-14 00:54:15 -08:00
sadnub
a3ff6efebc remove nats-api from api dev image 2021-11-13 16:56:50 -05:00
wh1te909
6a9bc56723 update for new service 2021-11-13 21:30:01 +00:00
wh1te909
c9ac158d25 Merge branch 'develop' of https://github.com/wh1te909/tacticalrmm into develop 2021-11-13 20:18:18 +00:00
silversword411
4b937a0fe8 Community scripts: Adding syntax for tooltip 2021-11-13 14:10:05 -05:00
sadnub
405bf26ac5 formatting 2021-11-13 13:40:26 -05:00
sadnub
5dcda0e0a0 allow q-select slots in tactical-dropdown. Fix info icon on run script dialog 2021-11-13 13:39:38 -05:00
sadnub
83e9b60308 when filtering agents add category to the side of options 2021-11-13 12:55:09 -05:00
sadnub
10b40b4730 script syntax highlighting. Resolves #702 2021-11-13 12:55:09 -05:00
wh1te909
79d6d804ef stringify errors before saving to db 2021-11-13 08:31:45 +00:00
wh1te909
e9c7b6d8f8 fix tests 2021-11-13 01:25:25 +00:00
wh1te909
4fcfbfb3f4 more go rework 2021-11-13 00:45:28 +00:00
wh1te909
30cde14ed3 update go mod 2021-11-13 00:36:57 +00:00
wh1te909
cf76e6f538 remove deprecated endpoint, add another deprecation 2021-11-13 00:33:52 +00:00
wh1te909
d0f600ec8d filter_software now handled by agent 2021-11-13 00:32:44 +00:00
wh1te909
675f9e956f remove some celery tasks now handled by agent/go 2021-11-13 00:32:03 +00:00
wh1te909
381605a6bb remove tests 2021-11-13 00:31:06 +00:00
wh1te909
0fce66062b remove some utils now handled by agent 2021-11-13 00:30:45 +00:00
wh1te909
747cc9e5da remove tasks 2021-11-13 00:27:34 +00:00
sadnub
25a1b464da Fix block inheritance on client/site 2021-11-10 22:45:25 -05:00
Dan
3b6738b547 Merge pull request #798 from silversword411/develop
Wip script additions
2021-11-10 11:12:28 -08:00
silversword411
fc93e3e97f Merge branch 'wh1te909:develop' into develop 2021-11-10 11:01:34 -05:00
silversword411
0edbb13d48 scripts wip revert windows update to default settings 2021-11-10 11:00:44 -05:00
silversword411
673687341c scripts wip adding 2021-11-10 09:03:17 -05:00
wh1te909
3fa89b58df bump version 2021-11-09 06:11:33 +00:00
wh1te909
a43a9c8543 remove old wording 2021-11-09 05:54:17 +00:00
sadnub
45deda4dea fix saving agents 2021-11-08 22:25:07 -05:00
sadnub
6ec46f02a9 fix deleting automation task #791 2021-11-08 21:17:41 -05:00
sadnub
d643c17ff1 fix remote background height and adjust other items to fit to screen 2021-11-08 21:13:01 -05:00
wh1te909
e5de89c6b4 more loading fixes 2021-11-09 01:23:01 +00:00
wh1te909
c21e7c632d fix debug log loading 2021-11-09 01:06:11 +00:00
wh1te909
6ae771682a fix task loading fixes #790 2021-11-08 22:00:40 +00:00
wh1te909
bf2075b902 pending actions loading fixes #789 2021-11-08 21:56:57 +00:00
wh1te909
b84d4a99b8 bump version 2021-11-07 21:00:25 +00:00
Dan
cce9dfe585 Merge pull request #788 from silversword411/develop
adding wip scripts
2021-11-07 12:34:43 -08:00
wh1te909
166be395b9 fix email/sms 2021-11-07 20:33:58 +00:00
wh1te909
fa3f5f8d68 fix alerts still polling on logout 2021-11-07 20:11:59 +00:00
sadnub
2926b68c32 change permission_classes under class view instead of decorator 2021-11-07 13:12:45 -05:00
sadnub
a55f187958 fit task control to screen 2021-11-07 13:00:53 -05:00
sadnub
c76d263375 stop loading when no audit log permissions 2021-11-07 12:37:36 -05:00
silversword411
6740d97f8f Merge branch 'wh1te909:develop' into develop 2021-11-07 10:02:16 -05:00
sadnub
b079eebe79 add restricted users to the client/site that they are adding to the system 2021-11-07 07:56:12 -05:00
sadnub
363e48a1e8 formatting 2021-11-07 07:34:14 -05:00
sadnub
f60e4e3e4f fix email test sending 2021-11-07 07:31:45 -05:00
sadnub
1b02974efa fix core settings showing when permissions should restrict it 2021-11-07 07:24:46 -05:00
wh1te909
496abdd230 fix sorting 2021-11-07 09:39:04 +00:00
wh1te909
bc495d77d1 fix django admin render error 2021-11-07 09:38:08 +00:00
wh1te909
0786163dc3 bump versions 2021-11-07 06:44:50 +00:00
wh1te909
ed85611e75 remove old setting 2021-11-07 06:41:35 +00:00
wh1te909
86ebfce44a fix prop name 2021-11-07 04:30:17 +00:00
wh1te909
dae51cff51 black 2021-11-07 04:17:08 +00:00
wh1te909
358a2e7220 fix dashboard refresh 2021-11-07 03:53:29 +00:00
wh1te909
d45353e8c8 fix agent update 2021-11-07 03:37:30 +00:00
wh1te909
2f56e4e3a1 bump mesh 2021-11-07 00:37:07 +00:00
wh1te909
0e503f8273 remove a debug log message 2021-11-07 00:34:16 +00:00
wh1te909
876fe803f5 try again 2021-11-07 00:27:16 +00:00
wh1te909
6adb9678b6 please work 2021-11-07 00:24:58 +00:00
wh1te909
39bf7ba4a9 fix coverage 2021-11-07 00:20:38 +00:00
wh1te909
5da6e2ff99 black 2021-11-07 00:02:27 +00:00
sadnub
44603c41a2 alerts permissions and fixes 2021-11-06 19:54:44 -04:00
wh1te909
0feb982a73 add migrations for new timezones 2021-11-06 23:54:19 +00:00
Dan
d93cb32f2e Merge pull request #770 from cocorocho/develop
formatting
2021-11-06 16:52:26 -07:00
Dan
40c47eace2 Merge branch 'develop' into develop 2021-11-06 16:50:19 -07:00
wh1te909
509bdd879c update reqs 2021-11-06 23:48:56 +00:00
Dan
b98ebb6e9f Merge pull request #755 from sadnub/develop
Per site/client permissions and other refactoring
2021-11-06 16:25:49 -07:00
Dan
924ddecff0 Merge pull request #780 from saulens22/patch-1
Remove Test-License script check
2021-11-06 16:16:35 -07:00
wh1te909
ca64fd218d fix loading 2021-11-06 23:12:09 +00:00
wh1te909
9b12b55acd fix title 2021-11-06 23:08:54 +00:00
wh1te909
450239564a add loading 2021-11-06 23:05:08 +00:00
Saulius Kazokas
bb1cc62d2a Remove Test-License script check
Leftover from previous commit
2021-11-07 01:02:38 +02:00
wh1te909
b4875c1e2d black 2021-11-06 22:45:14 +00:00
wh1te909
a21440d663 optimize query 2021-11-06 22:41:51 +00:00
wh1te909
eb6836b63c reduce api calls 2021-11-06 22:39:21 +00:00
wh1te909
b39a2690c1 fix refresh, change icon size 2021-11-06 22:33:19 +00:00
silversword411
706902da1c wip script - user logon auditing 2021-11-06 15:30:51 -04:00
silversword411
d5104b5d27 Add veeam wip scripts 2021-11-06 15:23:16 -04:00
wh1te909
a13ae5c4b1 update middleware urls 2021-11-06 08:25:59 +00:00
wh1te909
a92d1d9958 fix pending actions 2021-11-06 08:11:43 +00:00
wh1te909
10852a9427 stop loading after uninstall 2021-11-05 22:34:20 +00:00
wh1te909
b757ce1e38 fix url action for agents 2021-11-05 21:15:59 +00:00
sadnub
91e75f3fa2 Merge branch 'develop' of https://github.com/sadnub/tacticalrmm into develop 2021-11-05 16:01:06 -04:00
sadnub
6c8e55eb2f fix alert exclusions and policy exclusion modals 2021-11-05 16:01:00 -04:00
wh1te909
f821f700fa improve history tab show command output 2021-11-05 19:32:24 +00:00
wh1te909
d76d24408f fix double click agent params 2021-11-05 18:13:25 +00:00
wh1te909
7ad85dfe1c remove debug 2021-11-05 18:04:48 +00:00
wh1te909
7d8be0a719 fix url 2021-11-05 17:56:23 +00:00
sadnub
bac15c18e4 clean up unused vuex methods. Fix double-click action on agent table. Fix deleting clients and site reloading tree 2021-11-05 13:21:43 -04:00
sadnub
2f266d39e6 stop unnecessary DB calls for superusers on custom queryset 2021-11-05 12:28:03 -04:00
wh1te909
5726d1fc52 fix run task 2021-11-05 06:36:51 +00:00
wh1te909
69aee1823e fix ping check output 2021-11-05 06:23:46 +00:00
wh1te909
e6a0ae5f57 fix refresh 2021-11-05 05:34:29 +00:00
wh1te909
e5df566c7a typo 2021-11-05 05:14:15 +00:00
sadnub
81e173b609 migration to convert agent_id field onAuditLog to use agent_id isn't of agent pk 2021-11-04 22:08:53 -04:00
sadnub
d0ebcc6606 implement alerts permissions 2021-11-04 21:45:36 -04:00
sadnub
99c3fcf42a implement list scripts permissions 2021-11-04 21:17:55 -04:00
sadnub
794666e7cc supress 403 error messages on get and patch requests 2021-11-04 21:01:11 -04:00
sadnub
45abe4955d add list roles to accounts views 2021-11-04 21:01:11 -04:00
wh1te909
7eed421c70 fix my last commit 2021-11-04 22:33:49 +00:00
wh1te909
69f7c397c2 fix sms attempting to send when not fully configured 2021-11-04 22:26:05 +00:00
wh1te909
d2d136e922 fix missing function call 2021-11-04 21:36:33 +00:00
sadnub
396e435ae0 fix pip symbol is url for agent_id 2021-11-04 16:43:32 -04:00
sadnub
45d8e9102a convert mesh username to lowercase before creating token 2021-11-04 16:25:20 -04:00
sadnub
12a51deffa add permissions to custom fields in core settings 2021-11-04 16:25:20 -04:00
sadnub
f2f69abec2 increase celery worker init timeout 2021-11-04 16:25:20 -04:00
sadnub
02b7f962e9 move to inject/provide to refresh dashboard in nested components 2021-11-04 16:25:20 -04:00
sadnub
eb813e6b22 convert hr to q-separator 2021-11-04 16:25:20 -04:00
sadnub
5ddc604341 rework deployments ui, implement client/site permisssions, and tests 2021-11-04 16:25:20 -04:00
sadnub
313e672e93 add new roles to ui 2021-11-04 16:25:20 -04:00
sadnub
ce77ad6de4 fixed reboot later modal and allowed only certain pending actions to be deleted 2021-11-04 16:25:20 -04:00
sadnub
bea22690b1 improve remote background tabs 2021-11-04 16:25:20 -04:00
sadnub
c9a52bd7d0 fix tests broken by url changes 2021-11-04 16:25:20 -04:00
sadnub
a244a341ec rework agent recovery and permissions 2021-11-04 16:25:20 -04:00
sadnub
2b47870032 fix patch scan and install in agent table 2021-11-04 16:25:20 -04:00
sadnub
de9e35ae6a rework pending action permissions and write tests 2021-11-04 16:25:20 -04:00
sadnub
1a6fec8ca9 allow installing approved updated from winupdates tab 2021-11-04 16:25:20 -04:00
sadnub
094054cd99 ui fixes 2021-11-04 16:25:20 -04:00
sadnub
f85b8a81f1 fix alert checkboxes with alert template applied 2021-11-04 16:25:20 -04:00
sadnub
a44eaebf7c add migrations for new roles 2021-11-04 16:25:20 -04:00
sadnub
f37b3c063e fix agent edit 2021-11-04 16:25:20 -04:00
sadnub
6e5d5a3b82 fix some prop errors in addautomatedtask and fix display of assigned checks and tasks in policy check/task tabs 2021-11-04 16:25:20 -04:00
sadnub
bf0562d619 fix automation components and rework some views and urls 2021-11-04 16:25:20 -04:00
sadnub
ecaa81be3c rework alerts urls. added new permissions for alert templates. Make sure certain urls were protected. 2021-11-04 16:25:20 -04:00
sadnub
d98ae48935 rework patch reset policy modal to comp api and take into account permissions 2021-11-04 16:25:20 -04:00
sadnub
f52a76b16c update quasar pacakges 2021-11-04 16:25:20 -04:00
sadnub
d421c27602 fix remove agent and ping 2021-11-04 16:25:20 -04:00
sadnub
70e4cd4de1 rework reboot later modal to comp api and fixed reboot now and later 2021-11-04 16:25:20 -04:00
sadnub
29767e9265 fix bulk actions 2021-11-04 16:25:20 -04:00
sadnub
46d4c7f96d fix more update, version, bulk, and installer views and take permissions into account. Also fixed tests 2021-11-04 16:25:20 -04:00
sadnub
161a6f3923 clients and sites permissions tests and fixes 2021-11-04 16:25:20 -04:00
sadnub
53e912341b fix some agent table menu actions 2021-11-04 16:25:19 -04:00
sadnub
19396ea11a fix debuglog, auditlog, api auth tests 2021-11-04 16:25:19 -04:00
sadnub
1d9a5e742b fix alerts tests 2021-11-04 16:25:19 -04:00
sadnub
e8dfdd03f7 rework policy serializers that have clients/sites/agents return to filter by agent permissions 2021-11-04 16:25:19 -04:00
sadnub
2f5b15dac7 rework filter_by_role to allow chaining from other querysets 2021-11-04 16:25:19 -04:00
sadnub
525e1f5136 formatting 2021-11-04 16:25:19 -04:00
sadnub
7d63d188af fix client view 2021-11-04 16:25:19 -04:00
sadnub
87889c12ea refactor clients and sites to take into account new client/site permissions 2021-11-04 16:25:19 -04:00
sadnub
53d023f5ee fix clients tests 2021-11-04 16:25:19 -04:00
sadnub
1877ab8c67 rework client manager and modals to composition api. Improved client/site delete 2021-11-04 16:25:19 -04:00
sadnub
72a5a8cab7 fix client tree not loading correct agents 2021-11-04 16:25:19 -04:00
sadnub
221e49a978 mmodify clients urls, rework perms, and fix views 2021-11-04 16:25:19 -04:00
sadnub
1a4c67d173 fix run script modal 2021-11-04 16:25:19 -04:00
sadnub
42fd23ece3 fix audit manager tab and modal 2021-11-04 16:25:19 -04:00
sadnub
3035c0712a fix debug log and change agent dropdown to use agent_id versus pk 2021-11-04 16:25:19 -04:00
sadnub
61315f8bfd add tests for autotasks permissions 2021-11-04 16:25:19 -04:00
sadnub
52683124d8 rework task tab 2021-11-04 16:25:19 -04:00
sadnub
1f77390366 agent per site/client permissions initial, uri updates, comp api rework 2021-11-04 16:25:19 -04:00
sadnub
322d492540 change dashboard hostname default in env.example to be consistent with docs. Log nginx container access/error logs to stdout/stderr 2021-11-04 16:25:19 -04:00
Dan
f977d8cca9 Merge pull request #774 from silversword411/develop
Scripts library update
2021-11-02 12:38:06 -07:00
silversword411
a9aedea2bd docs Linking to Traefik howto 2021-11-02 11:28:24 -04:00
silversword411
5560bbeecb scripts - Defender status adding full details 2021-10-29 06:48:41 -04:00
cocorocho
f226206703 change API key creation function 2021-10-25 23:03:53 +03:00
cocorocho
170687226d formatting 2021-10-25 22:41:03 +03:00
Dan
d56d3dc271 Merge pull request #764 from silversword411/develop
Inverting exit codes
2021-10-18 13:14:35 -07:00
silversword411
32a202aff4 Inverting exit codes 2021-10-18 16:01:29 -04:00
Dan
6ee75e6e60 Merge pull request #762 from silversword411/develop
Docs and scripts updates
2021-10-18 09:26:36 -07:00
Dan
13d74cae3b Merge pull request #757 from mattthhdp/develop
Add Traefikv2 reverse proxy
2021-10-18 09:26:17 -07:00
silversword411
88651916b0 docs fix tipsntricks pic order 2021-10-14 11:07:05 -04:00
silversword411
be12505d2f docs fix tipsntricks pic order 2021-10-14 11:01:00 -04:00
Jaune
23fcf3b045 add RMM.toml
forgot to add i file
2021-10-12 20:31:11 -04:00
Jaune
9e7459b204 Add Traefikv2 reverse proxy
Should give a good way to use 
traefikv2 with 1 minor modification
 to the install script (changing the port)
with 2fa support on the mesh side
2021-10-12 17:08:38 -04:00
silversword411
4f0eb1d566 docs fix formatting 2021-10-12 02:17:47 -04:00
silversword411
ce00481f47 docs fix typo and domain name reference consistency 2021-10-12 02:02:42 -04:00
silversword411
f596af90ba wip fixing downloadurl 2021-10-11 11:10:56 -04:00
wh1te909
aff659b6b6 bump versions 2021-10-10 22:21:23 +00:00
wh1te909
58724d95fa no debian 11 for now 2021-10-10 21:21:51 +00:00
wh1te909
8d61fcd5c9 handle invalid tokens 2021-10-10 21:08:43 +00:00
wh1te909
3e1be53c36 update reqs 2021-10-08 06:18:15 +00:00
Dan
f3754588bd Merge pull request #743 from bc24fl/develop
Fixed sorting under Folder View in Script Manager
2021-10-07 22:42:33 -07:00
Dan
c4ffffeec8 Merge pull request #750 from silversword411/develop
docs and scripts updates
2021-10-07 22:35:24 -07:00
silversword411
5b69f6a358 scripts_wip adding dell command 2021-10-08 00:50:19 -04:00
silversword411
1af89a7447 Merge pull request #1 from silversword411/develop-wip
Develop wip
2021-10-08 00:47:37 -04:00
silversword411
90abd81035 docs Adding way to restrict admin access thru nginx 2021-10-08 00:45:20 -04:00
Dan
898824b13f Merge pull request #733 from isaacg123/patch-1
Minor cleanup tweaks
2021-10-07 21:29:56 -07:00
Dan
9d093aa7f8 Merge pull request #740 from bbrendon/patch-2
Update Win_Defender_QuickScan_Background.ps1
2021-10-07 21:28:26 -07:00
Irving
1770549f6c Fixed sorting under Folder View in Script Manager 2021-10-07 01:23:44 -04:00
silversword411
d21be77fd2 scripts_wip TRMM Agent Install script 2021-10-06 09:09:49 -04:00
silversword411
41a1c19877 docs adding cmd deploy script 2021-10-06 09:08:44 -04:00
bbrendon
9b6571ce68 Update Win_Defender_QuickScan_Background.ps1
I did some tests and don't see value in specifying a drive letter. `QuickScanAge` resets to 0 even without a drive letter.

Having a drive letter seems to also assume something that may not be true.
2021-10-04 12:29:41 -07:00
silversword411
88e98e4e35 docs adding HP link 2021-10-01 12:20:50 -04:00
silversword411
10c56ffbfa Fixing lenovo support link 2021-10-01 07:57:29 -04:00
silversword411
cb2c8d6f3c working on support questions 2021-10-01 07:22:08 -04:00
silversword411
ca62b850ce wip scripts adding 2021-10-01 07:17:04 -04:00
silversword411
5a75d4e140 docs troubleshooting tweaks 2021-10-01 07:15:45 -04:00
Dan
e0972b7c24 Merge pull request #737 from silversword411/develop
wip and docs updates
2021-09-30 12:17:46 -07:00
silversword411
0db497916d docs install tweaks 2021-09-30 00:32:53 -04:00
silversword411
23a0ad3c4e docs updating docker with LE info and improving headers 2021-09-29 22:41:11 -04:00
silversword411
2b4e1c4b67 docker add 2021-09-29 14:47:47 -04:00
silversword411
9b1b9244cf full chain cert docs 2021-09-29 13:56:33 -04:00
silversword411
ad570e9b16 wip and howitallworks tweaks 2021-09-28 14:30:34 -04:00
wh1te909
812ba6de62 add security policy closes #725 2021-09-27 05:55:51 +00:00
silversword411
8f97124adb docs troubleshooting tweak 2021-09-26 13:55:09 -04:00
wh1te909
28289838f9 change docs for uploading mesh agent 2021-09-25 23:47:15 +00:00
Dan
cca8a010c3 Merge pull request #736 from silversword411/develop
WIP works under the wire
2021-09-25 16:45:42 -07:00
wh1te909
91ab296692 update reqs 2021-09-25 23:23:03 +00:00
silversword411
ee6c9c4272 WIP works 2021-09-25 18:56:43 -04:00
isaacg123
21cd36fa92 Minor cleanup tweaks
https://evotec.xyz/the-curious-case-of-null-should-be-on-the-left-side-of-equality-comparisons-psscriptanalyzer/
2021-09-25 04:30:54 -05:00
sadnub
b1aafe3dbc Fix block_policy_inheritance not saving correctly when set in UI 2021-09-24 17:43:08 -04:00
Dan
5cd832de89 Merge pull request #711 from silversword411/develop
Docs tweaks
2021-09-24 13:48:28 -07:00
silversword411
24dd9d0518 WIP scripts adds and tweaks 2021-09-24 16:36:45 -04:00
sadnub
aab6ab810a formatting 2021-09-24 12:16:13 -04:00
sadnub
d1d6d5e71e fix sms message sending 2021-09-24 12:12:49 -04:00
sadnub
e67dd68522 formatting 2021-09-23 13:50:32 -04:00
sadnub
e25eae846d make two-factor prompt dialog persistent 2021-09-23 13:23:52 -04:00
sadnub
995eeaa455 remove console.log entries 2021-09-23 13:23:52 -04:00
sadnub
240c61b967 fix some audit log entries not typing to agent correctly 2021-09-23 13:23:52 -04:00
sadnub
2d8b0753b4 move upload mesh agent modal to core settings and rewrite to comp api 2021-09-23 13:23:52 -04:00
sadnub
44eab3de7f docker dev changes and nginx dev fix 2021-09-23 13:23:52 -04:00
sadnub
007be5bf95 Stop DatabaseError exception when update_fields hasn't been changed 2021-09-23 12:56:27 -04:00
silversword411
ee19c7c51f docs adding tidbits 2021-09-23 11:05:51 -04:00
sadnub
ce56afbdf9 Fix serialization error in view
Also moved policy processing to celery task
2021-09-23 11:02:45 -04:00
silversword411
51012695a1 docs adding mesh agent to trmm integration 2021-09-23 10:28:09 -04:00
silversword411
0eef2d2cc5 scripts fixing mt duplicati install script 2021-09-23 03:14:51 -04:00
silversword411
487f9f2815 docs adding install on synology docker. Thx ildrad 2021-09-21 12:48:49 -04:00
silversword411
d065adcd8e Adding contributing using browser to docs 2021-09-21 12:18:44 -04:00
silversword411
0d9a1dc5eb json args fix 2021-09-21 11:09:50 -04:00
silversword411
8f9ad15108 Preliminary release of script library parameters 2021-09-20 16:56:42 -04:00
silversword411
e538e9b843 requirements tweak 2021-09-20 12:45:30 -04:00
Dan
4a702b6813 Merge pull request #718 from Yamacore/develop
Fix nginx crash after netinstall
2021-09-17 19:24:24 -07:00
silversword411
1e6fd2c57a Docs updating automation policies 2021-09-17 11:46:25 -04:00
silversword411
600b959d89 Tweaking community scripts 2021-09-17 11:10:29 -04:00
Yamacore
b96de9eb13 Fix nginx crash after netinstall
debian 10 netinstall got "server_names_hash_bucket_size" option commented out this fixes it
2021-09-16 20:09:46 +02:00
silversword411
93be19b647 docs Adding network diagram from NiceGuyIT - NC 2021-09-15 13:53:39 -04:00
silversword411
74f45f6f1d docs faq tweaks 2021-09-13 18:33:23 -04:00
silversword411
54ba3d2888 docs tweaks 2021-09-13 16:25:55 -04:00
silversword411
65d5149f60 docs - More tweaks 2021-09-13 12:03:47 -04:00
silversword411
917ebb3771 docs - install tweaks 2021-09-13 11:47:24 -04:00
silversword411
7e66b1f545 refactoring server install doc, and other tweaks 2021-09-13 10:08:39 -04:00
Dan
05837dca35 Merge pull request #706 from subzdev/develop
add password plain text toggle
2021-09-12 14:56:02 -07:00
Dan
53be2ebe59 Merge pull request #698 from silversword411/develop
server troubleshooting script, docs cleanup, script library updates
2021-09-12 14:52:26 -07:00
silversword411
0341efcaea subzdev doc revamp 2021-09-11 12:08:34 -04:00
Bob
ec75210fd3 add password plain text toggle 2021-09-11 03:10:00 +00:00
silversword411
e6afe3e806 scripts Archiving old broken installer 2021-09-10 17:03:23 -04:00
silversword411
5aa46f068e scripts - duplicati updates 2021-09-10 16:58:29 -04:00
silversword411
a11a5b28bc cleanup docs 2021-09-10 15:23:12 -04:00
silversword411
907aa566ca docs again 2021-09-10 15:18:41 -04:00
silversword411
5c21f099a8 docs tweaks 2021-09-10 14:56:52 -04:00
silversword411
b91201ae3e docs Fix png 2021-09-10 14:05:22 -04:00
silversword411
56d7e19968 docs cleanup, adding new dev docs with subzdev 2021-09-10 13:46:13 -04:00
silversword411
cf91c6c90e troubleshooter adding waits 2021-09-10 07:31:50 -04:00
wh1te909
897d0590d2 bump version 2021-09-09 19:10:28 +00:00
wh1te909
33b33e8458 retry websocket on 1006 error 2021-09-09 19:07:00 +00:00
wh1te909
7758f5c187 add a file to ignore 2021-09-09 18:47:28 +00:00
silversword411
83d7a03ba4 adding cert checks 2021-09-09 12:56:16 -04:00
wh1te909
a9a0df9699 fix tests 2021-09-09 16:26:06 +00:00
silversword411
df44f8f5f8 Adding server troubleshooting script 2021-09-09 11:43:12 -04:00
wh1te909
216a9ed035 speed up some views 2021-09-09 06:50:30 +00:00
wh1te909
35d61b6a6c add missing trailing slashes fixes #43 2021-09-09 05:55:27 +00:00
wh1te909
5fb72cea53 add types to url 2021-09-09 05:54:34 +00:00
Dan
d54d021e9f Merge pull request #697 from silversword411/develop
Tweaks
2021-09-08 18:17:42 -07:00
silversword411
06e78311df Tweaks 2021-09-08 21:04:35 -04:00
Dan
df720f95ca Merge pull request #696 from silversword411/develop
Unsupported Officially...no we really mean it
2021-09-08 17:06:48 -07:00
Dan
00faff34d3 Merge pull request #695 from aaronstuder/patch-1
Update install_server.md
2021-09-08 17:06:35 -07:00
silversword411
2b5b3ea4f3 Unsupported Officially...no we really mean it 2021-09-08 18:38:40 -04:00
sadnub
95e608d0b4 fix agent saying that it was approving updates when it actually didn't 2021-09-08 17:37:02 -04:00
sadnub
1d55bf87dd fix audit and debug log not refreshing on agent change 2021-09-08 17:36:30 -04:00
aaronstuder
1220ce53eb Update install_server.md 2021-09-08 12:55:53 -04:00
sadnub
2006218f87 honor block_dashboard_login from the login 2fa verification view 2021-09-08 10:29:58 -04:00
sadnub
40f427a387 add trailing slash to missing urls. Potentially fixes #43 2021-09-08 10:28:54 -04:00
sadnub
445e95baed formatting 2021-09-08 10:27:42 -04:00
sadnub
67fbc9ad33 make installer user use the new block_dasboard_login property 2021-09-06 22:42:32 -04:00
sadnub
1253e9e465 formatting 2021-09-06 20:10:14 -04:00
sadnub
21069432e8 fix tests 2021-09-06 20:06:23 -04:00
sadnub
6facf6a324 fix nginx on docker dev 2021-09-06 12:54:37 -04:00
sadnub
7556197485 move policy processing on any agent changes to celery task 2021-09-06 11:47:07 -04:00
wh1te909
f319c95c2b bump version 2021-09-06 09:10:00 +00:00
wh1te909
8e972b0907 add docs for api keys 2021-09-06 08:50:18 +00:00
sadnub
395e400215 fix docker build script 2021-09-05 23:52:33 -04:00
sadnub
3685e3111f fix docker prod spinup. Move api container to uwsgi 2021-09-05 23:49:10 -04:00
sadnub
7bb1c75dc6 add auditing to objects URLAction, KeyStore, CustomFields and also audit when url actions are run 2021-09-05 12:32:37 -04:00
sadnub
b20834929c formatting 2021-09-05 11:35:15 -04:00
sadnub
181891757e fix tasks with assigned checks being added to automation policy 2021-09-05 11:22:21 -04:00
wh1te909
b16feeae44 fix debug log 2021-09-05 08:45:41 +00:00
wh1te909
684e049f27 typo 2021-09-05 06:07:46 +00:00
wh1te909
8cebd901b2 update reqs 2021-09-05 01:40:25 +00:00
wh1te909
3c96beb8fb fix celery memory leak 2021-09-04 23:40:57 +00:00
Dan
8a46459cf9 Merge pull request #683 from silversword411/develop
wip script additions and docs updates
2021-09-04 15:46:31 -07:00
Dan
be5c3e9daa Merge pull request #673 from juaromu/docs-securing-nginx
Securing NGINX added to docs
2021-09-04 15:45:37 -07:00
wh1te909
e44453877c skip sw errors fixes #682 2021-09-04 22:23:35 +00:00
wh1te909
f772a4ec56 allow users to reset their own password/2fa fixes #686 2021-09-04 22:15:51 +00:00
wh1te909
44182ec683 fix render error if results are null 2021-09-03 06:29:27 +00:00
wh1te909
b9ab13fa53 hide status field under properly implemented 2021-09-03 06:28:27 +00:00
wh1te909
2ad6721c95 fix pipeline 2021-09-03 05:45:31 +00:00
wh1te909
b7d0604e62 first/last name optional 2021-09-03 05:35:54 +00:00
wh1te909
a7518b4b26 black 2021-09-03 05:34:44 +00:00
wh1te909
50613f5d3e add api auth in settings, removed from local_settings 2021-09-03 05:31:44 +00:00
sadnub
f814767703 add tests and some ui fixes 2021-09-02 23:52:26 -04:00
sadnub
4af86d6456 set alert template on new agents 2021-09-02 21:36:35 -04:00
sadnub
f0a4f00c2d fix properties and block user dashboard access if denied 2021-09-02 21:32:18 -04:00
sadnub
4321affddb allow for creating special tokens for api access and bypassing two factor auth 2021-09-02 21:10:23 -04:00
silversword411
926ed55b9b docs update - Authorized users 2021-09-02 11:28:05 -04:00
silversword411
2ebf308565 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-09-02 10:33:36 -04:00
silversword411
1c5e736dce wip script network scanner 2021-09-02 10:33:25 -04:00
silversword411
b591f9f5b7 MOAR wips 2021-09-02 08:39:03 -04:00
silversword411
9724882578 wip script for print check 2021-09-02 08:23:05 -04:00
silversword411
ddef2df101 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-09-02 08:11:21 -04:00
silversword411
8af69c4284 adding alternate ssl to unsupported docs 2021-09-02 07:55:33 -04:00
silversword411
6ebe1ab467 adding alternate ssl to unsupported docs 2021-09-02 07:39:44 -04:00
silversword411
24e4d9cf6d docs Making docker howto visible 2021-09-02 05:21:51 -04:00
silversword411
f35fa0aa58 Troubleshooting docs update 2021-09-01 18:50:18 -04:00
wh1te909
a20b1a973e bump version 2021-09-01 07:18:09 +00:00
wh1te909
eae5e00706 allow filtering by overdue #674 2021-09-01 06:26:55 +00:00
silversword411
403762d862 wip script additions 2021-08-31 22:45:53 -04:00
sadnub
5c92d4b454 fix bug were script args weren't being substituted when testing scripts 2021-08-31 20:33:36 -04:00
wh1te909
8f510dde5a bump versions 2021-08-31 06:35:29 +00:00
wh1te909
be42d56e37 fix 500 error when trying to test newly added script 2021-08-31 06:16:40 +00:00
Juan J. Romero
6294530fa3 Securing NGINX added to docs 2021-08-31 15:45:47 +10:00
sadnub
c5c8f5fab1 formatting 2021-08-30 22:32:16 -04:00
sadnub
3d41d79078 change directory for nats configuration file for DOCKER. Fix nats-api commands in dev containers 2021-08-30 22:17:21 -04:00
sadnub
3005061a11 formatting 2021-08-30 08:06:15 -04:00
sadnub
65ea46f457 strip whitespace before processing collector output 2021-08-30 07:42:54 -04:00
wh1te909
8d1ef19c61 bump version 2021-08-30 06:28:40 +00:00
wh1te909
71d87d866b change schedule 2021-08-30 05:49:09 +00:00
wh1te909
c4f88bdce7 update for new debug log 2021-08-30 03:45:35 +00:00
sadnub
f722a115b1 update alerting docs and add database maintenance page 2021-08-29 16:54:05 -04:00
sadnub
1583beea7b update script docs 2021-08-29 16:25:33 -04:00
wh1te909
5b388c587b update python 2021-08-29 08:19:35 +00:00
wh1te909
e254923167 update mesh/nats 2021-08-29 08:13:04 +00:00
wh1te909
b0dbdd7803 fix field 2021-08-29 07:16:09 +00:00
wh1te909
aa6ebe0122 fix pagination 2021-08-29 03:40:14 +00:00
wh1te909
c5f179bab8 update nats-api 2021-08-29 03:39:58 +00:00
sadnub
e65cb86638 rework script testing a bit. Fix mismatch object properties and props 2021-08-28 10:33:18 -04:00
wh1te909
a349998640 add watcher 2021-08-28 06:48:00 +00:00
wh1te909
43f60610b8 fix props 2021-08-28 06:36:03 +00:00
wh1te909
46d042087a fix row name 2021-08-28 06:32:50 +00:00
sadnub
ee214727f6 format agent history table 2021-08-28 01:00:17 -04:00
sadnub
b4c1ec55ec fix env.example 2021-08-27 22:12:25 -04:00
Dan
0fdd54f710 Merge pull request #664 from bc24fl/change-community-script-add-domain-rename-capability-and-refactor
Change Win_Rename_Computer.ps1 community script to add domain joined …
2021-08-25 15:21:55 -07:00
wh1te909
4f0cdeaec0 reduce nats max payload as it will be enforced in future nats update 2021-08-25 21:14:35 +00:00
wh1te909
e5cc38857c update quasar conf to support quasar app 3.1.0 (webpack-dev-server 4.0.0) 2021-08-25 21:13:05 +00:00
wh1te909
fe4b9d71c0 update reqs 2021-08-25 21:11:39 +00:00
wh1te909
5c1181e40e Merge branch 'develop' of https://github.com/wh1te909/tacticalrmm into develop 2021-08-23 04:25:14 +00:00
wh1te909
8b71832bc2 update reqs 2021-08-23 04:19:21 +00:00
Irving
8412ed6065 Change Win_Rename_Computer.ps1 community script to add domain joined computer rename functionality and refactor per standards. 2021-08-22 16:36:19 -04:00
Dan
207f6cdc7c Merge pull request #661 from bc24fl/fix-doc-typo-in-alert-page
Fixed typo in documentation alert page
2021-08-21 23:44:09 -07:00
Dan
b0b51f5730 Merge pull request #660 from silversword411/develop
Script library - uninstall software
2021-08-21 23:38:46 -07:00
wh1te909
def6833ef0 new pipeline agent 2021-08-21 15:26:25 +00:00
wh1te909
c528dd3de1 attempt to fix pipelines 2021-08-20 08:23:16 +00:00
wh1te909
544270e35d new pipeline agent 2021-08-20 07:35:02 +00:00
bc24fl
657e029fee Fixed typo in documentation alert page 2021-08-19 15:48:46 -04:00
silversword411
49469d7689 docs update - adding to docker instructions 2021-08-18 22:59:28 -04:00
silversword411
4f0dd452c8 docs troubleshooting tweaks 2021-08-18 22:39:19 -04:00
silversword411
3f741eab11 Script library - uninstall software 2021-08-18 12:01:41 -04:00
Dan
190368788f Merge pull request #654 from NiceGuyIT/develop
Bitdefender install script:  Improve error detection and logging
2021-08-11 23:54:14 -07:00
Dan
8306a3f566 Merge pull request #649 from silversword411/develop
Docs and scripts updates
2021-08-11 23:53:24 -07:00
silversword411
988c134c09 choco typo fixes 2021-08-03 00:24:14 -04:00
silversword411
af0a4d578b Community Script Replacing Choco upgrade script 2021-08-03 00:06:38 -04:00
sadnub
9bc0abc831 fix favorited community scripts showing up if community scripts are hidden. Fix delete script in Script Manager 2021-08-02 17:48:13 -04:00
David Randall
41410e99e7 Improve error detection and logging 2021-08-02 12:43:39 -04:00
David Randall
deae04d5ff Merge branch 'wh1te909:develop' into develop 2021-08-02 12:37:49 -04:00
David Randall
7d6eeffd66 Improve error detection and logging 2021-08-02 12:33:32 -04:00
sadnub
629858e095 log django 500 errors (for easier debugging) to new log file 2021-08-02 09:35:41 -04:00
sadnub
dfdb628347 change favorited script run on agent to opent he Run Script modal with the script and defaults populated 2021-08-02 09:34:17 -04:00
sadnub
6e48b28fc9 fix filterable dropdown and prepopulating select value 2021-08-02 09:33:24 -04:00
sadnub
3ba450e837 fix replace values function 2021-08-02 09:21:07 -04:00
sadnub
688ed93500 allow url actions to be run against clients and sites 2021-08-01 00:17:48 -04:00
sadnub
7268ba20a2 Finished script snippet feature 2021-07-31 15:22:31 -04:00
sadnub
63d9e73098 fix tests 2021-07-31 13:29:51 -04:00
sadnub
564c048f90 add missing migration 2021-07-31 13:07:48 -04:00
sadnub
5f801c74d5 allowed dismissing persistent modals on Esc press. allow filtering on certain scripts and agent dropdowns. moved other dropdowns to tactical dropdown. Fixes with bulk actions 2021-07-31 11:56:47 -04:00
sadnub
b405fbc09a handle a few more errors when auth token is expired 2021-07-31 11:54:28 -04:00
sadnub
7a64c2eb49 update quasar 2021-07-31 11:54:00 -04:00
sadnub
c93cbac3b1 rework bulk action modal. start running bulk actions on next agent checkin 2021-07-30 12:48:47 -04:00
sadnub
8b0f67b8a6 actually stop the unauthorized console errors wwith websocket connection 2021-07-30 12:46:15 -04:00
sadnub
0d96129f2d get dropdown filtering working on custom tactical dropdown component 2021-07-30 12:45:26 -04:00
sadnub
54ee12d2b3 rework script manager and modals to composition api. Start on script snippets 2021-07-29 19:41:32 -04:00
silversword411
92fc042103 Win 10 upgrade script removing license check 2021-07-29 00:50:17 -04:00
silversword411
9bb7016fa7 Win 10 upgrade script commenting 2021-07-28 16:45:12 -04:00
silversword411
3ad56feafb Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-07-27 19:04:58 -04:00
silversword411
14d59c3dec Sorting alphabetical and fixing pic 2021-07-27 19:04:40 -04:00
silversword411
443f419770 wip script add 2021-07-27 19:04:40 -04:00
silversword411
ddbb58755e Docs updates 2021-07-27 19:04:39 -04:00
silversword411
524283b9ff adding db maintenance to docs 2021-07-27 19:04:39 -04:00
silversword411
fb178d2944 add wip script 2021-07-27 19:04:39 -04:00
silversword411
52f4ad9403 add library wifi password retrieval script 2021-07-27 19:04:38 -04:00
silversword411
ba0c08ef1f Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-07-27 19:03:36 -04:00
silversword411
9e19b1e04c wip script add 2021-07-27 19:02:22 -04:00
silversword411
b2118201b1 Sorting alphabetical and fixing pic 2021-07-25 15:27:05 -04:00
sadnub
b4346aa056 formatting 2021-07-21 20:41:11 -04:00
sadnub
b599f05aab fix version 2021-07-21 20:35:57 -04:00
sadnub
93d78a0200 add ipware req 2021-07-21 20:33:42 -04:00
silversword411
449957b2eb Docs updates 2021-07-21 15:02:56 -04:00
sadnub
0a6d44bad3 Fixes #561 2021-07-21 14:48:59 -04:00
sadnub
17ceaaa503 allow skipping alert resolved/failure actions on types of alerts 2021-07-21 14:30:25 -04:00
sadnub
d70803b416 add audit log retention 2021-07-21 13:49:34 -04:00
sadnub
aa414d4702 fix auditing on models that override the save method. Added Alert Template anmd Role to auditable models 2021-07-21 13:33:15 -04:00
sadnub
f24e1b91ea stop ws from reconnecting on unauthorized error 2021-07-21 10:53:55 -04:00
sadnub
1df8163090 add role and alert template to audit logging 2021-07-21 00:28:51 -04:00
sadnub
659ddf6a45 fix docker build script 2021-07-20 23:11:15 -04:00
sadnub
e110068da4 add public IP logging to audit log and agent login tables 2021-07-20 23:10:51 -04:00
sadnub
c943f6f936 stop the ws connection from retrying when logging out or session is expired 2021-07-20 16:46:16 -04:00
silversword411
cb1fe7fe54 adding db maintenance to docs 2021-07-19 10:44:38 -04:00
silversword411
593f1f63cc add wip script 2021-07-19 10:35:54 -04:00
silversword411
66aa70cf75 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-07-18 21:08:18 -04:00
silversword411
304be99067 add library wifi password retrieval script 2021-07-18 21:08:04 -04:00
silversword411
9a01ec35f4 add library wifi password retrieval script 2021-07-18 21:04:16 -04:00
sadnub
bfa5b4fba5 allow persistent mesh config and fix mongodb password uri issue 2021-07-17 15:57:35 -04:00
Dan
d2f63ef353 Merge pull request #641 from silversword411/develop
Docs and scripts additions
2021-07-17 10:57:07 -07:00
Dan
50f334425e Merge pull request #640 from bern-spl/patch-1
Update README.md
2021-07-17 10:56:33 -07:00
silversword411
f78212073c fix json 2021-07-17 11:21:39 -04:00
silversword411
5c655f5a82 Adding grafana to docs 2021-07-17 11:06:02 -04:00
silversword411
6a6446bfcb Adding configuring email to docs 2021-07-17 10:48:22 -04:00
silversword411
b60a3a5e50 Adding scripts 2021-07-17 10:33:31 -04:00
Bernard Blundell
02ccbab8e5 Update README.md 2021-07-17 14:51:09 +01:00
wh1te909
023ff3f964 update bin [skip ci] 2021-07-17 07:16:38 +00:00
wh1te909
7c5e8df3b8 fix tests 2021-07-17 07:11:29 +00:00
wh1te909
56fdab260b add/refactor task 2021-07-17 06:59:21 +00:00
wh1te909
7cce49dc1a deprecate an endpoint 2021-07-17 06:40:45 +00:00
wh1te909
2dfaafb20b fix bug where sms attempting to be sent when not configured 2021-07-17 06:35:31 +00:00
wh1te909
6138a5bf54 move some funcs to go 2021-07-17 05:13:40 +00:00
wh1te909
828c67cc00 fix tests 2021-07-17 00:33:21 +00:00
wh1te909
e70cd44e18 add history to send command 2021-07-16 21:45:16 +00:00
wh1te909
efa5ac5edd more run script rework 2021-07-16 06:11:40 +00:00
wh1te909
788b11e759 add fields to agent history 2021-07-14 07:38:31 +00:00
wh1te909
d049d7a61f update reqs 2021-07-14 07:36:55 +00:00
Dan
075c833b58 Merge pull request #626 from sadnub/runscript-rework
Agent Tabs/Run Script WIP
2021-07-13 11:43:38 -07:00
Dan
e9309c2a96 Merge pull request #638 from silversword411/develop
Docs and scripts update
2021-07-12 22:24:12 -07:00
silversword411
a592d2b397 Adding scripts to library and WIP 2021-07-13 00:21:43 -04:00
silversword411
3ad1805ac0 tweak faq 2021-07-12 23:51:16 -04:00
Dan
dbc2bab698 Merge pull request #632 from silversword411/develop
script library and docs updates
2021-07-12 08:51:13 -07:00
silversword411
79eec5c299 Bitdefender GravityZone Docs 2021-07-11 14:10:10 -04:00
silversword411
7754b0c575 howitallworks tweaks 2021-07-11 13:55:37 -04:00
silversword411
be4289ce76 Docs update 2021-07-11 13:26:15 -04:00
silversword411
67f5226270 add BitDefender Gravity Zone Install script 2021-07-10 12:42:27 -04:00
sadnub
b6d77c581b fix styling 2021-07-09 21:13:35 -04:00
sadnub
d84bf47d04 added script cloning functionality 2021-07-09 18:47:28 -04:00
sadnub
aba3a7bb9e fix and add tests 2021-07-09 18:00:28 -04:00
sadnub
6281736d89 implement test script in script edit 2021-07-09 08:03:53 -04:00
sadnub
94d96f89d3 implement run script save to custom field and agent notes 2021-07-09 00:16:15 -04:00
sadnub
4b55f9dead add tests and minor fixes 2021-07-08 22:02:02 -04:00
sadnub
5c6dce94df fix broken tests 2021-07-08 13:02:50 -04:00
wh1te909
f7d8f9c7f5 fix mkdocs warning 2021-07-08 06:39:32 +00:00
Dan
053df24f9c Merge pull request #627 from silversword411/develop
docs update and script tweak
2021-07-07 23:33:00 -07:00
silversword411
1dc470e434 powershell upgrade 2021-07-07 22:17:11 -04:00
silversword411
cfd8773267 wip script add 2021-07-07 22:13:17 -04:00
silversword411
67045cf6c1 docs tweaks 2021-07-07 22:00:52 -04:00
sadnub
ddfb9e7239 run script rework start 2021-07-07 19:28:52 -04:00
sadnub
9f6eed5472 setup pruning tasks 2021-07-07 19:28:52 -04:00
sadnub
15a1e2ebcb add agent history 2021-07-07 19:28:52 -04:00
sadnub
fcfe450b07 finish debug and audit rework 2021-07-07 19:28:52 -04:00
sadnub
a69bbb3bc9 audit manager rework wip 2021-07-07 19:28:52 -04:00
sadnub
6d2559cfc1 debug log rework 2021-07-07 19:28:52 -04:00
sadnub
b3a62615f3 moved debug log to database. modified frontend to composition api. moved a few mixins. 2021-07-07 19:28:52 -04:00
sadnub
57f5cca1cb debug modal rework into comp api 2021-07-07 19:28:52 -04:00
sadnub
6b9851f540 new agent tabs wip 2021-07-07 19:28:52 -04:00
silversword411
36fd203a88 Updating which registry tree to query 2021-07-07 16:00:48 -04:00
Dan
3f5cb5d61c Merge pull request #623 from meuchels/develop
Fix SC collector script to work with windows 7
2021-07-07 00:43:56 -07:00
Samuel Meuchel
862fc6a946 add newline to end 2021-07-06 19:45:03 -05:00
Samuel Meuchel
92c386ac0e Fixed ScreenConnect Collector script for ps 2.0 2021-07-06 19:41:16 -05:00
Samuel Meuchel
98a11a3645 add this exclusion for your ScreenConnect Deployment script to work. 2021-07-06 11:25:17 -05:00
Dan
62be0ed936 Merge pull request #610 from meuchels/develop
Add TeamViewer Script and Integration Docs
2021-07-01 14:45:45 -07:00
Samuel Meuchel
b7de73fd8a removed args from script json. 2021-07-01 08:19:12 -05:00
Samuel Meuchel
e2413f1af2 Add AnyDesk script collector and Integration Docs. 2021-06-30 17:33:48 -05:00
Samuel Meuchel
0e77d575c4 Add TeamViewer Script and Integration Docs 2021-06-30 15:09:04 -05:00
wh1te909
6a06734192 bump version 2021-06-30 06:53:16 +00:00
Dan
5e26a406b7 Merge pull request #606 from silversword411/develop
docs update
2021-06-29 23:49:14 -07:00
wh1te909
b6dd03138d rework agent installation auth token to have minimal perms 2021-06-30 06:46:07 +00:00
wh1te909
cf03ee03ee update quasar 2021-06-30 06:46:07 +00:00
silversword411
0e665b6bf0 doc remove incomplete 2021-06-29 23:42:02 -04:00
silversword411
e3d0de7313 consolidated into 3rdparty_screenconnect.md 2021-06-29 23:40:26 -04:00
silversword411
bcf3a543a1 merged into 3rdparty_screenconnect.md 2021-06-29 23:33:00 -04:00
silversword411
b27f17c74a fix case 2021-06-29 11:28:00 -04:00
silversword411
75d864771e Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-29 11:24:34 -04:00
silversword411
6420060f2a docs index update 2021-06-29 11:22:52 -04:00
Dan
c149ae71b9 Merge pull request #602 from meuchels/develop
added a Connectwise Control Integration document.
2021-06-28 23:54:37 -07:00
Dan
3a49dd034c Merge pull request #600 from sdm216/develop
Update Win_Firewall_Check_Status.ps1
2021-06-28 23:53:47 -07:00
Dan
b26d7e82e3 Merge pull request #599 from silversword411/develop
docs tweaks
2021-06-28 23:53:02 -07:00
silversword411
415abdf0ce adding windows update info 2021-06-29 01:19:05 -04:00
silversword411
f7f6f6ecb2 Separating out screenconnect docs 2021-06-29 00:39:11 -04:00
meuchels
43d54f134a added a Connectwise Control Integration document. 2021-06-28 17:50:24 -05:00
silversword411
0d2606a13b Revert "code commenting"
This reverts commit ecccf39455.
2021-06-28 15:59:50 -04:00
silversword411
1deb10dc88 community scrip typo 2021-06-28 15:49:25 -04:00
sdm216
1236d55544 Update Win_Firewall_Check_Status.ps1 2021-06-28 14:48:22 -04:00
silversword411
ecccf39455 code commenting 2021-06-28 10:17:14 -04:00
silversword411
8e0316825a Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-28 10:05:22 -04:00
silversword411
aa45fa87af Noting case sensitive for all {{}} references 2021-06-28 10:03:32 -04:00
wh1te909
4766477c58 bump version 2021-06-28 07:13:19 +00:00
wh1te909
d97e49ff2b add button to test SMS closes #590 2021-06-28 07:05:57 +00:00
wh1te909
6b9d775cb9 add hostname to email subject/body fixes #589 2021-06-28 06:07:17 +00:00
wh1te909
e521f580d7 make clearing search field when switching client/site optional closes #597 2021-06-28 05:21:07 +00:00
silversword411
25e7cf7db0 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-27 17:16:21 -04:00
silversword411
0cab33787d Noting case sensitive for all {{}} references 2021-06-27 17:15:25 -04:00
wh1te909
d46ae55863 bump versions 2021-06-27 06:58:06 +00:00
wh1te909
bbd900ab25 move checkin to go 2021-06-27 06:23:37 +00:00
Dan
129ae93e2b Merge pull request #596 from rfost52/develop
Submitting System Report Generator to Community Scripts
2021-06-26 21:58:23 -07:00
rfost52
44dd59fa3f Merge branch 'develop' of https://github.com/rfost52/tacticalrmm into develop 2021-06-26 22:31:00 -04:00
rfost52
ec4e7559b0 updated script header 2021-06-26 22:30:52 -04:00
rfost52
dce40611cf Merge branch 'wh1te909:develop' into develop 2021-06-26 22:17:31 -04:00
rfost52
e71b8546f9 Submitting System Report Generator to Community Scripts 2021-06-26 22:09:56 -04:00
wh1te909
f827348467 style changes 2021-06-27 01:15:47 +00:00
wh1te909
f3978343db cache some values to speed up agent table loading 2021-06-27 00:51:34 +00:00
wh1te909
2654a7ea70 remove extra param 2021-06-27 00:05:00 +00:00
wh1te909
1068bf4ef7 fix row highlight 2021-06-26 17:53:06 +00:00
Dan
e7fccc97cc Merge pull request #595 from rfost52/develop
Initial Parameterization of System Report WIP Script
2021-06-25 23:57:11 -07:00
Dan
733e289852 Merge pull request #592 from silversword411/develop
Docs tweaks
2021-06-25 23:56:44 -07:00
rfost52
29d71a104c include check for C:\Temp folder 2021-06-25 00:36:16 -04:00
rfost52
05200420ad Merge branch 'develop' of https://github.com/rfost52/tacticalrmm into develop 2021-06-24 23:53:26 -04:00
rfost52
eb762d4bfd Initial Parameterization of variables 2021-06-24 23:53:06 -04:00
silversword411
58ace9eda1 Adding wip scripts 2021-06-24 17:20:49 -04:00
sadnub
eeb2623be0 Merge pull request #516 from sadnub/quasar-update
Quasar update to v2
2021-06-24 13:48:47 -04:00
sadnub
cfa242c2fe update loading bar delay 2021-06-24 13:41:34 -04:00
sadnub
ec0441ccc2 fix collector dropdown in policy task edit 2021-06-24 13:41:34 -04:00
sadnub
ae2782a8fe update quasar to v2 release 2021-06-24 13:41:34 -04:00
sadnub
58ff570251 fix assets tab 2021-06-24 13:41:34 -04:00
sadnub
7b554b12c7 update packages 2021-06-24 13:41:34 -04:00
sadnub
58f7603d4f fix agent drowndown in audit manager 2021-06-24 13:41:34 -04:00
sadnub
8895994c54 update packages 2021-06-24 13:41:34 -04:00
sadnub
de8f7e36d5 fix q-checkboxes that need to trigger actions and replace @input with @update:model-value 2021-06-24 13:41:34 -04:00
sadnub
88d7a50265 refactor user administration without vuex 2021-06-24 13:41:34 -04:00
sadnub
21e19fc7e5 add keys back to v-fors 2021-06-24 13:41:34 -04:00
sadnub
faf4935a69 fix saving custom field values and change sites dropdown in edit agent modal 2021-06-24 13:41:34 -04:00
sadnub
71a1f9d74a update reqs and fix custom field values 2021-06-24 13:41:34 -04:00
sadnub
bd8d523e10 stop blinking when loading 2021-06-24 13:41:34 -04:00
sadnub
60cae0e3ac remove 'created' hooks from components and fix agent and script optino dropdowns 2021-06-24 13:41:34 -04:00
sadnub
5a342ac012 removed key from v-for. Fixed custom dropdowns. other fixes 2021-06-24 13:41:34 -04:00
sadnub
bb8767dfc3 fix darkmode and policy check and task tables 2021-06-24 13:41:34 -04:00
sadnub
fcb2779c15 update quasar 2021-06-24 13:41:34 -04:00
sadnub
77dd6c1f61 more fixes 2021-06-24 13:41:34 -04:00
sadnub
8118eef300 upgrade to quasar v2 and vue3 initial 2021-06-24 13:41:34 -04:00
silversword411
802d1489fe adding to howitallworks 2021-06-24 02:42:41 -04:00
silversword411
443a029185 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-24 02:00:51 -04:00
silversword411
4ee508fdd0 Docs tweaks 2021-06-24 01:55:50 -04:00
wh1te909
aa5608f7e8 fix custom field args in bulk script fixes #591 2021-06-24 01:34:14 +00:00
wh1te909
cc472b4613 update celery 2021-06-24 01:32:07 +00:00
wh1te909
764b945ddc fix pipelines 2 2021-06-22 06:51:44 +00:00
wh1te909
fd2206ce4c fix pipelines 2021-06-22 06:47:17 +00:00
Dan
48c0ac9f00 Merge pull request #588 from rfost52/develop
Moving Win_AD_Join_Computer.ps1 from WIP scripts to Community Scripts
2021-06-21 23:38:18 -07:00
silversword411
84eb4fe9ed Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-21 11:35:04 -04:00
silversword411
4a5428812c Docs tweaks 2021-06-21 11:34:10 -04:00
silversword411
023f98a89d Docs tweaks 2021-06-21 11:32:56 -04:00
rfost52
66893dd0c1 Update Win_AD_Join_Computer.ps1 2021-06-19 20:50:56 -04:00
rfost52
25a6666e35 Adding AD PC Join to Listings 2021-06-19 20:47:11 -04:00
rfost52
19d75309b5 Merge branch 'develop' of https://github.com/rfost52/tacticalrmm into develop 2021-06-19 20:21:21 -04:00
rfost52
11110d65c1 Adding to Community Scripts
Moving from WIP Scripts to Community Scripts after successful testing.
2021-06-19 20:21:11 -04:00
Dan
a348f58fe2 Merge pull request #585 from rfost52/develop
First rework of Join to AD PowerShell WIP Script
2021-06-19 11:41:52 -07:00
rfost52
13851dd976 Added new line at end of code 2021-06-18 23:25:15 -04:00
rfost52
2ec37c5da9 1st Code rework with parameterization 2021-06-18 22:57:23 -04:00
rfost52
8c127160de Updated synopsis and description 2021-06-18 22:51:21 -04:00
rfost52
2af820de9a Update Win_AD_Join_Computer.ps1
Parameters, error checking with exit codes
2021-06-18 22:43:26 -04:00
Dan
55fb0bb3a0 Merge pull request #584 from silversword411/develop
community script updates
2021-06-18 10:58:00 -07:00
silversword411
9f9ecc521f community script updates 2021-06-17 15:27:40 -04:00
Dan
dfd01df5ba Merge pull request #581 from silversword411/develop
Adding docs
2021-06-16 22:55:18 -07:00
silversword411
474090698c Merge branch 'wh1te909:develop' into develop 2021-06-17 01:00:40 -04:00
silversword411
6b71cdeea4 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-06-17 00:53:58 -04:00
wh1te909
581e974236 add view setting perms closes #569 2021-06-17 04:36:34 +00:00
wh1te909
ba3c3a42ce add missing mypy types 2021-06-17 04:35:51 +00:00
silversword411
c8bc5671c5 adding all possible script variables to docs 2021-06-17 00:34:11 -04:00
wh1te909
ff9401a040 make failing tasks fail client tree closes #571 2021-06-17 03:51:20 +00:00
wh1te909
5e1bc1989f update reqs 2021-06-17 03:50:00 +00:00
wh1te909
a1dc91cd7d fix typo in docs #580 2021-06-16 16:46:24 +00:00
sadnub
99f2772bb3 Fixes #577 2021-06-14 20:27:41 -04:00
sadnub
e5d0e42655 fix agent policies not updating when monitoring mode is changed 2021-06-14 20:18:56 -04:00
Dan
2c914cc374 Merge pull request #576 from bradhawkins85/patch-19
Update installer.ps1
2021-06-14 09:45:13 -07:00
Dan
9bceb62381 Merge pull request #575 from nextgi/zak-develop
Updates to Devcontainer and Added #467
2021-06-14 09:44:58 -07:00
Zak
de7518a800 Added new community script
New script for auto documenting ADDS.
2021-06-13 17:56:44 -07:00
bradhawkins85
304fb63453 Update installer.ps1
Fix spelling errors
2021-06-13 17:22:13 +10:00
Zak
0f7ef60ca0 Added #467
Added QTooltip to the label of the QItem in the QTree.
2021-06-12 20:50:59 -07:00
Zak
07c74e4641 Updated devcontainer
Prior it was statically set to use a specific range of IPs. I changed this so it could be set via environment variables. Also, NATS port 4222 is a reserved port for Hyper-V. I updated this so it could be set in env variables as well.
2021-06-12 20:49:10 -07:00
wh1te909
de7f325cfb fix redis appendonly backup/restore 2021-06-13 00:10:58 +00:00
wh1te909
6beb6be131 bump version 2021-06-12 20:40:54 +00:00
wh1te909
fa4fc2a708 only parse script args for script checks 2021-06-12 20:24:51 +00:00
wh1te909
2db9758260 fix custom fields in script checks #568 2021-06-12 19:41:49 +00:00
wh1te909
d00cd4453a bump versions 2021-06-11 04:40:57 +00:00
wh1te909
429c08c24a fix width on q-file caused by recent quasar update 2021-06-11 03:58:57 +00:00
wh1te909
6a71490e20 update reqs 2021-06-11 02:40:22 +00:00
Dan
9bceda0646 Merge pull request #562 from diekinderwelt/nginx_enable_ipv6
enable ipv6 in nginx config
2021-06-10 18:59:34 -07:00
Dan
a1027a6773 Merge pull request #565 from silversword411/develop
Docs Update - adding design and tipsntricks
2021-06-10 18:59:12 -07:00
silversword411
302d4b75f9 formatting fix 2021-06-08 15:39:43 -04:00
silversword411
5f6ee0e883 Docs Update - adding design and tipsntricks 2021-06-08 14:45:02 -04:00
Silvio
27f9720de1 enable ipv6 in nginx config
Signed-off-by: Silvio <silvio.zimmer@die-kinderwelt.com>
2021-06-08 11:43:55 +02:00
sadnub
22aa3fdbbc fix bug with policy copy and task that triggers on check failure. Fix check history tests 2021-06-06 23:19:07 -04:00
sadnub
069ecdd33f apply redis configuration after restore 2021-06-06 22:58:32 -04:00
sadnub
dd545ae933 catch an exception that a celery task could potentially throw and configure automation task retries 2021-06-06 22:55:47 -04:00
sadnub
6650b705c4 configure redis to use an appendonly file for celery task reliability 2021-06-06 22:54:52 -04:00
sadnub
59b0350289 fix duplicate tasks when there is an assigned check 2021-06-06 22:54:06 -04:00
sadnub
1ad159f820 remove foreign key from checkhistory to make mass check deletes reliable. (This will not migrate check history data) 2021-06-06 22:53:11 -04:00
Dan
0bf42190e9 Merge pull request #544 from bbrendon/patch-1
check for proper OS support
2021-05-30 23:10:21 -07:00
bbrendon
d2fa836232 check for proper OS support 2021-05-30 10:39:08 -07:00
Dan
c387774093 Merge pull request #543 from bbrendon/develop
fixed an edge case and warning notes
2021-05-29 22:39:52 -07:00
bbrendon
e99736ba3c fixed an edge case and warning notes 2021-05-29 19:25:53 -07:00
wh1te909
16cb54fcc9 fix multiline output not working for automation task 2021-05-29 18:47:09 +00:00
wh1te909
a8aedd9cf3 bump version 2021-05-29 07:35:10 +00:00
wh1te909
b851b632bc fix agent_outages_task async error 2021-05-29 07:26:10 +00:00
wh1te909
6ad16a897d bump versions 2021-05-29 05:15:26 +00:00
wh1te909
72f1053a93 change interval 2021-05-29 04:49:17 +00:00
sadnub
fb15a2762c allow saving multiple script output in custom fields #533 2021-05-28 23:52:23 -04:00
wh1te909
9165248b91 update go/codec 2021-05-29 03:20:12 +00:00
sadnub
add18b29db fix agent dropdown 2021-05-28 22:59:44 -04:00
wh1te909
1971653548 bump nats/mesh 2021-05-29 02:53:16 +00:00
wh1te909
392cd64d7b hide settings in hosted 2021-05-29 02:20:07 +00:00
wh1te909
b5affbb7c8 change function name 2021-05-29 02:18:57 +00:00
wh1te909
71d1206277 more checks rework 2021-05-29 01:37:20 +00:00
wh1te909
26e6a8c409 update reqs 2021-05-28 18:12:32 +00:00
wh1te909
eb54fae11a more checks rework 2021-05-28 17:54:57 +00:00
wh1te909
ee773e5966 remove deprecated func 2021-05-28 17:54:14 +00:00
wh1te909
7218ccdba8 start checks rework 2021-05-27 07:16:06 +00:00
wh1te909
332400e48a autogrow text field fixes #533 2021-05-27 07:09:40 +00:00
Dan
ad1a5d3702 Merge pull request #534 from silversword411/develop
Script library and docs tweaks
2021-05-26 23:59:08 -07:00
silversword411
3006b4184d Docs update on regular patching 2021-05-26 21:36:28 -04:00
silversword411
84eb84a080 Script library adding comments 2021-05-26 10:19:30 -04:00
sadnub
60beea548b Allow clearing resolved/failure actions in alert template 2021-05-24 22:18:12 -04:00
Dan
5f9c149e59 Merge pull request #528 from bbrendon/develop
updated timeouts and fixed one script
2021-05-21 18:36:07 -07:00
bbrendon
53367c6f04 update timeouts on some scripts 2021-05-21 18:01:16 -07:00
bbrendon
d7f817ee44 syntax error fix. 2021-05-21 17:56:53 -07:00
Dan
d33a87da54 Merge pull request #526 from silversword411/develop
script library - Screenconnect collector
2021-05-20 20:13:51 -07:00
silversword411
3aebfb12b7 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-05-20 21:50:10 -04:00
silversword411
1d6c55ffa6 Script library - screenconnect collector 2021-05-20 21:49:01 -04:00
Dan
5e7080aac3 Merge pull request #522 from silversword411/develop
Docs Example and wip tweaks
2021-05-20 18:37:33 -07:00
silversword411
fad739bc01 Updating script delegated folders 2021-05-20 10:10:59 -04:00
silversword411
c6b7f23884 Adding URL Action Example to docs 2021-05-19 02:46:51 -04:00
silversword411
a6f7e446de tweaking wip scripts 2021-05-18 23:22:45 -04:00
wh1te909
764208698f bump version 2021-05-19 03:04:06 +00:00
Dan
57129cf934 Merge pull request #521 from agit8or/develop
Create Win_Shortcut_Creator.ps1
2021-05-18 18:10:33 -07:00
Dan
aae1a842d5 Merge pull request #519 from silversword411/develop
add script to wip
2021-05-18 18:10:03 -07:00
agit8or
623f35aec7 Create Win_Shortcut_Creator2.ps1 2021-05-18 13:05:46 -04:00
agit8or
870bf842cf Create Win_Shortcut_Creator.ps1 2021-05-18 13:00:26 -04:00
silversword411
07f2d7dd5c wip additions for printers 2021-05-18 02:00:55 -04:00
silversword411
f223f2edc5 Merge branch 'wh1te909:develop' into develop 2021-05-17 22:47:22 -04:00
wh1te909
e848a9a577 fix tests 2021-05-17 06:45:43 +00:00
wh1te909
7569d98e07 fix task args fixes #514 2021-05-17 06:01:28 +00:00
wh1te909
596dee2f24 update docs 2021-05-15 08:07:30 +00:00
wh1te909
07a88ae00d bump versions 2021-05-15 07:51:44 +00:00
wh1te909
5475b4d287 typo 2021-05-15 02:20:33 +00:00
sadnub
6631dcfd3e Fix custom check run interval. Fixes #473 2021-05-14 21:37:49 -04:00
sadnub
0dd3f337f3 Add Client and Site categories for agent select options. Fixes #499 2021-05-14 20:27:32 -04:00
silversword411
8eb27b5875 Merge branch 'wh1te909:develop' into develop 2021-05-14 19:03:42 -04:00
sadnub
2d1863031c fix default custom field value not being used if blank value is present on model. Fixes #501 2021-05-14 18:48:49 -04:00
sadnub
9feb76ca81 fix tests 2021-05-14 18:19:57 -04:00
sadnub
993e8f4ab3 sort script categories prior to formating script options #506 2021-05-14 18:08:51 -04:00
sadnub
e08ae95d4f Fix alignment issue #512 2021-05-14 18:08:51 -04:00
sadnub
15359e8846 ws wip 2021-05-14 18:08:51 -04:00
silversword411
d1457b312b wip addition create shortcut to URL 2021-05-14 17:50:50 -04:00
silversword411
c9dd2af196 Merge branch 'wh1te909:develop' into develop 2021-05-14 14:41:12 -04:00
wh1te909
564ef4e688 feat: add clear faults #484 2021-05-14 04:54:59 +00:00
wh1te909
a33e6e8bb5 move token refresh before local settings import to allow overriding #503 2021-05-14 01:47:25 +00:00
Dan
cf34f33f04 Merge pull request #507 from silversword411/develop
Script library and docs updates
2021-05-13 12:50:21 -07:00
silversword411
827cfe4e8f Merge branch 'wh1te909:develop' into develop 2021-05-13 13:44:45 -04:00
silversword411
2ce1c2383c Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-05-13 13:38:51 -04:00
silversword411
6fc0a665ae script library docs - volunteers needed 2021-05-13 13:36:33 -04:00
silversword411
4f16d01263 script library - sn collector 2021-05-13 12:37:10 -04:00
sadnub
67cc37354a Evaluate policies on exclusion changes. Fixes #500 2021-05-12 18:17:03 -04:00
silversword411
e388243ef4 renaming wips 2021-05-12 11:32:16 -04:00
silversword411
3dc92763c7 Script library add 2021-05-12 11:25:22 -04:00
Dan
dfe97dd466 Merge pull request #493 from silversword411/develop
Adding comment headers to wip1
2021-05-12 00:36:57 -07:00
wh1te909
3a03020e54 bump versions 2021-05-12 07:07:51 +00:00
wh1te909
64443cc703 fix link 2021-05-12 06:46:51 +00:00
wh1te909
4d1aa6ed18 fix 404 2021-05-12 06:29:36 +00:00
wh1te909
84837e88d2 update reqs 2021-05-12 05:53:09 +00:00
wh1te909
ff49c936ea fix tests 2021-05-12 05:52:36 +00:00
wh1te909
e6e0901329 add optional installer arg for custom mesh dir #487 2021-05-12 03:32:03 +00:00
silversword411
23b6284b51 Adding comment headers to wip2 2021-05-11 22:55:01 -04:00
silversword411
33dfbcbe32 Adding comment headers to wip1 2021-05-11 22:53:37 -04:00
wh1te909
700c23d537 fix sorting #491 2021-05-12 02:28:00 +00:00
wh1te909
369fac9e38 clear search when switching client tree #492 2021-05-12 01:43:11 +00:00
wh1te909
2229eb1167 add role perms 2021-05-11 17:42:43 +00:00
wh1te909
a3dec841b6 get more accurate model for lenovo #490 2021-05-11 17:15:21 +00:00
wh1te909
b17620bdb6 refactor perms into roles 2021-05-11 07:10:18 +00:00
sadnub
f39cd5ae2f make the policy automated tasks check assignment work correctly and add tests 2021-05-10 20:35:38 -04:00
sadnub
83a19e005b exclude autotask creation on agent when policy is being copied 2021-05-10 18:21:25 -04:00
sadnub
a9dd01b0c8 rework alert template form into a stepper. Add better docs for Alert Templates 2021-05-08 23:40:09 -04:00
wh1te909
eb59afa1d1 isort 2021-05-08 17:28:29 +00:00
wh1te909
2adcfce9d0 fix tests 2021-05-08 17:27:01 +00:00
wh1te909
314ab9b304 fix migrations 2021-05-08 17:16:43 +00:00
wh1te909
8576fb82c7 merge permissions 2021-05-08 17:05:52 +00:00
wh1te909
0f95a6bb2f add permissions #162 2021-05-08 17:02:23 +00:00
sadnub
ad5104567d formatting 2021-05-07 18:03:08 -04:00
sadnub
ece68ba1d5 remove import 2021-05-07 17:58:50 -04:00
sadnub
acccd3a586 add url action docs 2021-05-07 17:53:55 -04:00
sadnub
8ebef1c1ca fix editing error in preferences 2021-05-07 12:12:58 -04:00
sadnub
28abc0d5ed allow setting a url action as agent dblclick action 2021-05-07 11:45:55 -04:00
sadnub
1efe25d3ec finish url actions with tests 2021-05-07 10:22:37 -04:00
sadnub
c40e4f8e4b url actions ui 2021-05-07 10:22:37 -04:00
Dan
baca84092d Merge pull request #479 from silversword411/develop
Updating docs - unsupported scripts
2021-05-06 10:06:37 -07:00
silversword411
346d4da059 Updating docs - unsupported scripts 2021-05-05 16:23:05 -04:00
wh1te909
8204bdfc5f bump versions 2021-05-05 17:06:57 +00:00
wh1te909
49356479e5 fix update script 2021-05-05 07:58:30 +00:00
wh1te909
21771a593f bump versions 2021-05-05 07:25:59 +00:00
wh1te909
84458dfc4c add agent proxy docs 2021-05-05 06:55:48 +00:00
wh1te909
5835632dab add button to force code signing 2021-05-05 06:50:25 +00:00
Dan
67aa7229ef Merge pull request #475 from silversword411/develop
Adding docs regarding HAProxy
2021-05-04 20:23:55 -07:00
silversword411
b72dc3ed3a Adding docs regarding HAProxy 2021-05-04 22:57:33 -04:00
wh1te909
0f93d4a5bd improve wording 2021-05-05 02:18:21 +00:00
wh1te909
106320b035 nats 2.2.2 2021-05-05 02:04:03 +00:00
wh1te909
63951705cd update reqs 2021-05-05 02:03:11 +00:00
Dan
a8d56921d5 Merge pull request #472 from silversword411/develop
Tweaking patches pane
2021-05-04 19:01:32 -07:00
sadnub
10bc133cf1 fix other checks getting deleted when deleting a policy check 2021-05-04 20:01:44 -04:00
silversword411
adeb5b35c9 Tweaking patches pane
Co-authored-by: sadnub <sadnub@users.noreply.github.com> using Live Share
2021-05-04 15:43:40 -04:00
Dan
589ff46ea5 Merge pull request #471 from silversword411/develop
script library addition
2021-05-04 11:07:11 -07:00
silversword411
656fcb9fe7 script library - adding tcp reset script 2021-05-04 13:18:43 -04:00
silversword411
1cb9353006 Revert "script library - adding tcp reset script"
This reverts commit 659846ed88.
2021-05-04 13:16:07 -04:00
silversword411
57bf16ba07 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-05-04 10:03:48 -04:00
silversword411
659846ed88 script library - adding tcp reset script 2021-05-04 10:02:58 -04:00
silversword411
25894044e0 script library - adding outlook delegated folders 2021-05-04 10:02:58 -04:00
silversword411
e7a0826beb tweaking script docs 2021-05-04 10:02:57 -04:00
silversword411
1f7ddee23b script library - adding tcp reset script 2021-05-04 10:02:21 -04:00
Dan
7e186730db Merge pull request #470 from bradhawkins85/patch-17
Update Win_ScreenConnectAIO.ps1
2021-05-03 23:51:03 -07:00
Dan
6713a50208 Merge branch 'develop' into patch-17 2021-05-03 23:50:54 -07:00
Dan
7c9d8fcfec Merge pull request #469 from bradhawkins85/patch-18
Update community_scripts.json
2021-05-03 23:49:45 -07:00
Dan
33bfc8cfe8 Merge pull request #466 from InsaneTechnologies/develop
Add in Client and Site variables
2021-05-03 23:49:35 -07:00
wh1te909
ca735bc14a fix ui for custom fields with very long text 2021-05-04 06:47:53 +00:00
bradhawkins85
4ba748a18b Update community_scripts.json
Add variables to include client name and site name to install in correct groups in ScreenConnect
2021-05-04 16:19:44 +10:00
bradhawkins85
f1845106f8 Update Win_ScreenConnectAIO.ps1
Include client name and site name in URL to add agent to correct group in ScreenConnect
2021-05-04 16:17:52 +10:00
David Rudduck
67e7156c4b Create Alert_MSTeams.ps1
Very raw MS Teams alert script
2021-05-04 11:47:09 +10:00
silversword411
4a476adebf Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-05-03 18:22:33 -04:00
silversword411
918798f8cc script library - adding outlook delegated folders 2021-05-03 18:20:38 -04:00
silversword411
5a3f868866 tweaking script docs 2021-05-03 18:05:27 -04:00
silversword411
feea2c6396 tweaking script docs 2021-05-03 14:15:21 -04:00
Dan
707b4c46d9 Merge pull request #464 from silversword411/develop
tweaking docs and adding scripts
2021-05-03 07:56:01 -07:00
David Rudduck
89ca39fc2b Update Win_ScreenConnectAIO.ps1 2021-05-03 11:31:49 +10:00
David Rudduck
204281b12d Merge pull request #1 from InsaneTechnologies/scripts-screenconnect-1-1
Update Win_ScreenConnectAIO.ps1
2021-05-03 11:30:30 +10:00
David Rudduck
a8538a7e95 Update Win_ScreenConnectAIO.ps1
added support for `-company {{client.name}} -site {{site.name}}` command line arguments. 

This results in ScreenConnect adding those fields to the agent so it's easier to filter down.
2021-05-03 11:29:48 +10:00
silversword411
dee1b471e9 tweaking script docs 2021-05-02 20:03:09 -04:00
silversword411
aa04e9b01f Script - display message to user tweak 2021-05-02 11:54:51 -04:00
silversword411
350f0dc604 Standardized Comments for scripts 2021-05-02 11:52:47 -04:00
silversword411
6021f2efd6 Add wip script 2021-05-02 11:42:00 -04:00
wh1te909
51838ec25a retry uninstall a few times 2021-05-02 08:45:19 +00:00
wh1te909
54768a121e add exact datetime of next agent update cycle in pending actions #457 2021-05-01 07:11:12 +00:00
wh1te909
8ff72cdca3 fix cors exception msg 2021-05-01 06:20:51 +00:00
sadnub
2cb53ad06b error handling and axios changes 2021-04-30 18:35:56 -04:00
sadnub
b8349de31d add additional check in delete policy task test 2021-04-30 18:35:56 -04:00
wh1te909
d7e11af7f8 fix speedtest.py 2021-04-30 07:18:13 +00:00
wh1te909
afb1316daa bump versions 2021-04-30 07:01:22 +00:00
wh1te909
04d7017536 rework ping checks #444 2021-04-30 06:32:21 +00:00
wh1te909
6a1c75b060 add help toolbar #452 2021-04-30 06:01:22 +00:00
Dan
5c94611f3b Merge pull request #456 from silversword411/develop
WIP it, WIP it good: and script library stuff
2021-04-29 18:08:07 -07:00
silversword411
4e5676e80f adding the wip 2021-04-29 11:45:32 -04:00
wh1te909
c96d688a9c add alert if new trmm version available #453 2021-04-29 08:12:44 +00:00
silversword411
804242e9a5 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-28 22:50:47 -04:00
silversword411
0ec9760b17 Adding to docker 2021-04-28 22:49:49 -04:00
Dan
d481ae3da4 Merge pull request #443 from bradhawkins85/patch-16
Update Win_ScreenConnectAIO.ps1
2021-04-28 09:04:43 -07:00
silversword411
4742c14fc1 Rename temp script 2021-04-28 11:12:18 -04:00
bradhawkins85
509b0d501b Update Win_ScreenConnectAIO.ps1
Updated script notes regarding quoting around variables.
2021-04-28 10:10:18 +10:00
silversword411
d4c9b04d4e Hidden Script Library todo list 2021-04-27 13:11:30 -04:00
silversword411
16fb4d331b script library adding msi install ref script 2021-04-27 13:07:14 -04:00
silversword411
e9e5bf31a7 script library adding file copy script 2021-04-27 12:50:01 -04:00
wh1te909
46f852e26e bump version 2021-04-27 16:20:08 +00:00
sadnub
4234cf0a31 fix policy task deletion 2021-04-27 12:12:04 -04:00
wh1te909
2eb16c82f4 bump version 2021-04-27 15:36:38 +00:00
sadnub
e00b2ce591 add test for check deletes 2021-04-27 11:04:06 -04:00
sadnub
d71e1311ca fix deleting checks 2021-04-27 10:58:23 -04:00
sadnub
2cf16963e3 fix custom fields on policy tasks 2021-04-27 10:51:29 -04:00
wh1te909
10bf7b7fb4 update restore docs 2021-04-27 06:18:15 +00:00
wh1te909
94b1988b90 don't make description a required field in edit agent model 2021-04-27 06:00:42 +00:00
wh1te909
6f7e62e9a0 remove alpha status 2021-04-27 05:39:52 +00:00
wh1te909
aa7076af04 bump versions 2021-04-27 05:05:57 +00:00
Dan
c928e8f0d4 Merge pull request #436 from silversword411/develop
Updating management commands
2021-04-26 21:04:08 -07:00
sadnub
5c6b106f68 adding docs for Custom Fields, Scripting, Collector Tasks, and KeyStore 2021-04-26 23:16:10 -04:00
sadnub
d45bcea1ff add mkdocs container to docker dev env 2021-04-26 23:16:10 -04:00
wh1te909
6ff2dc79f8 black 2021-04-27 02:31:33 +00:00
silversword411
b752329987 Adding standardized header comments and example 2021-04-26 20:59:39 -04:00
silversword411
f21465335a clarifying vscode instructions 2021-04-26 20:47:23 -04:00
silversword411
0801adfc4b community script consolidating Defender status reports script 2021-04-26 17:45:56 -04:00
silversword411
5bee8052d5 Fix client site 2021-04-25 23:05:03 -04:00
silversword411
68dca5dfef Updating managment commands 2021-04-25 22:56:56 -04:00
Dan
3f51dd1d2f Merge pull request #435 from silversword411/develop
Docs and tips update
2021-04-25 00:20:05 -07:00
Dan
7f80889d77 Merge pull request #422 from sadnub/develop
Policy rework, global keystore, and collector tasks
2021-04-24 23:57:12 -07:00
sadnub
efc61c0222 fix tests 2021-04-24 22:13:02 -04:00
sadnub
6fc0a05d34 allow adding {{alert.property_name}} to resolved and failure alert scripts 2021-04-24 21:59:41 -04:00
sadnub
a9be872d7a make automated task tables sortable #431 2021-04-24 21:25:55 -04:00
sadnub
6ca85f099e fix autotask modals and allow editing the custom field for a collector task 2021-04-24 21:21:37 -04:00
sadnub
86ff677b8a fix styling 2021-04-24 21:06:17 -04:00
sadnub
35e295df86 implement keystore in script substitution with {{global.name}}. Also fixed issue with space in value. 2021-04-24 21:01:55 -04:00
sadnub
cd4d301790 keystore tests 2021-04-24 20:43:11 -04:00
sadnub
93bb329c3d add frontend end and backend for keystore 2021-04-24 20:36:21 -04:00
silversword411
7c1e0f2c30 More hidden dev docs 2021-04-24 20:06:30 -04:00
sadnub
b57f471f44 add ability to hide custom fields in UI if strictly for script usage 2021-04-24 20:01:28 -04:00
sadnub
252a9a2ed6 implement the rest of collector tasks and add tests 2021-04-24 17:40:44 -04:00
sadnub
7258d4d787 add block inheritance tests and fixes 2021-04-24 15:59:04 -04:00
sadnub
75522fa295 implement policy inheritance blocking 2021-04-24 10:07:37 -04:00
sadnub
4ba8f41d95 fixing tests 2021-04-24 10:07:37 -04:00
sadnub
f326f8e4de policy task and check rework. Added basic collector task implementation 2021-04-24 10:07:37 -04:00
sadnub
f863dc058e add UI for blocking policy inheritance on client, site, and agent 2021-04-24 10:07:37 -04:00
silversword411
20891db251 Tooltip on run interval 2021-04-24 08:52:55 -04:00
silversword411
f1d05f1342 Adding extra optional command line args to dialog 2021-04-23 16:08:16 -04:00
wh1te909
6b5bda8ee1 bump versions 2021-04-23 06:12:19 +00:00
Dan
ddc5597157 Merge pull request #421 from silversword411/develop
script library and docs tweaks
2021-04-22 19:08:33 -07:00
silversword411
ae112c7257 script library tweaks 2021-04-21 11:14:45 -04:00
silversword411
c22f10f96a Adding notes to vscode docs 2021-04-21 11:06:40 -04:00
silversword411
18d10c9bec power restart script tweaks 2021-04-21 09:40:07 -04:00
silversword411
890e430cb7 script library - merging scripts and parameterizing 2021-04-21 09:29:25 -04:00
wh1te909
dadc3d4cd7 add #418 2021-04-21 05:09:55 +00:00
Dan
d98b4d7320 Merge pull request #417 from silversword411/develop
tweaks to docs and scripts
2021-04-19 23:05:42 -07:00
silversword411
340f532238 tweaks to docs and scripts 2021-04-20 06:00:03 +00:00
wh1te909
7669f68e7c add code signing to docs 2021-04-20 05:54:24 +00:00
Dan
3557e5514f Merge pull request #416 from silversword411/develop
docs tweaks
2021-04-19 22:50:58 -07:00
silversword411
a9f09b7614 knew there was a bold somewhere 2021-04-20 05:15:24 +00:00
silversword411
845b9e4568 docs tweaks 2021-04-20 05:12:58 +00:00
Dan
24a6092dcf Merge pull request #415 from silversword411/develop
Community Script Library Docs v1
2021-04-19 21:36:37 -07:00
wh1te909
195ae7d8b1 add conditional menu render 2021-04-20 04:35:07 +00:00
silversword411
a5c6ea7ffc Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-20 00:32:47 -04:00
silversword411
eb7a4ac29f Script library - more cleaning 2021-04-20 00:32:35 -04:00
silversword411
508ef73fde Contributing Community Scripts v1 2021-04-20 00:32:35 -04:00
silversword411
838d6d8076 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-20 00:26:25 -04:00
silversword411
762c3159b8 Script library - more cleaning 2021-04-20 00:26:20 -04:00
wh1te909
7a88a06bcf isort 2021-04-20 04:14:20 +00:00
wh1te909
0b1e3d7de5 start fixing #409 2021-04-20 04:11:48 +00:00
silversword411
9a83c73f21 Contributing Community Scripts v1 2021-04-20 04:11:15 +00:00
Dan
aa50c7b268 Merge pull request #414 from silversword411/develop
adding agent remove/add to docs
2021-04-19 20:33:53 -07:00
silversword411
179a5a80f4 Fixing Defender GUID 2021-04-19 23:06:35 -04:00
silversword411
0ddae527ef Script Library - Renaming files to follow best practices 2021-04-19 23:02:42 -04:00
silversword411
ee7a46de26 Script library - defender status tweaks 2021-04-19 22:28:51 -04:00
silversword411
95522fda74 script library - Adding set DNS script 2021-04-19 18:38:22 -04:00
silversword411
e58881c2bd script library Set Ethernet to use DHCP 2021-04-19 18:32:36 -04:00
silversword411
36a902a44e script rename and tweaks 2021-04-19 17:11:53 -04:00
silversword411
16b74549a2 adding agent remove/add to docs 2021-04-19 11:45:55 +00:00
wh1te909
da7ededfb1 fix sorting #402 2021-04-17 20:06:07 +00:00
wh1te909
790bb08718 fix check status in summary tab 2021-04-17 19:56:10 +00:00
Dan
e6765f421f Merge pull request #408 from silversword411/develop
Tooltip update
2021-04-17 12:54:36 -07:00
silversword411
7e8f1fe904 Tooltip update 2021-04-17 02:09:06 -04:00
Dan
eacce4578a Merge pull request #407 from bradhawkins85/patch-15
Update installer.ps1
2021-04-16 22:05:14 -07:00
bradhawkins85
07b2543972 Update installer.ps1
Test and wait (up to 15 seconds) to be able to connect to the server to download installer, don't try and download if we can't connect.
2021-04-17 13:41:35 +10:00
wh1te909
f453b16010 bump versions 2021-04-16 07:36:27 +00:00
wh1te909
05151d8978 add code signed agent to powershell/manual install methods 2021-04-16 07:16:55 +00:00
Dan
8218e1acc3 Merge pull request #397 from silversword411/develop
script library updates
2021-04-16 00:11:57 -07:00
wh1te909
30212fc89a fix maint mode text 2021-04-16 06:24:27 +00:00
sadnub
b31c13fcae add warning color to agents table and clients tree. Also made it upadte colors when checks UI is refreshed 2021-04-15 22:24:44 -04:00
sadnub
6b95fc6f1d change maintenance mode to green and modify the icon in the agent table when agent is in maintenance mode 2021-04-15 19:15:02 -04:00
sadnub
369cf17eb2 also resolve alerts when a check is cleared 2021-04-15 17:23:43 -04:00
sadnub
4dd8f512cc split up check statuses in the agent summary tab. #386 2021-04-15 17:12:46 -04:00
sadnub
26cfec7d80 add reset check status to check context menu. #388 2021-04-15 16:52:42 -04:00
sadnub
67a87ccf00 fix sticky table header in automated tasks 2021-04-15 16:12:09 -04:00
sadnub
667cebcf94 remove certain fields from view in the patch policy form when settnigs are inherited #396 2021-04-15 13:52:24 -04:00
sadnub
bc1747ca1c fix categories in script manager folder view. Truncate script args text in scripts table 2021-04-15 13:52:24 -04:00
silversword411
945d8647bf script add ipv6 disable 2021-04-15 11:34:35 -04:00
silversword411
dfe2e94627 tweaking script library after 0.6.0 update 2021-04-15 08:47:04 -04:00
silversword411
09a5591eec tweak docs so backup script overwrites existing name 2021-04-15 07:59:22 -04:00
silversword411
f2bf06a0ba tweak Network script names for sorting 2021-04-15 07:51:07 -04:00
silversword411
eedad4ab1c Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-15 07:47:41 -04:00
silversword411
336a62ab29 Tweaking script names 2021-04-15 07:47:31 -04:00
wh1te909
73890f553c bump versions 2021-04-15 05:34:47 +00:00
sadnub
f6243b8968 update community script to include guid and update/delete existing community scripts 2021-04-14 22:43:12 -04:00
sadnub
3770dc74d4 fix scripts dropdown 2021-04-14 21:48:39 -04:00
wh1te909
45f4e947c5 more code signing stuff 2021-04-15 01:24:58 +00:00
Dan
9928d7c6e1 Merge pull request #394 from tremor021/develop
Fixed script naming scheme
2021-04-14 18:20:31 -07:00
silversword411
bf776eeb2b Tweaking script names 2021-04-14 15:12:02 -04:00
tremor021
ae7c0e9195 update 2021-04-14 15:53:54 +02:00
tremor021
e90b640602 Merge branch 'develop' of https://github.com/wh1te909/tacticalrmm into develop 2021-04-14 15:48:37 +02:00
tremor021
ba7529d3f5 update 2021-04-14 15:30:57 +02:00
tremor021
34667f252e Fixed naming and added task scheduling script 2021-04-14 15:23:22 +02:00
wh1te909
d18bddcb7b add code signing auth token 2021-04-14 07:49:28 +00:00
wh1te909
96dff49d33 add better exception messages to tests 2021-04-14 07:39:17 +00:00
Dan
b389728338 Merge pull request #392 from tremor021/develop
Scripts update
2021-04-14 00:35:20 -07:00
tremor021
cdc7da86f3 Fixes 2021-04-14 09:26:42 +02:00
tremor021
4745cc0378 Fixes 2021-04-14 09:25:26 +02:00
wh1te909
434f132479 add a test to make sure community script has jsonfile entry 2021-04-14 07:05:08 +00:00
tremor021
fb0f31ffc7 Added script to json 2021-04-14 08:55:17 +02:00
Dan
bb1d73c0ae Merge pull request #393 from silversword411/develop
Script library additions
2021-04-13 23:32:33 -07:00
silversword411
0e823d1191 Fixing bitlocker get recovery keys script 2021-04-14 00:40:26 -04:00
silversword411
48f4199ff3 script library - bitlocker get recovery keys 2021-04-14 00:39:20 -04:00
silversword411
eaf379587b script library - disable hibernation 2021-04-14 00:04:43 -04:00
silversword411
672446b7d1 script library check if user using temp profile 2021-04-13 23:52:04 -04:00
silversword411
dfe52c1b07 script library - task scheduler monitor 2021-04-13 23:48:15 -04:00
silversword411
d63df03ad8 script library - new user notify 2021-04-13 23:42:34 -04:00
silversword411
aba4f9f2ce script library - Azure Mars Backup check 2021-04-13 23:37:05 -04:00
silversword411
ac5c1e7803 Script library - Adding enable and disable USB devices 2021-04-13 23:26:48 -04:00
tremor021
d521dbf50e Added more scripts 2021-04-13 23:39:44 +02:00
tremor021
f210ed3e6a Added Get_Computer_Users script 2021-04-13 23:25:10 +02:00
tremor021
df3cac4ea6 Merge branch 'develop' of https://github.com/wh1te909/tacticalrmm into develop 2021-04-13 22:14:14 +02:00
tremor021
f778c5175b Added some explanations into scripts 2021-04-13 22:10:37 +02:00
Dan
6c66ff28dd Merge pull request #385 from silversword411/develop
script library updates and docs tweak
2021-04-11 22:39:12 -07:00
silversword411
d5b6ec702b Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-11 11:36:20 -04:00
silversword411
c62a5fcef2 script library empty recycle bin2 2021-04-11 11:35:53 -04:00
silversword411
59c47e9200 script library - empty recycle bin 2021-04-11 11:35:53 -04:00
silversword411
4ba44d8932 script library - Monitor info script 2021-04-11 11:35:53 -04:00
silversword411
27dae05e1b Script add - RAM status 2021-04-11 11:35:53 -04:00
silversword411
a251ae9b90 2 scripts added 2021-04-11 11:35:53 -04:00
silversword411
7e960b2bde Fixing Table of Contents levels 2021-04-11 11:35:53 -04:00
silversword411
5df4825158 Consistency check on script "name" field for alphabetic sorts 2021-04-11 11:35:53 -04:00
silversword411
8984d06d93 script library empty recycle bin2 2021-04-11 11:26:59 -04:00
silversword411
eed7aac047 script library - empty recycle bin 2021-04-11 11:26:22 -04:00
silversword411
54b068de4a script library - Monitor info script 2021-04-11 11:21:03 -04:00
silversword411
f0f33b00b6 Script add - RAM status 2021-04-11 09:13:47 -04:00
silversword411
1043405088 2 scripts added 2021-04-11 08:47:36 -04:00
silversword411
0131b10805 Fixing Table of Contents levels 2021-04-11 08:02:51 -04:00
silversword411
a19b441f62 Consistency check on script "name" field for alphabetic sorts 2021-04-11 07:58:03 -04:00
wh1te909
0f9872a818 bump versions 2021-04-11 08:08:48 +00:00
wh1te909
76ce4296f3 fix graphics 2021-04-11 07:25:37 +00:00
wh1te909
3dd2671380 add graphics 2021-04-11 06:50:16 +00:00
wh1te909
298ca31332 remove unused func 2021-04-11 05:43:17 +00:00
wh1te909
8f911aa6b9 more tests 2021-04-11 05:35:24 +00:00
wh1te909
82a5c7d9b1 add test 2021-04-11 05:17:49 +00:00
wh1te909
7f013dcdba refactor nats-api / optimize queries 2021-04-11 05:04:33 +00:00
wh1te909
68e2e16076 add feat #377 2021-04-11 03:23:40 +00:00
wh1te909
ea23c763c9 add feat #376 2021-04-11 02:01:40 +00:00
wh1te909
5dcecb3206 fix alert text for policy diskspace check where disk doesn't exist 2021-04-10 22:09:24 +00:00
Dan
5bd48e2d0e Merge pull request #380 from silversword411/develop
Community Script Additions
2021-04-10 13:36:26 -07:00
silversword411
afd0a02589 3 scripts added from dinger1986 2021-04-10 13:44:02 -04:00
silversword411
2379192d53 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-10 13:27:35 -04:00
silversword411
a6489290c8 2 scripts added 2021-04-10 13:26:39 -04:00
silversword411
5f74c43415 2 scripts added 2021-04-10 13:22:54 -04:00
wh1te909
b987d041b0 bump version 2021-04-09 18:29:08 +00:00
wh1te909
b62e37307e revert meshcentral back to 0.7.93 2021-04-09 18:28:43 +00:00
Dan
61a59aa6ac Merge pull request #375 from silversword411/develop
scripts 4 adds and a rename
2021-04-09 00:09:17 -07:00
silversword411
f79ec27f1d Adding 5 new scripts 2021-04-09 01:05:58 -04:00
silversword411
b993fe380f Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-09 00:40:24 -04:00
silversword411
d974b5f55f Script screenconnect rename 2021-04-09 00:38:22 -04:00
wh1te909
342ff18be8 bump versions 2021-04-08 07:58:04 +00:00
wh1te909
a8236f69bf catch msgpack decode errors 2021-04-08 06:48:43 +00:00
wh1te909
ab15a2448d update reqs 2021-04-08 06:09:48 +00:00
wh1te909
6ff4d8f558 run migrations during restore 2021-04-08 05:57:16 +00:00
sadnub
bb04ba528c make sure logs dir exists for api 2021-04-07 19:39:35 -04:00
sadnub
b94a795189 specify names for the dev and prod containers and fix frontend web .env generation 2021-04-07 19:39:35 -04:00
wh1te909
9968184733 fix alert sending the wrong winsvc status text 2021-04-07 20:34:29 +00:00
silversword411
1be6f8f87a Script screenconnect rename 2021-04-07 11:56:02 +00:00
wh1te909
426821cceb django 3.2 2021-04-07 04:58:35 +00:00
wh1te909
4fec0deaf7 add another server for exe gen 2021-04-07 04:52:16 +00:00
Dan
144ac5b6ce Merge pull request #373 from silversword411/develop
Script rename-ageddon v1
2021-04-06 21:41:22 -07:00
Dan
97c73786fa Merge pull request #372 from bradhawkins85/patch-12
Update installer.ps1
2021-04-06 21:40:24 -07:00
silversword411
82e59d7da0 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-07 04:09:24 +00:00
silversword411
b2c10de6af Script rename-ageddon v1 2021-04-07 04:09:04 +00:00
silversword411
d72029c2c6 Script rename-ageddon v1 2021-04-07 04:08:30 +00:00
bradhawkins85
17b9987063 Update installer.ps1
Set TLS version to 1.2
2021-04-07 13:47:26 +10:00
Dan
fde07da2b7 Merge pull request #371 from silversword411/develop
Script Category-geddon v1
2021-04-06 16:32:17 -07:00
silversword411
c23bc29511 Don't tell anyone, secret devbox rockin docs WIP 2021-04-06 04:12:56 +00:00
silversword411
714cad2a52 Script Category-geddon v1 2021-04-06 03:30:59 +00:00
wh1te909
357d5d2fde sort scripts alphabetically 2021-04-05 09:00:32 +00:00
Dan
d477cce901 Merge pull request #369 from bradhawkins85/patch-11
Update ScreenConnectAIO.ps1
2021-04-05 01:11:38 -07:00
bradhawkins85
eb6af52ad1 Update ScreenConnectAIO.ps1
Add error checking to ensure required custom fields have been created, stop the script if they have not been set up.
2021-04-05 17:51:01 +10:00
wh1te909
aae75023a7 add some more tests for community scripts json file 2021-04-05 07:21:47 +00:00
wh1te909
41dcd4f458 fix screenconnect args 2021-04-05 07:21:26 +00:00
Dan
4651ae4495 Merge pull request #368 from bradhawkins85/patch-10
Create ScreenConnectAIO.ps1
2021-04-04 23:45:50 -07:00
bradhawkins85
ed61e0b0fc Create ScreenConnectAIO.ps1
Install, Uninstall, Start and Stop ScreenConnect Access Agent
2021-04-05 16:42:05 +10:00
Dan
b3b0c4cd65 Merge pull request #366 from bradhawkins85/patch-9
Update community_scripts.json
2021-04-04 23:21:52 -07:00
bradhawkins85
ea68d38b82 Update community_scripts.json
add ScreenConnectAIO.ps1
2021-04-05 16:18:29 +10:00
Dan
6c328deb08 Merge pull request #364 from silversword411/develop
Polishing vscode contribute docs
2021-04-04 22:29:50 -07:00
silversword411
add564d5bf Polishing vscode docs v2 2021-04-05 00:11:56 +00:00
silversword411
fa94acb426 Updating Disk Health and Duplicati scripts 2021-04-05 00:07:24 +00:00
silversword411
6827468f13 Polishing vscode contribute docs 2021-04-04 23:51:39 +00:00
Dan
53fd43868f Merge pull request #362 from silversword411/develop
Adding vscode contributing Howto to docs
2021-04-04 13:45:27 -07:00
silversword411
9ced7561c5 Adding GUID's to all scripts 2021-04-04 18:29:21 +00:00
silversword411
31d55d3425 Adding vscode contributing Howto to docs 2021-04-04 18:10:19 +00:00
wh1te909
171d2a5bb9 update docs 2021-04-04 09:21:17 +00:00
wh1te909
2973e0559a bump versions 2021-04-04 07:49:27 +00:00
wh1te909
ec27288dcf add link 2021-04-04 07:47:20 +00:00
wh1te909
f92e5c7093 update docs 2021-04-04 07:37:36 +00:00
wh1te909
7c67155c49 update docs 2021-04-04 07:10:30 +00:00
wh1te909
b102cd4652 log unhashable type errors when parsing custom fields 2021-04-04 05:49:39 +00:00
wh1te909
67f9a48c37 remove version from consumers view 2021-04-04 02:09:44 +00:00
wh1te909
a0c8a1ee65 change consumers 2021-04-04 01:59:06 +00:00
wh1te909
7e7d272b06 fix update script 2021-04-04 01:41:25 +00:00
sadnub
3c642240ae fix showing default value in script variable if value doesn't exist 2021-04-03 21:37:09 -04:00
wh1te909
b5157fcaf1 update bash scripts for channels 2021-04-04 01:13:27 +00:00
sadnub
d1cb42f1bc fix nats container config path 2021-04-03 20:52:06 -04:00
sadnub
84cde1a16a fix vuex getter for community script show state 2021-04-03 20:40:15 -04:00
wh1te909
877f5db1ce update reqs 2021-04-03 23:39:46 +00:00
sadnub
787164e245 add websockets container. Fix mesh upload on new installation. remove cypress until we need it 2021-04-03 17:50:18 -04:00
wh1te909
d77fc5e7c5 isort 2021-04-03 03:36:28 +00:00
wh1te909
cca39a67d6 start channels tests 2021-04-03 03:35:41 +00:00
wh1te909
a6c9a0431a isort skip 2021-04-03 03:34:46 +00:00
wh1te909
729a80a639 switch to jsonwebsocket 2021-04-03 03:25:01 +00:00
wh1te909
31cb3001f6 Merge branch 'channels' into develop 2021-04-03 00:57:18 +00:00
wh1te909
5d0f54a329 fix typo 2021-04-03 00:50:28 +00:00
wh1te909
c8c3f5b5b7 add channels to install script 2021-04-03 00:24:31 +00:00
wh1te909
ba473ed75a fix channels in prod 2021-04-03 00:17:20 +00:00
wh1te909
7236fd59f8 more websocket work 2021-04-02 22:55:16 +00:00
wh1te909
9471e8f1fd add channels to reqs 2021-04-02 22:54:58 +00:00
Dan
a2d39b51bb Merge pull request #359 from silversword411/develop
Rename computer script - change default timeout
2021-04-02 14:10:29 -07:00
wh1te909
2920934b55 fix scripts and tests 2021-04-02 21:03:32 +00:00
silversword411
3f709d448e Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-04-02 20:49:55 +00:00
silversword411
b79f66183f Changing Rename Computer Default Timeout 2021-04-02 20:48:46 +00:00
silversword411
8672f57e55 Changing Rename Computer Default Timeout 2021-04-02 20:47:06 +00:00
wh1te909
1e99c82351 testing websockets with channels 2021-04-02 20:04:04 +00:00
sadnub
1a2ff851f3 remove console log 2021-04-02 15:53:39 -04:00
sadnub
f1c27c3959 fix script timeout on running favorite script 2021-04-02 15:50:12 -04:00
sadnub
b30dac0f15 add script default args and reworked the script dropdowns to include categories 2021-04-02 15:48:08 -04:00
wh1te909
cc79e5cdaf software tests 2021-04-01 19:39:45 +00:00
wh1te909
d9a3b2f2cb tests 2021-04-01 18:54:47 +00:00
wh1te909
479b528d09 more tests 2021-04-01 09:01:57 +00:00
wh1te909
461fb84fb9 add tests 2021-04-01 08:41:51 +00:00
wh1te909
bd7685e3fa update docs 2021-04-01 07:40:42 +00:00
wh1te909
cd98cb64b3 refactor some installer views 2021-04-01 07:34:34 +00:00
sadnub
0f32a3ec24 good start to script variables 2021-04-01 00:23:42 -04:00
Dan
ca446cac87 Merge pull request #357 from bbrendon/patch-1
Update Check_Events_for_Bluescreens.ps1 - indicate time frame.
2021-03-31 17:53:21 -07:00
Brendon Baumgartner
6ea907ffda Update Check_Events_for_Bluescreens.ps1
indicate time frame.
2021-03-31 17:11:45 -07:00
wh1te909
5287baa70d fix test 2021-03-31 20:46:15 +00:00
wh1te909
25935fec84 add test for spaces in script filenames 2021-03-31 20:19:18 +00:00
Dan
e855a063ff Merge pull request #356 from tremor021/develop
Added some scripts
2021-03-31 12:15:01 -07:00
tremor021
c726b8c9f0 Fixed some things 2021-03-31 21:02:36 +02:00
tremor021
13cb99290e Revert "Fixed script naming"
This reverts commit cea9413fd1.
2021-03-31 20:57:50 +02:00
tremor021
cea9413fd1 Fixed script naming 2021-03-31 20:54:07 +02:00
tremor021
6d6c2b86e8 Added some scripts 2021-03-31 20:34:45 +02:00
wh1te909
77b1d964b5 bump versions 2021-03-31 18:33:43 +00:00
wh1te909
549936fc09 add logging and timeout to deployment gen 2021-03-31 18:24:27 +00:00
wh1te909
c9c32f09c5 public docs on push to master instead of develop 2021-03-31 18:11:14 +00:00
sadnub
77f7778d4a fix being ablwe to add/edit automation and alert templates on sites and clients 2021-03-31 12:03:26 -04:00
wh1te909
84b6be9364 un-hide custom fields 2021-03-31 07:29:28 +00:00
wh1te909
ba9bdaae0a bump versions 2021-03-31 07:09:20 +00:00
wh1te909
7dfd7bde8e fix update 2021-03-31 07:02:35 +00:00
Dan
5e6c4161d0 Merge pull request #355 from silversword411/develop
Scripts choco update
2021-03-30 23:26:17 -07:00
wh1te909
d75d56dfc9 hide customfields in ui for now 2021-03-31 06:22:53 +00:00
silversword411
1d9d350091 Merge branch 'develop' of https://github.com/silversword411/tacticalrmm into develop 2021-03-31 02:19:57 -04:00
silversword411
5744053c6f Scripts choco update 2021-03-31 02:14:18 -04:00
wh1te909
65589b6ca2 clients manager table ui fixes 2021-03-31 06:13:30 +00:00
silversword411
e03a9d1137 Scripts choco update 2021-03-31 00:19:44 -04:00
Dan
29f80f2276 Merge pull request #354 from silversword411/develop
2 script updates, one removal
2021-03-30 21:01:22 -07:00
silversword411
a9b74aa69b Commit the file renames 2021-03-30 23:43:18 -04:00
silversword411
63ebfd3210 2 script updates, one removal 2021-03-30 23:20:58 -04:00
wh1te909
87fa5ff7a6 feat: add default timeout in script manager closes #352 2021-03-31 03:01:46 +00:00
sadnub
b686b53a9c Update dockerfile 2021-03-30 17:11:06 -04:00
wh1te909
258261dc64 refactor goinstaller to prepare for code signing 2021-03-30 20:52:03 +00:00
sadnub
9af5c9ead9 remove console.log entries 2021-03-29 18:34:40 -04:00
wh1te909
382654188c update install docs 2021-03-29 22:02:30 +00:00
Dan
fa1df082b7 Merge pull request #345 from silversword411/develop
Updating scripts
2021-03-29 14:12:00 -07:00
sadnub
5c227d8f80 formatting 2021-03-29 15:31:29 -04:00
sadnub
81dabdbfb7 fix tests 2021-03-29 15:27:08 -04:00
sadnub
91f89f5a33 custom fields finish 2021-03-29 15:14:20 -04:00
silversword411
9f92746aa0 Adding Install All Updates and extra categories 2021-03-29 09:22:51 -04:00
wh1te909
5d6e6f9441 fix custom fields 2021-03-29 11:14:04 +00:00
wh1te909
01395a2726 isort 2021-03-29 10:23:54 +00:00
sadnub
465d75c65d formatting 2021-03-28 18:22:04 -04:00
sadnub
4634f8927e add tests for clients changes and custom fields 2021-03-28 18:17:35 -04:00
sadnub
74a287f9fe update containers to node 14 and reconfigure nats-api 2021-03-28 09:23:06 -04:00
wh1te909
7ff6c79835 remove natsapi from normal install 2021-03-27 20:00:47 +00:00
wh1te909
3629982237 refactor natsapi 2021-03-27 19:21:52 +00:00
silversword411
ddb610f1bc Bitlocker script update 2021-03-27 00:47:11 -04:00
silversword411
f899905d27 Updating script to std format: AD 2021-03-27 00:41:51 -04:00
silversword411
3e4531b5c5 Merge remote-tracking branch 'upstream/develop' into develop 2021-03-27 00:35:13 -04:00
wh1te909
a9e189e51d fix edit client, more tests 2021-03-27 00:25:45 -04:00
Dan
58ba08a8f3 Merge pull request #342 from silversword411/develop
Updating labels from (s) to (seconds)
2021-03-26 20:59:09 -07:00
silversword411
9078ff27d8 Updating (s) in labels to (seconds) 2021-03-26 22:48:13 -04:00
silversword411
6f43e61c24 Disk label v2 2021-03-26 18:48:40 -04:00
silversword411
4be0d3f212 Updating Disk check label 2021-03-26 18:39:03 -04:00
wh1te909
00e47e5a27 fix edit client, more tests 2021-03-26 22:25:13 +00:00
Dan
152e145b32 Merge pull request #341 from silversword411/develop
Script Update to standardized format
2021-03-26 14:45:37 -07:00
wh1te909
54e55e8f57 update drf 2021-03-26 21:44:05 +00:00
wh1te909
05b8707f9e black 2021-03-26 21:23:34 +00:00
wh1te909
543e952023 start fixing tests 2021-03-26 21:20:39 +00:00
silversword411
6e5f40ea06 Update community_scripts.json 2021-03-26 10:29:58 -04:00
silversword411
bbafb0be87 bios script update 2021-03-26 10:23:46 -04:00
silversword411
1c9c5232fe Rename bios_check.ps1 to Win_Bios_Check.ps1 2021-03-26 10:17:44 -04:00
wh1te909
598d79a502 fix error msg 2021-03-26 07:48:35 +00:00
wh1te909
37d8360b77 add creation date to deployment closes #340 2021-03-26 06:58:36 +00:00
wh1te909
82d9ca3317 go 1.16.2 2021-03-26 06:48:58 +00:00
wh1te909
4e4238d486 update to nodejs v14 2021-03-26 06:32:24 +00:00
wh1te909
c77dbe44dc remove old salt check 2021-03-26 06:03:04 +00:00
wh1te909
e03737f15f drop upgrade support for trmm < 0.3.0 2021-03-26 05:51:23 +00:00
Dan
a02629bcd7 Merge pull request #337 from sadnub/develop
clients and sites rework and custom fields
2021-03-25 22:24:43 -07:00
sadnub
6c3fc23d78 fix adding clients/sites/agents with custom fields 2021-03-25 23:21:57 -04:00
sadnub
0fe40f9ccb add custom fields to forms and get saving to work 2021-03-25 23:21:57 -04:00
sadnub
9bd7c8edd1 clients and sites rework and custom fields 2021-03-25 23:21:57 -04:00
wh1te909
0227519eab bump versions 2021-03-25 23:13:41 +00:00
wh1te909
616a9685fa update reqs 2021-03-25 22:15:58 +00:00
wh1te909
fe61b01320 fix celery async errors 2021-03-24 22:13:02 +00:00
wh1te909
7b25144311 add docs for django admin 2021-03-24 07:12:26 +00:00
sadnub
9d42fbbdd7 exclude mesh agent and debug logs 2021-03-23 10:41:15 -04:00
sadnub
39ac5b088b Update entrypoint.sh 2021-03-23 10:41:04 -04:00
wh1te909
a297dc8b3b re-run update.sh when old version detected 2021-03-23 07:39:06 +00:00
wh1te909
8d4ecc0898 update reqs 2021-03-23 07:10:45 +00:00
wh1te909
a41c48a9c5 bump versions 2021-03-22 22:35:43 +00:00
sadnub
ff2a94bd9b Update dockerfile 2021-03-22 18:12:57 -04:00
wh1te909
608db9889f bump versions 2021-03-22 20:48:39 +00:00
sadnub
012b697337 Update dockerfile 2021-03-22 15:18:11 -04:00
sadnub
0580506cf3 Update entrypoint.sh 2021-03-22 15:17:49 -04:00
Dan
ff4ab9b661 Update issue templates 2021-03-18 23:25:46 -07:00
wh1te909
a11e617322 bump versions 2021-03-19 05:21:37 +00:00
Dan
d0beac7e2b Merge pull request #330 from silversword411/develop
Added Rename Computer Community Script
2021-03-18 22:19:20 -07:00
silversword411
9db497092f Update Rename_Computer.ps1 2021-03-18 00:38:40 -04:00
wh1te909
ded5437522 bump versions 2021-03-17 17:50:56 +00:00
wh1te909
9348657951 fix script manager freezing on latest chrome 2021-03-17 17:36:24 +00:00
wh1te909
bca85933f7 make sure postgres is enabled and running. update npm 2021-03-16 23:09:38 +00:00
silversword411
c32bb35f1c Added Rename Computer Community Script 2021-03-16 17:10:23 -04:00
Dan
4b84062d62 Merge pull request #329 from silversword411/develop
Adding Bluescreen script
2021-03-16 12:04:37 -07:00
silversword411
d6d0f8fa17 fixed description 2021-03-16 14:16:38 -04:00
silversword411
dd72c875d3 Add Bluescreen script
From dinger1986
2021-03-16 14:13:30 -04:00
wh1te909
1a1df50300 show all severity levels closes #326 2021-03-16 17:54:25 +00:00
wh1te909
53cbb527b4 nats 2.2.0 2021-03-16 17:03:09 +00:00
Dan
8b87b2717e Merge pull request #327 from silversword411/develop
Adding AD Recycle Bin script
2021-03-16 09:50:20 -07:00
silversword411
1007d6dac7 Adding AD Recycle Bin script
Check and Enable AD Recycle Bin
2021-03-16 11:39:44 -04:00
Dan
6799fac120 Merge pull request #325 from silversword411/patch-4
Add Chocolatey Update script to community scripts
2021-03-15 10:35:40 -07:00
silversword411
558e6288ca Merge pull request #1 from silversword411/patch-5
Adding Chocolatey updates to community scripts
2021-03-15 05:10:12 -04:00
silversword411
d9cb73291b Adding Chocolatey updates to community scripts 2021-03-15 05:04:32 -04:00
silversword411
d0f7be3ac3 Create Chocolatey_Update_Installed.bat 2021-03-15 04:57:46 -04:00
wh1te909
331e16d3ca bump mesh closes #323 2021-03-13 23:57:46 +00:00
Dan
0db246c311 Merge pull request #324 from silversword411/patch-3
Avoid multiple update file versions
2021-03-13 14:13:03 -08:00
silversword411
94dc62ff58 Avoid multiple update file versions
Kept getting update.sh.1, update.sh.2 etc with each run and then the auto-pasted command wouldn't be running the latest version of the file.
2021-03-13 12:14:53 -05:00
wh1te909
e68ecf6844 update demo link 2021-03-12 08:22:02 +00:00
Dan
5167b0a8c6 Merge pull request #322 from silversword411/patch-3
Removing extra folder
2021-03-12 00:00:06 -08:00
silversword411
77e3d3786d Removing extra folder 2021-03-11 19:16:27 -05:00
wh1te909
708d4d39bc add test 2021-03-11 19:26:36 +00:00
Dan
2a8cda2a1e Merge pull request #321 from silversword411/patch-3
Updating to match install scripts
2021-03-11 10:47:10 -08:00
silversword411
8d783840ad Updating to match install scripts 2021-03-11 12:02:56 -05:00
wh1te909
abe39d5790 remove checks for older agents 2021-03-11 10:53:27 +00:00
wh1te909
7b84e36e15 bump versions 2021-03-11 10:11:13 +00:00
wh1te909
87846d7aef bump versions 2021-03-11 04:36:14 +00:00
wh1te909
2557769c6a fix runchecks wh1te909/rmmagent@739e7434ae 2021-03-11 04:20:18 +00:00
698 changed files with 55803 additions and 73919 deletions

View File

@@ -23,6 +23,9 @@ POSTGRES_USER=postgres
POSTGRES_PASS=postgrespass
# DEV SETTINGS
APP_PORT=80
APP_PORT=443
API_PORT=80
HTTP_PROTOCOL=https
DOCKER_NETWORK=172.21.0.0/24
DOCKER_NGINX_IP=172.21.0.20
NATS_PORTS=4222:4222

View File

@@ -1,7 +1,13 @@
FROM python:3.9.2-slim
# pulls community scripts from git repo
FROM python:3.11.8-slim AS GET_SCRIPTS_STAGE
RUN apt-get update && \
apt-get install -y --no-install-recommends git && \
git clone https://github.com/amidaware/community-scripts.git /community-scripts
FROM python:3.11.8-slim
ENV TACTICAL_DIR /opt/tactical
ENV TACTICAL_GO_DIR /usr/local/rmmgo
ENV TACTICAL_READY_FILE ${TACTICAL_DIR}/tmp/tactical.ready
ENV WORKSPACE_DIR /workspace
ENV TACTICAL_USER tactical
@@ -9,20 +15,24 @@ ENV VIRTUAL_ENV ${WORKSPACE_DIR}/api/tacticalrmm/env
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
EXPOSE 8000 8383 8005
RUN apt-get update && \
apt-get install -y build-essential weasyprint
RUN groupadd -g 1000 tactical && \
useradd -u 1000 -g 1000 tactical
# Copy Go Files
COPY --from=golang:1.16 /usr/local/go ${TACTICAL_GO_DIR}/go
# copy community scripts
COPY --from=GET_SCRIPTS_STAGE /community-scripts /community-scripts
# Copy Dev python reqs
COPY ./requirements.txt /
# Copy dev python reqs
COPY .devcontainer/requirements.txt /
# Copy Docker Entrypoint
COPY ./entrypoint.sh /
# Copy docker entrypoint.sh
COPY .devcontainer/entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
WORKDIR ${WORKSPACE_DIR}/api/tacticalrmm

View File

@@ -1,19 +0,0 @@
version: '3.4'
services:
api-dev:
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000 --nothreading --noreload"]
ports:
- 8000:8000
- 5678:5678
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
networks:
dev:
aliases:
- tactical-backend

View File

@@ -2,12 +2,14 @@ version: '3.4'
services:
api-dev:
container_name: trmm-api-dev
image: api-dev
restart: always
user: 1000:1000
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-api"]
context: ..
dockerfile: .devcontainer/api.dockerfile
command: [ "tactical-api" ]
environment:
API_PORT: ${API_PORT}
ports:
@@ -17,33 +19,21 @@ services:
- ..:/workspace:cached
networks:
dev:
aliases:
aliases:
- tactical-backend
app-dev:
image: node:12-alpine
restart: always
command: /bin/sh -c "npm install && npm run serve -- --host 0.0.0.0 --port ${APP_PORT}"
working_dir: /workspace/web
volumes:
- ..:/workspace:cached
ports:
- "8080:${APP_PORT}"
networks:
dev:
aliases:
- tactical-frontend
# nats
nats-dev:
container_name: trmm-nats-dev
image: ${IMAGE_REPO}tactical-nats:${VERSION}
restart: always
user: 1000:1000
environment:
API_HOST: ${API_HOST}
API_PORT: ${API_PORT}
DEV: 1
ports:
- "4222:4222"
- "${NATS_PORTS}"
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
@@ -55,15 +45,17 @@ services:
# meshcentral container
meshcentral-dev:
container_name: trmm-meshcentral-dev
image: ${IMAGE_REPO}tactical-meshcentral:${VERSION}
restart: always
environment:
user: 1000:1000
environment:
MESH_HOST: ${MESH_HOST}
MESH_USER: ${MESH_USER}
MESH_PASS: ${MESH_PASS}
MONGODB_USER: ${MONGODB_USER}
MONGODB_PASSWORD: ${MONGODB_PASSWORD}
NGINX_HOST_IP: 172.21.0.20
NGINX_HOST_IP: ${DOCKER_NGINX_IP}
networks:
dev:
aliases:
@@ -77,8 +69,10 @@ services:
# mongodb container for meshcentral
mongodb-dev:
container_name: trmm-mongodb-dev
image: mongo:4.4
restart: always
user: 1000:1000
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGODB_USER}
MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
@@ -92,10 +86,11 @@ services:
# postgres database for api service
postgres-dev:
container_name: trmm-postgres-dev
image: postgres:13-alpine
restart: always
environment:
POSTGRES_DB: tacticalrmm
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASS}
volumes:
@@ -107,20 +102,23 @@ services:
# redis container for celery tasks
redis-dev:
container_name: trmm-redis-dev
restart: always
user: 1000:1000
command: redis-server
image: redis:6.0-alpine
volumes:
- redis-data-dev:/data
networks:
dev:
aliases:
- tactical-redis
init-dev:
container_name: trmm-init-dev
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
restart: on-failure
command: ["tactical-init-dev"]
command: [ "tactical-init-dev" ]
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASS: ${POSTGRES_PASS}
@@ -132,6 +130,7 @@ services:
TRMM_PASS: ${TRMM_PASS}
HTTP_PROTOCOL: ${HTTP_PROTOCOL}
APP_PORT: ${APP_PORT}
POSTGRES_DB: ${POSTGRES_DB}
depends_on:
- postgres-dev
- meshcentral-dev
@@ -139,16 +138,18 @@ services:
- dev
volumes:
- tactical-data-dev:/opt/tactical
- mesh-data-dev:/meshcentral-data
- redis-data-dev:/redis/data
- mongo-dev-data:/mongo/data/db
- ..:/workspace:cached
# container for celery worker service
celery-dev:
container_name: trmm-celery-dev
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-celery-dev"]
command: [ "tactical-celery-dev" ]
restart: always
user: 1000:1000
networks:
- dev
volumes:
@@ -160,12 +161,11 @@ services:
# container for celery beat service
celerybeat-dev:
container_name: trmm-celerybeat-dev
image: api-dev
build:
context: .
dockerfile: ./api.dockerfile
command: ["tactical-celerybeat-dev"]
command: [ "tactical-celerybeat-dev" ]
restart: always
user: 1000:1000
networks:
- dev
volumes:
@@ -175,10 +175,30 @@ services:
- postgres-dev
- redis-dev
nginx-dev:
# container for websockets communication
websockets-dev:
container_name: trmm-websockets-dev
image: api-dev
command: [ "tactical-websockets-dev" ]
restart: always
user: 1000:1000
networks:
dev:
aliases:
- tactical-websockets
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
depends_on:
- postgres-dev
- redis-dev
# container for tactical reverse proxy
nginx-dev:
container_name: trmm-nginx-dev
image: ${IMAGE_REPO}tactical-nginx:${VERSION}
restart: always
user: 1000:1000
environment:
APP_HOST: ${APP_HOST}
API_HOST: ${API_HOST}
@@ -187,20 +207,23 @@ services:
CERT_PRIV_KEY: ${CERT_PRIV_KEY}
APP_PORT: ${APP_PORT}
API_PORT: ${API_PORT}
DEV: 1
networks:
dev:
ipv4_address: 172.21.0.20
ipv4_address: ${DOCKER_NGINX_IP}
ports:
- "80:80"
- "443:443"
- "80:8080"
- "443:4443"
volumes:
- tactical-data-dev:/opt/tactical
- ..:/workspace:cached
volumes:
tactical-data-dev:
postgres-data-dev:
mongo-dev-data:
mesh-data-dev:
tactical-data-dev: null
postgres-data-dev: null
mongo-dev-data: null
mesh-data-dev: null
redis-data-dev: null
networks:
dev:
@@ -208,4 +231,4 @@ networks:
ipam:
driver: default
config:
- subnet: 172.21.0.0/24
- subnet: ${DOCKER_NETWORK}

View File

@@ -9,17 +9,18 @@ set -e
: "${POSTGRES_USER:=tactical}"
: "${POSTGRES_PASS:=tactical}"
: "${POSTGRES_DB:=tacticalrmm}"
: "${MESH_CONTAINER:=tactical-meshcentral}"
: "${MESH_SERVICE:=tactical-meshcentral}"
: "${MESH_WS_URL:=ws://${MESH_SERVICE}:4443}"
: "${MESH_USER:=meshcentral}"
: "${MESH_PASS:=meshcentralpass}"
: "${MESH_HOST:=tactical-meshcentral}"
: "${API_HOST:=tactical-backend}"
: "${APP_HOST:=tactical-frontend}"
: "${REDIS_HOST:=tactical-redis}"
: "${HTTP_PROTOCOL:=http}"
: "${APP_PORT:=8080}"
: "${API_PORT:=8000}"
: "${CERT_PRIV_PATH:=${TACTICAL_DIR}/certs/privkey.pem}"
: "${CERT_PUB_PATH:=${TACTICAL_DIR}/certs/fullchain.pem}"
# Add python venv to path
export PATH="${VIRTUAL_ENV}/bin:$PATH"
@@ -32,12 +33,12 @@ function check_tactical_ready {
}
function django_setup {
until (echo > /dev/tcp/"${POSTGRES_HOST}"/"${POSTGRES_PORT}") &> /dev/null; do
until (echo >/dev/tcp/"${POSTGRES_HOST}"/"${POSTGRES_PORT}") &>/dev/null; do
echo "waiting for postgresql container to be ready..."
sleep 5
done
until (echo > /dev/tcp/"${MESH_CONTAINER}"/443) &> /dev/null; do
until (echo >/dev/tcp/"${MESH_SERVICE}"/4443) &>/dev/null; do
echo "waiting for meshcentral container to be ready..."
sleep 5
done
@@ -48,24 +49,35 @@ function django_setup {
MESH_TOKEN="$(cat ${TACTICAL_DIR}/tmp/mesh_token)"
DJANGO_SEKRET=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 80 | head -n 1)
localvars="$(cat << EOF
BASE_DOMAIN=$(echo "import tldextract; no_fetch_extract = tldextract.TLDExtract(suffix_list_urls=()); extracted = no_fetch_extract('${API_HOST}'); print(f'{extracted.domain}.{extracted.suffix}')" | python)
localvars="$(
cat <<EOF
SECRET_KEY = '${DJANGO_SEKRET}'
DEBUG = True
DOCKER_BUILD = True
CERT_FILE = '/opt/tactical/certs/fullchain.pem'
KEY_FILE = '/opt/tactical/certs/privkey.pem'
SWAGGER_ENABLED = True
SCRIPTS_DIR = '${WORKSPACE_DIR}/scripts'
CERT_FILE = '${CERT_PUB_PATH}'
KEY_FILE = '${CERT_PRIV_PATH}'
ALLOWED_HOSTS = ['${API_HOST}', '*']
SCRIPTS_DIR = '/community-scripts'
ADMIN_URL = 'admin/'
CORS_ORIGIN_ALLOW_ALL = True
ALLOWED_HOSTS = ['${API_HOST}', '${APP_HOST}', '*']
CORS_ORIGIN_WHITELIST = ['https://${APP_HOST}']
SESSION_COOKIE_DOMAIN = '${BASE_DOMAIN}'
CSRF_COOKIE_DOMAIN = '${BASE_DOMAIN}'
CSRF_TRUSTED_ORIGINS = ['https://${API_HOST}', 'https://${APP_HOST}']
HEADLESS_FRONTEND_URLS = {'socialaccount_login_error': 'https://${APP_HOST}/account/provider/callback'}
DATABASES = {
'default': {
@@ -75,47 +87,47 @@ DATABASES = {
'PASSWORD': '${POSTGRES_PASS}',
'HOST': '${POSTGRES_HOST}',
'PORT': '${POSTGRES_PORT}',
},
'reporting': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '${POSTGRES_DB}',
'USER': 'reporting_user',
'PASSWORD': 'read_password',
'HOST': '${POSTGRES_HOST}',
'PORT': '${POSTGRES_PORT}',
'OPTIONS': {
'options': '-c default_transaction_read_only=on'
}
}
}
REST_FRAMEWORK = {
'DATETIME_FORMAT': '%b-%d-%Y - %H:%M',
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'knox.auth.TokenAuthentication',
),
}
if not DEBUG:
REST_FRAMEWORK.update({
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
})
MESH_USERNAME = '${MESH_USER}'
MESH_SITE = 'https://${MESH_HOST}'
MESH_TOKEN_KEY = '${MESH_TOKEN}'
REDIS_HOST = '${REDIS_HOST}'
MESH_WS_URL = '${MESH_WS_URL}'
ADMIN_ENABLED = True
TRMM_INSECURE = True
EOF
)"
)"
echo "${localvars}" > ${WORKSPACE_DIR}/api/tacticalrmm/tacticalrmm/local_settings.py
echo "${localvars}" >${WORKSPACE_DIR}/api/tacticalrmm/tacticalrmm/local_settings.py
# run migrations and init scripts
"${VIRTUAL_ENV}"/bin/python manage.py pre_update_tasks
"${VIRTUAL_ENV}"/bin/python manage.py migrate --no-input
"${VIRTUAL_ENV}"/bin/python manage.py generate_json_schemas
"${VIRTUAL_ENV}"/bin/python manage.py collectstatic --no-input
"${VIRTUAL_ENV}"/bin/python manage.py initial_db_setup
"${VIRTUAL_ENV}"/bin/python manage.py initial_mesh_setup
"${VIRTUAL_ENV}"/bin/python manage.py load_chocos
"${VIRTUAL_ENV}"/bin/python manage.py load_community_scripts
"${VIRTUAL_ENV}"/bin/python manage.py reload_nats
"${VIRTUAL_ENV}"/bin/python manage.py create_natsapi_conf
"${VIRTUAL_ENV}"/bin/python manage.py create_installer_user
"${VIRTUAL_ENV}"/bin/python manage.py post_update_tasks
# create super user
# create super user
echo "from accounts.models import User; User.objects.create_superuser('${TRMM_USER}', 'admin@example.com', '${TRMM_PASS}') if not User.objects.filter(username='${TRMM_USER}').exists() else 0;" | python manage.py shell
}
@@ -126,21 +138,31 @@ if [ "$1" = 'tactical-init-dev' ]; then
test -f "${TACTICAL_READY_FILE}" && rm "${TACTICAL_READY_FILE}"
mkdir -p /meshcentral-data
mkdir -p ${TACTICAL_DIR}/tmp
mkdir -p ${TACTICAL_DIR}/certs
mkdir -p ${TACTICAL_DIR}/reporting
mkdir -p ${TACTICAL_DIR}/reporting/assets
mkdir -p /mongo/data/db
mkdir -p /redis/data
touch /meshcentral-data/.initialized && chown -R 1000:1000 /meshcentral-data
touch ${TACTICAL_DIR}/tmp/.initialized && chown -R 1000:1000 ${TACTICAL_DIR}
touch ${TACTICAL_DIR}/certs/.initialized && chown -R 1000:1000 ${TACTICAL_DIR}/certs
touch /mongo/data/db/.initialized && chown -R 1000:1000 /mongo/data/db
touch /redis/data/.initialized && chown -R 1000:1000 /redis/data
touch ${TACTICAL_DIR}/reporting && chown -R 1000:1000 ${TACTICAL_DIR}/reporting
mkdir -p ${TACTICAL_DIR}/api/tacticalrmm/private/exe
mkdir -p ${TACTICAL_DIR}/api/tacticalrmm/private/log
touch ${TACTICAL_DIR}/api/tacticalrmm/private/log/django_debug.log
# setup Python virtual env and install dependencies
! test -e "${VIRTUAL_ENV}" && python -m venv ${VIRTUAL_ENV}
"${VIRTUAL_ENV}"/bin/python -m pip install --upgrade pip
"${VIRTUAL_ENV}"/bin/pip install --no-cache-dir setuptools wheel
"${VIRTUAL_ENV}"/bin/pip install --no-cache-dir -r /requirements.txt
django_setup
# create .env file for frontend
webenv="$(cat << EOF
PROD_URL = "${HTTP_PROTOCOL}://${API_HOST}"
DEV_URL = "${HTTP_PROTOCOL}://${API_HOST}"
APP_URL = https://${APP_HOST}
EOF
)"
echo "${webenv}" | tee ${WORKSPACE_DIR}/web/.env > /dev/null
# chown everything to tactical user
chown -R "${TACTICAL_USER}":"${TACTICAL_USER}" "${WORKSPACE_DIR}"
chown -R "${TACTICAL_USER}":"${TACTICAL_USER}" "${TACTICAL_DIR}"
@@ -150,9 +172,6 @@ EOF
fi
if [ "$1" = 'tactical-api' ]; then
cp "${WORKSPACE_DIR}"/api/tacticalrmm/core/goinstaller/bin/goversioninfo /usr/local/bin/goversioninfo
chmod +x /usr/local/bin/goversioninfo
check_tactical_ready
"${VIRTUAL_ENV}"/bin/python manage.py runserver 0.0.0.0:"${API_PORT}"
fi
@@ -167,3 +186,8 @@ if [ "$1" = 'tactical-celerybeat-dev' ]; then
test -f "${WORKSPACE_DIR}/api/tacticalrmm/celerybeat.pid" && rm "${WORKSPACE_DIR}/api/tacticalrmm/celerybeat.pid"
"${VIRTUAL_ENV}"/bin/celery -A tacticalrmm beat -l debug
fi
if [ "$1" = 'tactical-websockets-dev' ]; then
check_tactical_ready
"${VIRTUAL_ENV}"/bin/daphne tacticalrmm.asgi:application --port 8383 -b 0.0.0.0
fi

View File

@@ -1,32 +1,3 @@
# To ensure app dependencies are ported from your virtual environment/host machine into your container, run 'pip freeze > requirements.txt' in the terminal to overwrite this file
asyncio-nats-client
celery
Django
django-cors-headers
django-rest-knox
djangorestframework
loguru
msgpack
psycopg2-binary
pycparser
pycryptodome
pyotp
pyparsing
pytz
qrcode
redis
twilio
packaging
validators
websockets
black
Werkzeug
django-extensions
coverage
coveralls
model_bakery
mkdocs
mkdocs-material
pymdown-extensions
Pygments
mypy
-r /workspace/api/tacticalrmm/requirements.txt
-r /workspace/api/tacticalrmm/requirements-dev.txt
-r /workspace/api/tacticalrmm/requirements-test.txt

4
.github/FUNDING.yml vendored
View File

@@ -1,9 +1,9 @@
# These are supported funding model platforms
github: wh1te909
github: amidaware
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: tacticalrmm
ko_fi: # tacticalrmm
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username

41
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,41 @@
---
name: Bug report
about: Create a bug report
title: ''
labels: ''
assignees: ''
---
**Server Info (please complete the following information):**
- OS: [e.g. Ubuntu 20.04, Debian 10]
- Browser: [e.g. chrome, safari]
- RMM Version (as shown in top left of web UI):
**Installation Method:**
- [ ] Standard
- [ ] Standard with `--insecure` flag at install
- [ ] Docker
**Agent Info (please complete the following information):**
- Agent version (as shown in the 'Summary' tab of the agent from web UI):
- Agent OS: [e.g. Win 10 v2004, Server 2016]
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

82
.github/workflows/ci-tests.yml vendored Normal file
View File

@@ -0,0 +1,82 @@
name: Tests CI
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
jobs:
test:
runs-on: ubuntu-latest
name: Tests
strategy:
matrix:
python-version: ["3.11.8"]
steps:
- uses: actions/checkout@v4
- uses: harmon758/postgresql-action@v1
with:
postgresql version: "15"
postgresql db: "pipeline"
postgresql user: "pipeline"
postgresql password: "pipeline123456"
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Install redis
run: |
sudo apt update
sudo apt install -y redis
redis-server --version
- name: Install requirements
working-directory: api/tacticalrmm
run: |
python --version
SETTINGS_FILE="tacticalrmm/settings.py"
SETUPTOOLS_VER=$(grep "^SETUPTOOLS_VER" "$SETTINGS_FILE" | awk -F'[= "]' '{print $5}')
WHEEL_VER=$(grep "^WHEEL_VER" "$SETTINGS_FILE" | awk -F'[= "]' '{print $5}')
pip install --upgrade pip
pip install setuptools==${SETUPTOOLS_VER} wheel==${WHEEL_VER}
pip install -r requirements.txt -r requirements-test.txt
- name: Codestyle black
working-directory: api
run: |
black --exclude migrations/ --check tacticalrmm
if [ $? -ne 0 ]; then
exit 1
fi
- name: Lint with flake8
working-directory: api/tacticalrmm
run: |
flake8 --config .flake8 .
if [ $? -ne 0 ]; then
exit 1
fi
- name: Run django tests
env:
GHACTIONS: "yes"
working-directory: api/tacticalrmm
run: |
pytest
if [ $? -ne 0 ]; then
exit 1
fi
- uses: codecov/codecov-action@v3
with:
directory: ./api/tacticalrmm
files: ./api/tacticalrmm/coverage.xml
verbose: true

View File

@@ -1,22 +0,0 @@
name: Deploy Docs
on:
push:
branches:
- develop
defaults:
run:
working-directory: docs
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install --upgrade pip
- run: pip install --upgrade setuptools wheel
- run: pip install mkdocs mkdocs-material pymdown-extensions
- run: mkdocs gh-deploy --force

View File

@@ -9,24 +9,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Get Github Tag
id: prep
run: |
echo ::set-output name=version::${GITHUB_REF#refs/tags/v}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and Push Tactical Image
uses: docker/build-push-action@v2
with:
@@ -36,7 +36,7 @@ jobs:
file: ./docker/containers/tactical/dockerfile
platforms: linux/amd64
tags: tacticalrmm/tactical:${{ steps.prep.outputs.version }},tacticalrmm/tactical:latest
- name: Build and Push Tactical MeshCentral Image
uses: docker/build-push-action@v2
with:
@@ -46,7 +46,7 @@ jobs:
file: ./docker/containers/tactical-meshcentral/dockerfile
platforms: linux/amd64
tags: tacticalrmm/tactical-meshcentral:${{ steps.prep.outputs.version }},tacticalrmm/tactical-meshcentral:latest
- name: Build and Push Tactical NATS Image
uses: docker/build-push-action@v2
with:
@@ -56,7 +56,7 @@ jobs:
file: ./docker/containers/tactical-nats/dockerfile
platforms: linux/amd64
tags: tacticalrmm/tactical-nats:${{ steps.prep.outputs.version }},tacticalrmm/tactical-nats:latest
- name: Build and Push Tactical Frontend Image
uses: docker/build-push-action@v2
with:
@@ -66,7 +66,7 @@ jobs:
file: ./docker/containers/tactical-frontend/dockerfile
platforms: linux/amd64
tags: tacticalrmm/tactical-frontend:${{ steps.prep.outputs.version }},tacticalrmm/tactical-frontend:latest
- name: Build and Push Tactical Nginx Image
uses: docker/build-push-action@v2
with:

12
.gitignore vendored
View File

@@ -47,3 +47,15 @@ docs/.vuepress/dist
nats-rmm.conf
.mypy_cache
docs/site/
reset_db.sh
run_go_cmd.py
nats-api.conf
ignore/
coverage.lcov
daphne.sock.lock
.pytest_cache
coverage.xml
setup_dev.yml
11env/
query_schema.json
gunicorn_config.py

23
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,23 @@
{
"recommendations": [
// frontend
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"editorconfig.editorconfig",
"vue.volar",
"wayou.vscode-todo-highlight",
// python
"matangover.mypy",
"ms-python.python",
// golang
"golang.go"
],
"unwantedRecommendations": [
"octref.vetur",
"hookyqr.beautify",
"dbaeumer.jshint",
"ms-vscode.vscode-typescript-tslint-plugin"
]
}

123
.vscode/settings.json vendored
View File

@@ -1,70 +1,59 @@
{
"python.pythonPath": "api/tacticalrmm/env/bin/python",
"python.languageServer": "Pylance",
"python.analysis.extraPaths": [
"api/tacticalrmm",
"api/env",
],
"python.analysis.diagnosticSeverityOverrides": {
"reportUnusedImport": "error",
"reportDuplicateImport": "error",
"python.defaultInterpreterPath": "api/env/bin/python",
"python.languageServer": "Pylance",
"python.analysis.extraPaths": ["api/tacticalrmm", "api/env"],
"python.analysis.diagnosticSeverityOverrides": {
"reportUnusedImport": "error",
"reportDuplicateImport": "error",
"reportGeneralTypeIssues": "none",
"reportOptionalMemberAccess": "none",
},
"python.analysis.typeCheckingMode": "basic",
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": true,
"editor.formatOnSave": true,
"files.associations": {
"**/ansible/**/*.yml": "ansible",
"**/docker/**/docker-compose*.yml": "dockercompose"
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/": true,
"/node_modules/**": true,
"**/env/": true,
"/env/**": true,
"**/__pycache__": true,
"/__pycache__/**": true,
"**/.cache": true,
"**/.eggs": true,
"**/.ipynb_checkpoints": true,
"**/.mypy_cache": true,
"**/.pytest_cache": true,
"**/*.egg-info": true,
"**/*.feather": true,
"**/*.parquet*": true,
"**/*.pyc": true,
"**/*.zip": true
},
"go.useLanguageServer": true,
"[go]": {
"editor.codeActionsOnSave": {
"source.organizeImports": "never"
},
"python.analysis.memory.keepLibraryAst": true,
"python.linting.mypyEnabled": true,
"python.analysis.typeCheckingMode": "basic",
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"vetur.format.defaultFormatter.js": "prettier",
"vetur.format.defaultFormatterOptions": {
"prettier": {
"semi": true,
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"arrowParens": "avoid",
}
},
"vetur.format.options.tabSize": 2,
"vetur.format.options.useTabs": false,
"files.watcherExclude": {
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/": true,
"/node_modules/**": true,
"**/env/": true,
"/env/**": true,
"**/__pycache__": true,
"/__pycache__/**": true,
"**/.cache": true,
"**/.eggs": true,
"**/.ipynb_checkpoints": true,
"**/.mypy_cache": true,
"**/.pytest_cache": true,
"**/*.egg-info": true,
"**/*.feather": true,
"**/*.parquet*": true,
"**/*.pyc": true,
"**/*.zip": true
},
},
"go.useLanguageServer": true,
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": false,
},
"editor.snippetSuggestions": "none",
},
"[go.mod]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
},
},
"gopls": {
"usePlaceholders": true,
"completeUnimported": true,
"staticcheck": true,
"editor.snippetSuggestions": "none"
},
"[go.mod]": {
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}
},
"gopls": {
"usePlaceholders": true,
"completeUnimported": true,
"staticcheck": true
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
}
}

23
.vscode/tasks.json vendored
View File

@@ -1,23 +0,0 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "docker debug",
"type": "shell",
"command": "docker-compose",
"args": [
"-p",
"trmm",
"-f",
".devcontainer/docker-compose.yml",
"-f",
".devcontainer/docker-compose.debug.yml",
"up",
"-d",
"--build"
]
}
]
}

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019-present wh1te909
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

74
LICENSE.md Normal file
View File

@@ -0,0 +1,74 @@
### Tactical RMM License Version 1.0
Text of license:&emsp;&emsp;&emsp;Copyright © 2022 AmidaWare LLC. All rights reserved.<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&nbsp;Amending the text of this license is not permitted.
Trade Mark:&emsp;&emsp;&emsp;&emsp;"Tactical RMM" is a trade mark of AmidaWare LLC.
Licensor:&emsp;&emsp;&emsp;&emsp;&emsp;&nbsp;&nbsp;AmidaWare LLC of 1968 S Coast Hwy PMB 3847 Laguna Beach, CA, USA.
Licensed Software:&emsp;&nbsp;The software known as Tactical RMM Version v0.12.0 (and all subsequent releases and versions) and the Tactical RMM Agent v2.0.0 (and all subsequent releases and versions).
### 1. Preamble
The Licensed Software is designed to facilitate the remote monitoring and management (RMM) of networks, systems, servers, computers and other devices. The Licensed Software is made available primarily for use by organisations and managed service providers for monitoring and management purposes.
The Tactical RMM License is not an open-source software license. This license contains certain restrictions on the use of the Licensed Software. For example the functionality of the Licensed Software may not be made available as part of a SaaS (Software-as-a-Service) service or product to provide a commercial or for-profit service without the express prior permission of the Licensor.
### 2. License Grant
Permission is hereby granted, free of charge, on a non-exclusive basis, to copy, modify, create derivative works and use the Licensed Software in source and binary forms subject to the following terms and conditions. No additional rights will be implied under this license.
* The hosting and use of the Licensed Software to monitor and manage in-house networks/systems and/or customer networks/systems is permitted.
This license does not allow the functionality of the Licensed Software (whether in whole or in part) or a modified version of the Licensed Software or a derivative work to be used or otherwise made available as part of any other commercial or for-profit service, including, without limitation, any of the following:
* a service allowing third parties to interact remotely through a computer network;
* as part of a SaaS service or product;
* as part of the provision of a managed hosting service or product;
* the offering of installation and/or configuration services;
* the offer for sale, distribution or sale of any service or product (whether or not branded as Tactical RMM).
The prior written approval of AmidaWare LLC must be obtained for all commercial use and/or for-profit service use of the (i) Licensed Software (whether in whole or in part), (ii) a modified version of the Licensed Software and/or (iii) a derivative work.
The terms of this license apply to all copies of the Licensed Software (including modified versions) and derivative works.
All use of the Licensed Software must immediately cease if use breaches the terms of this license.
### 3. Derivative Works
If a derivative work is created which is based on or otherwise incorporates all or any part of the Licensed Software, and the derivative work is made available to any other person, the complete corresponding machine readable source code (including all changes made to the Licensed Software) must accompany the derivative work and be made publicly available online.
### 4. Copyright Notice
The following copyright notice shall be included in all copies of the Licensed Software:
&emsp;&emsp;&emsp;Copyright © 2022 AmidaWare LLC.
&emsp;&emsp;&emsp;Licensed under the Tactical RMM License Version 1.0 (the “License”).<br>
&emsp;&emsp;&emsp;You may only use the Licensed Software in accordance with the License.<br>
&emsp;&emsp;&emsp;A copy of the License is available at: https://license.tacticalrmm.com
### 5. Disclaimer of Warranty
THE LICENSED SOFTWARE IS PROVIDED "AS IS". TO THE FULLEST EXTENT PERMISSIBLE AT LAW ALL CONDITIONS, WARRANTIES OR OTHER TERMS OF ANY KIND WHICH MIGHT HAVE EFFECT OR BE IMPLIED OR INCORPORATED, WHETHER BY STATUTE, COMMON LAW OR OTHERWISE ARE HEREBY EXCLUDED, INCLUDING THE CONDITIONS, WARRANTIES OR OTHER TERMS AS TO SATISFACTORY QUALITY AND/OR MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, THE USE OF REASONABLE SKILL AND CARE AND NON-INFRINGEMENT.
### 6. Limits of Liability
THE FOLLOWING EXCLUSIONS SHALL APPLY TO THE FULLEST EXTENT PERMISSIBLE AT LAW. NEITHER THE AUTHORS NOR THE COPYRIGHT HOLDERS SHALL IN ANY CIRCUMSTANCES HAVE ANY LIABILITY FOR ANY CLAIM, LOSSES, DAMAGES OR OTHER LIABILITY, WHETHER THE SAME ARE SUFFERED DIRECTLY OR INDIRECTLY OR ARE IMMEDIATE OR CONSEQUENTIAL, AND WHETHER THE SAME ARISE IN CONTRACT, TORT OR DELICT (INCLUDING NEGLIGENCE) OR OTHERWISE HOWSOEVER ARISING FROM, OUT OF OR IN CONNECTION WITH THE LICENSED SOFTWARE OR THE USE OR INABILITY TO USE THE LICENSED SOFTWARE OR OTHER DEALINGS IN THE LICENSED SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. THE FOREGOING EXCLUSIONS SHALL INCLUDE, WITHOUT LIMITATION, LIABILITY FOR ANY LOSSES OR DAMAGES WHICH FALL WITHIN ANY OF THE FOLLOWING CATEGORIES: SPECIAL, EXEMPLARY, OR INCIDENTAL LOSS OR DAMAGE, LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF BUSINESS OPPORTUNITY, LOSS OF GOODWILL, AND LOSS OR CORRUPTION OF DATA.
### 7. Termination
This license shall terminate with immediate effect if there is a material breach of any of its terms.
### 8. No partnership, agency or joint venture
Nothing in this license agreement is intended to, or shall be deemed to, establish any partnership or joint venture or any relationship of agency between AmidaWare LLC and any other person.
### 9. No endorsement
The names of the authors and/or the copyright holders must not be used to promote or endorse any products or services which are in any way derived from the Licensed Software without prior written consent.
### 10. Trademarks
No permission is granted to use the trademark “Tactical RMM” or any other trade name, trademark, service mark or product name of AmidaWare LLC except to the extent necessary to comply with the notice requirements in Section 4 (Copyright Notice).
### 11. Entire agreement
This license contains the whole agreement relating to its subject matter.
### 12. Severance
If any provision or part-provision of this license is or becomes invalid, illegal or unenforceable, it shall be deemed deleted, but that shall not affect the validity and enforceability of the rest of this license.
### 13. Acceptance of these terms
The terms and conditions of this license are accepted by copying, downloading, installing, redistributing, or otherwise using the Licensed Software.

View File

@@ -1,40 +1,53 @@
# Tactical RMM
[![Build Status](https://dev.azure.com/dcparsi/Tactical%20RMM/_apis/build/status/wh1te909.tacticalrmm?branchName=develop)](https://dev.azure.com/dcparsi/Tactical%20RMM/_build/latest?definitionId=4&branchName=develop)
[![Coverage Status](https://coveralls.io/repos/github/wh1te909/tacticalrmm/badge.png?branch=develop&kill_cache=1)](https://coveralls.io/github/wh1te909/tacticalrmm?branch=develop)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
![CI Tests](https://github.com/amidaware/tacticalrmm/actions/workflows/ci-tests.yml/badge.svg?branch=develop)
[![codecov](https://codecov.io/gh/amidaware/tacticalrmm/branch/develop/graph/badge.svg?token=8ACUPVPTH6)](https://codecov.io/gh/amidaware/tacticalrmm)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
Tactical RMM is a remote monitoring & management tool for Windows computers, built with Django and Vue.\
It uses an [agent](https://github.com/wh1te909/rmmagent) written in golang and integrates with [MeshCentral](https://github.com/Ylianst/MeshCentral)
Tactical RMM is a remote monitoring & management tool, built with Django and Vue.\
It uses an [agent](https://github.com/amidaware/rmmagent) written in golang and integrates with [MeshCentral](https://github.com/Ylianst/MeshCentral)
# [LIVE DEMO](https://rmm.xlawgaming.com/)
Demo database resets every hour. Alot of features are disabled for obvious reasons due to the nature of this app.
# [LIVE DEMO](https://demo.tacticalrmm.com/)
*Tactical RMM is currently in alpha and subject to breaking changes. Use in production at your own risk.*
Demo database resets every hour. A lot of features are disabled for obvious reasons due to the nature of this app.
### [Discord Chat](https://discord.gg/upGTkWp)
### [Documentation](https://wh1te909.github.io/tacticalrmm/)
### [Documentation](https://docs.tacticalrmm.com)
## Features
- Teamviewer-like remote desktop control
- Real-time remote shell
- Remote file browser (download and upload files)
- Remote command and script execution (batch, powershell and python scripts)
- Remote command and script execution (batch, powershell, python, nushell and deno scripts)
- Event log viewer
- Services management
- Windows patch management
- Automated checks with email/SMS alerting (cpu, disk, memory, services, scripts, event logs)
- Automated checks with email/SMS/Webhook alerting (cpu, disk, memory, services, scripts, event logs)
- Automated task runner (run scripts on a schedule)
- Remote software installation via chocolatey
- Software and hardware inventory
## Windows versions supported
## Windows agent versions supported
- Windows 7, 8.1, 10, Server 2008R2, 2012R2, 2016, 2019
- Windows 7, 8.1, 10, 11, Server 2008R2, 2012R2, 2016, 2019, 2022
## Linux agent versions supported
- Any distro with systemd which includes but is not limited to: Debian (10, 11), Ubuntu x86_64 (18.04, 20.04, 22.04), Synology 7, centos, freepbx and more!
## Mac agent versions supported
- 64 bit Intel and Apple Silicon (M-Series)
## Sponsorship Features
- Mac and Linux Agents
- Windows [Code Signed](https://docs.tacticalrmm.com/code_signing/) Agents
- Fully Customizable [Reporting](https://docs.tacticalrmm.com/ee/reporting/reporting_overview/) Module
- [Single Sign-On](https://docs.tacticalrmm.com/ee/sso/sso/) (SSO)
## Installation / Backup / Restore / Usage
### Refer to the [documentation](https://wh1te909.github.io/tacticalrmm/)
### Refer to the [documentation](https://docs.tacticalrmm.com)

9
SECURITY.md Normal file
View File

@@ -0,0 +1,9 @@
# Security Policy
## Supported Versions
[Latest](https://github.com/amidaware/tacticalrmm/releases/latest) release
## Reporting a Vulnerability
https://docs.tacticalrmm.com/security

3
ansible/README.md Normal file
View File

@@ -0,0 +1,3 @@
### tacticalrmm ansible WIP
ansible role to setup a Debian 11 VM for tacticalrmm local development

View File

@@ -0,0 +1,40 @@
---
user: "tactical"
python_ver: "3.11.8"
go_ver: "1.20.7"
backend_repo: "https://github.com/amidaware/tacticalrmm.git"
frontend_repo: "https://github.com/amidaware/tacticalrmm-web.git"
scripts_repo: "https://github.com/amidaware/community-scripts.git"
backend_dir: "/opt/trmm"
frontend_dir: "/opt/trmm-web"
scripts_dir: "/opt/trmm-community-scripts"
trmm_dir: "{{ backend_dir }}/api/tacticalrmm/tacticalrmm"
mesh_dir: "/opt/meshcentral"
settings_file: "{{ trmm_dir }}/settings.py"
local_settings_file: "{{ trmm_dir }}/local_settings.py"
fullchain_dest: /etc/ssl/certs/fullchain.pem
privkey_dest: /etc/ssl/certs/privkey.pem
base_pkgs:
- build-essential
- curl
- wget
- dirmngr
- gnupg
- openssl
- gcc
- g++
- make
- ca-certificates
- git
python_pkgs:
- zlib1g-dev
- libncurses5-dev
- libgdbm-dev
- libnss3-dev
- libssl-dev
- libreadline-dev
- libffi-dev
- libsqlite3-dev
- libbz2-dev

View File

@@ -0,0 +1,31 @@
worker_rlimit_nofile 1000000;
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 4096;
}
http {
sendfile on;
server_tokens off;
tcp_nopush on;
types_hash_max_size 2048;
server_names_hash_bucket_size 256;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_ecdh_curve secp384r1;
ssl_stapling on;
ssl_stapling_verify on;
add_header X-Content-Type-Options nosniff;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

View File

@@ -0,0 +1,20 @@
" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.
" Load the defaults
source $VIMRUNTIME/defaults.vim
" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1
" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish
" Set the mouse mode to 'r'
if has('mouse')
set mouse=r
endif

View File

@@ -0,0 +1,634 @@
---
- name: Append subdomains to hosts
tags: hosts
become: yes
ansible.builtin.lineinfile:
path: /etc/hosts
backrefs: yes
regexp: '^(127\.0\.1\.1 .*)$'
line: "\\1 {{ api }} {{ mesh }} {{ rmm }}"
- name: set mouse mode for vim
tags: vim
become: yes
ansible.builtin.copy:
src: vimrc.local
dest: /etc/vim/vimrc.local
owner: "root"
group: "root"
mode: "0644"
- name: set max_user_watches
tags: sysctl
become: yes
ansible.builtin.lineinfile:
path: /etc/sysctl.conf
line: fs.inotify.max_user_watches=524288
- name: reload sysctl
tags: sysctl
become: yes
ansible.builtin.command:
cmd: sysctl -p
- name: install base packages
tags: base
become: yes
ansible.builtin.apt:
pkg: "{{ item }}"
state: present
update_cache: yes
with_items:
- "{{ base_pkgs }}"
- name: set arch fact
ansible.builtin.set_fact:
goarch: "{{ 'amd64' if ansible_architecture == 'x86_64' else 'arm64' }}"
- name: download and install golang
tags: golang
become: yes
ansible.builtin.unarchive:
src: "https://go.dev/dl/go{{ go_ver }}.linux-{{ goarch }}.tar.gz"
dest: /usr/local
remote_src: yes
- name: add golang to path
become: yes
tags: golang
ansible.builtin.copy:
dest: /etc/profile.d/golang.sh
content: "PATH=$PATH:/usr/local/go/bin"
- name: install python prereqs
tags: python
become: yes
ansible.builtin.apt:
pkg: "{{ item }}"
state: present
with_items:
- "{{ python_pkgs }}"
- name: get cpu core count
tags: python
ansible.builtin.command: nproc
register: numprocs
- name: Create python tmpdir
tags: python
ansible.builtin.tempfile:
state: directory
suffix: python
register: python_tmp
- name: download and extract python
tags: python
ansible.builtin.unarchive:
src: "https://www.python.org/ftp/python/{{ python_ver }}/Python-{{ python_ver }}.tgz"
dest: "{{ python_tmp.path }}"
remote_src: yes
- name: compile python
tags: python
ansible.builtin.shell:
chdir: "{{ python_tmp.path }}/Python-{{ python_ver }}"
cmd: |
./configure --enable-optimizations
make -j {{ numprocs.stdout }}
- name: alt install python
tags: python
become: yes
ansible.builtin.shell:
chdir: "{{ python_tmp.path }}/Python-{{ python_ver }}"
cmd: |
make altinstall
- name: install redis
tags: redis
become: yes
ansible.builtin.apt:
pkg: redis
state: present
- name: create postgres repo
tags: postgres
become: yes
ansible.builtin.copy:
content: "deb http://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main"
dest: /etc/apt/sources.list.d/pgdg.list
owner: root
group: root
mode: "0644"
- name: import postgres repo signing key
tags: postgres
become: yes
ansible.builtin.apt_key:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
state: present
- name: install postgresql
tags: postgres
become: yes
ansible.builtin.apt:
pkg: postgresql-15
state: present
update_cache: yes
- name: ensure postgres enabled and started
tags: postgres
become: yes
ansible.builtin.service:
name: postgresql
enabled: yes
state: started
- name: setup trmm database
tags: postgres
become: yes
become_user: postgres
ansible.builtin.shell:
cmd: |
psql -c "CREATE DATABASE tacticalrmm"
psql -c "CREATE USER {{ db_user }} WITH PASSWORD '{{ db_passwd }}'"
psql -c "ALTER ROLE {{ db_user }} SET client_encoding TO 'utf8'"
psql -c "ALTER ROLE {{ db_user }} SET default_transaction_isolation TO 'read committed'"
psql -c "ALTER ROLE {{ db_user }} SET timezone TO 'UTC'"
psql -c "ALTER ROLE {{ db_user }} CREATEDB"
psql -c "GRANT ALL PRIVILEGES ON DATABASE tacticalrmm TO {{ db_user }}"
psql -c "ALTER DATABASE tacticalrmm OWNER TO {{ db_user }}"
psql -c "GRANT USAGE, CREATE ON SCHEMA PUBLIC TO {{ db_user }}"
- name: setup mesh database
tags: postgres
become: yes
become_user: postgres
ansible.builtin.shell:
cmd: |
psql -c "CREATE DATABASE meshcentral"
psql -c "CREATE USER {{ mesh_db_user }} WITH PASSWORD '{{ mesh_db_passwd }}'"
psql -c "ALTER ROLE {{ mesh_db_user }} SET client_encoding TO 'utf8'"
psql -c "ALTER ROLE {{ mesh_db_user }} SET default_transaction_isolation TO 'read committed'"
psql -c "ALTER ROLE {{ mesh_db_user }} SET timezone TO 'UTC'"
psql -c "GRANT ALL PRIVILEGES ON DATABASE meshcentral TO {{ mesh_db_user }}"
psql -c "ALTER DATABASE meshcentral OWNER TO {{ mesh_db_user }}"
psql -c "GRANT USAGE, CREATE ON SCHEMA PUBLIC TO {{ mesh_db_user }}"
- name: create repo dirs
become: yes
tags: git
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{ user }}"
group: "{{ user }}"
mode: "0755"
with_items:
- "{{ backend_dir }}"
- "{{ frontend_dir }}"
- "{{ scripts_dir }}"
- name: git clone repos
tags: git
ansible.builtin.git:
repo: "{{ item.repo }}"
dest: "{{ item.dest }}"
version: "{{ item.version }}"
with_items:
- {
repo: "{{ backend_repo }}",
dest: "{{ backend_dir }}",
version: develop,
}
- {
repo: "{{ frontend_repo }}",
dest: "{{ frontend_dir }}",
version: develop,
}
- { repo: "{{ scripts_repo }}", dest: "{{ scripts_dir }}", version: main }
- name: get nats_server_ver
tags: nats
ansible.builtin.shell: grep "^NATS_SERVER_VER" {{ settings_file }} | awk -F'[= "]' '{print $5}'
register: nats_server_ver
- name: Create nats tmpdir
tags: nats
ansible.builtin.tempfile:
state: directory
suffix: nats
register: nats_tmp
- name: download and extract nats
tags: nats
ansible.builtin.unarchive:
src: "https://github.com/nats-io/nats-server/releases/download/v{{ nats_server_ver.stdout }}/nats-server-v{{ nats_server_ver.stdout }}-linux-{{ goarch }}.tar.gz"
dest: "{{ nats_tmp.path }}"
remote_src: yes
- name: install nats
tags: nats
become: yes
ansible.builtin.copy:
remote_src: yes
src: "{{ nats_tmp.path }}/nats-server-v{{ nats_server_ver.stdout }}-linux-{{ goarch }}/nats-server"
dest: /usr/local/bin/nats-server
owner: "{{ user }}"
group: "{{ user }}"
mode: "0755"
- name: Create nodejs tmpdir
tags: nodejs
ansible.builtin.tempfile:
state: directory
suffix: nodejs
register: nodejs_tmp
- name: download nodejs setup
tags: nodejs
ansible.builtin.get_url:
url: https://deb.nodesource.com/setup_18.x
dest: "{{ nodejs_tmp.path }}/setup_node.sh"
mode: "0755"
- name: run node setup script
tags: nodejs
become: yes
ansible.builtin.command:
cmd: "{{ nodejs_tmp.path }}/setup_node.sh"
- name: install nodejs
tags: nodejs
become: yes
ansible.builtin.apt:
pkg: nodejs
state: present
update_cache: yes
- name: update npm
tags: nodejs
become: yes
ansible.builtin.shell:
cmd: npm install -g npm
- name: install quasar cli
tags: quasar
become: yes
ansible.builtin.shell:
cmd: npm install -g @quasar/cli
- name: install frontend
tags: quasar
ansible.builtin.shell:
chdir: "{{ frontend_dir }}"
cmd: npm install
- name: add quasar env
tags: quasar
ansible.builtin.template:
src: quasar.env.j2
dest: "{{ frontend_dir }}/.env"
owner: "{{ user }}"
group: "{{ user }}"
mode: "0644"
- name: remove tempdirs
tags: cleanup
become: yes
ignore_errors: yes
ansible.builtin.file:
path: "{{ item }}"
state: absent
with_items:
- "{{ nats_tmp.path }}"
- "{{ python_tmp.path }}"
- "{{ nodejs_tmp.path }}"
- name: deploy fullchain
tags: certs
become: yes
ansible.builtin.copy:
src: "{{ fullchain_src }}"
dest: "{{ fullchain_dest }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: "0440"
- name: deploy privkey
tags: certs
become: yes
ansible.builtin.copy:
src: "{{ privkey_src }}"
dest: "{{ privkey_dest }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: "0440"
- name: import nginx signing key
tags: nginx
become: yes
ansible.builtin.apt_key:
url: https://nginx.org/keys/nginx_signing.key
state: present
- name: add nginx repo
tags: nginx
become: yes
ansible.builtin.template:
src: nginx.repo.j2
dest: /etc/apt/sources.list.d/nginx.list
owner: "root"
group: "root"
mode: "0644"
- name: install nginx
tags: nginx
become: yes
ansible.builtin.apt:
pkg: nginx
state: present
update_cache: yes
- name: set nginx default conf
tags: nginx
become: yes
ansible.builtin.copy:
src: nginx-default.conf
dest: /etc/nginx/nginx.conf
owner: "root"
group: "root"
mode: "0644"
- name: create nginx dirs
become: yes
tags: nginx
ansible.builtin.file:
state: directory
path: "{{ item }}"
mode: "0755"
with_items:
- /etc/nginx/sites-available
- /etc/nginx/sites-enabled
- name: deploy nginx sites
become: yes
tags: nginx
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "0644"
owner: root
group: root
with_items:
- { src: backend.nginx.j2, dest: /etc/nginx/sites-available/backend.conf }
- { src: mesh.nginx.j2, dest: /etc/nginx/sites-available/mesh.conf }
- name: enable nginx sites
become: yes
tags: nginx
ansible.builtin.file:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "0644"
owner: root
group: root
state: link
with_items:
- {
src: /etc/nginx/sites-available/backend.conf,
dest: /etc/nginx/sites-enabled/backend.conf,
}
- {
src: /etc/nginx/sites-available/mesh.conf,
dest: /etc/nginx/sites-enabled/mesh.conf,
}
- name: ensure nginx enabled and restarted
tags: nginx
become: yes
ansible.builtin.service:
name: nginx
enabled: yes
state: restarted
- name: set natsapi fact
ansible.builtin.set_fact:
natsapi: "{{ 'nats-api' if ansible_architecture == 'x86_64' else 'nats-api-arm64' }}"
- name: copy nats-api bin
tags: nats-api
become: yes
ansible.builtin.copy:
remote_src: yes
src: "{{ backend_dir }}/natsapi/bin/{{ natsapi }}"
dest: /usr/local/bin/nats-api
owner: "{{ user }}"
group: "{{ user }}"
mode: "0755"
- name: get setuptools_ver
tags: pip
ansible.builtin.shell: grep "^SETUPTOOLS_VER" {{ settings_file }} | awk -F'[= "]' '{print $5}'
register: setuptools_ver
- name: get wheel_ver
tags: pip
ansible.builtin.shell: grep "^WHEEL_VER" {{ settings_file }} | awk -F'[= "]' '{print $5}'
register: wheel_ver
- name: setup virtual env
tags: pip
ansible.builtin.shell:
chdir: "{{ backend_dir }}/api"
cmd: python3.11 -m venv env
- name: update pip to latest
tags: pip
ansible.builtin.pip:
virtualenv: "{{ backend_dir }}/api/env"
name: pip
state: latest
- name: install setuptools and wheel
tags: pip
ansible.builtin.pip:
virtualenv: "{{ backend_dir }}/api/env"
name: "{{ item }}"
with_items:
- "setuptools=={{ setuptools_ver.stdout }}"
- "wheel=={{ wheel_ver.stdout }}"
- name: install python packages
tags: pip
ansible.builtin.pip:
virtualenv: "{{ backend_dir }}/api/env"
chdir: "{{ backend_dir }}/api/tacticalrmm"
requirements: "{{ item }}"
with_items:
- requirements.txt
- requirements-dev.txt
- requirements-test.txt
- name: deploy django local settings
tags: django
ansible.builtin.template:
src: local_settings.j2
dest: "{{ local_settings_file }}"
mode: "0644"
owner: "{{ user }}"
group: "{{ user }}"
- name: setup django
tags: django
ansible.builtin.shell:
chdir: "{{ backend_dir }}/api/tacticalrmm"
cmd: |
. ../env/bin/activate
python manage.py migrate --no-input
python manage.py collectstatic --no-input
python manage.py create_natsapi_conf
python manage.py load_chocos
python manage.py load_community_scripts
echo "from accounts.models import User; User.objects.create_superuser('{{ django_user }}', '{{ github_email }}', '{{ django_password }}') if not User.objects.filter(username='{{ django_user }}').exists() else 0;" | python manage.py shell
python manage.py create_installer_user
- name: deploy services
tags: services
become: yes
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "0644"
owner: "root"
group: "root"
with_items:
- { src: nats-api.systemd.j2, dest: /etc/systemd/system/nats-api.service }
- { src: nats-server.systemd.j2, dest: /etc/systemd/system/nats.service }
- { src: mesh.systemd.j2, dest: /etc/systemd/system/meshcentral.service }
- name: get mesh_ver
tags: mesh
ansible.builtin.shell: grep "^MESH_VER" {{ settings_file }} | awk -F'[= "]' '{print $5}'
register: mesh_ver
- name: create meshcentral data directory
tags: mesh
become: yes
ansible.builtin.file:
path: "{{ mesh_dir }}/meshcentral-data"
state: directory
owner: "{{ user }}"
group: "{{ user }}"
mode: "0755"
- name: install meshcentral
tags: mesh
ansible.builtin.command:
chdir: "{{ mesh_dir }}"
cmd: "npm install meshcentral@{{ mesh_ver.stdout }}"
- name: deploy mesh config
tags: mesh
ansible.builtin.template:
src: mesh.cfg.j2
dest: "{{ mesh_dir }}/meshcentral-data/config.json"
mode: "0644"
owner: "{{ user }}"
group: "{{ user }}"
- name: start meshcentral
tags: mesh
become: yes
ansible.builtin.systemd:
name: meshcentral.service
state: started
enabled: yes
daemon_reload: yes
- name: wait for meshcentral to be ready
tags: mesh
uri:
url: "https://{{ mesh }}"
return_content: yes
validate_certs: yes
status_code: 200
register: mesh_status
until: mesh_status.status == 200
retries: 20
delay: 3
- name: get meshcentral login token key
tags: mesh_key
ansible.builtin.command:
chdir: "{{ mesh_dir }}"
cmd: node node_modules/meshcentral --logintokenkey
register: mesh_token_key
- name: add mesh key to django settings file
tags: mesh_key
ansible.builtin.lineinfile:
path: "{{ local_settings_file }}"
line: 'MESH_TOKEN_KEY = "{{ mesh_token_key.stdout }}"'
- name: stop meshcentral service
tags: mesh_user
become: yes
ansible.builtin.service:
name: meshcentral.service
state: stopped
- name: create mesh user
tags: mesh_user
ansible.builtin.shell:
chdir: "{{ mesh_dir }}"
cmd: |
node node_modules/meshcentral --createaccount {{ mesh_user }} --pass {{ mesh_password }} --email {{ github_email }}
node node_modules/meshcentral --adminaccount {{ mesh_user }}
- name: start meshcentral service
tags: mesh_user
become: yes
ansible.builtin.service:
name: meshcentral.service
state: started
- name: wait for meshcentral to be ready
tags: mesh_user
uri:
url: "https://{{ mesh }}"
return_content: yes
validate_certs: yes
status_code: 200
register: mesh_status
until: mesh_status.status == 200
retries: 20
delay: 3
- name: create mesh device group
tags: mesh_user
ansible.builtin.shell:
chdir: "{{ mesh_dir }}"
cmd: |
node node_modules/meshcentral/meshctrl.js --url wss://{{ mesh }}:443 --loginuser {{ mesh_user }} --loginpass {{ mesh_password }} AddDeviceGroup --name TacticalRMM
- name: finish up django
tags: mesh_user
ansible.builtin.shell:
chdir: "{{ backend_dir }}/api/tacticalrmm"
cmd: |
. ../env/bin/activate
python manage.py initial_db_setup
python manage.py reload_nats
- name: restart services
tags: services
become: yes
ansible.builtin.systemd:
daemon_reload: yes
enabled: yes
state: restarted
name: "{{ item }}.service"
with_items:
- nats
- nats-api

View File

@@ -0,0 +1,20 @@
server {
listen 443 ssl reuseport;
listen [::]:443 ssl;
server_name {{ api }};
client_max_body_size 300M;
ssl_certificate {{ fullchain_dest }};
ssl_certificate_key {{ privkey_dest }};
location ~ ^/natsws {
proxy_pass http://127.0.0.1:9235;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@@ -0,0 +1,20 @@
SECRET_KEY = "{{ django_secret }}"
DEBUG = True
ALLOWED_HOSTS = ['{{ api }}']
ADMIN_URL = "admin/"
CORS_ORIGIN_ALLOW_ALL = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'tacticalrmm',
'USER': '{{ db_user }}',
'PASSWORD': '{{ db_passwd }}',
'HOST': 'localhost',
'PORT': '5432',
}
}
ADMIN_ENABLED = True
CERT_FILE = "{{ fullchain_dest }}"
KEY_FILE = "{{ privkey_dest }}"
MESH_USERNAME = "{{ mesh_user }}"
MESH_SITE = "https://{{ mesh }}"

View File

@@ -0,0 +1,37 @@
{
"settings": {
"Cert": "{{ mesh }}",
"WANonly": true,
"Minify": 1,
"Port": 4430,
"AliasPort": 443,
"RedirPort": 800,
"AllowLoginToken": true,
"AllowFraming": true,
"AgentPing": 35,
"AllowHighQualityDesktop": true,
"TlsOffload": "127.0.0.1",
"agentCoreDump": false,
"Compression": true,
"WsCompression": true,
"AgentWsCompression": true,
"MaxInvalidLogin": { "time": 5, "count": 5, "coolofftime": 30 },
"postgres": {
"user": "{{ mesh_db_user }}",
"password": "{{ mesh_db_passwd }}",
"port": "5432",
"host": "localhost"
}
},
"domains": {
"": {
"Title": "Tactical RMM Dev",
"Title2": "Tactical RMM Dev",
"NewAccounts": false,
"CertUrl": "https://{{ mesh }}:443/",
"GeoLocation": true,
"CookieIpCheck": false,
"mstsc": true
}
}
}

View File

@@ -0,0 +1,22 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
proxy_send_timeout 330s;
proxy_read_timeout 330s;
server_name {{ mesh }};
ssl_certificate {{ fullchain_dest }};
ssl_certificate_key {{ privkey_dest }};
ssl_session_cache shared:WEBSSL:10m;
location / {
proxy_pass http://127.0.0.1:4430/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@@ -0,0 +1,17 @@
[Unit]
Description=MeshCentral Server
After=network.target postgresql.service nginx.service
[Service]
Type=simple
LimitNOFILE=1000000
ExecStart=/usr/bin/node node_modules/meshcentral
Environment=NODE_ENV=production
WorkingDirectory={{ mesh_dir }}
User={{ user }}
Group={{ user }}
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,14 @@
[Unit]
Description=TacticalRMM Nats Api
After=nats.service
[Service]
Type=simple
ExecStart=/usr/local/bin/nats-api -config {{ backend_dir }}/api/tacticalrmm/nats-api.conf
User={{ user }}
Group={{ user }}
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,18 @@
[Unit]
Description=NATS Server
After=network.target
[Service]
PrivateTmp=true
Type=simple
ExecStart=/usr/local/bin/nats-server -c {{ backend_dir }}/api/tacticalrmm/nats-rmm.conf
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s SIGINT $MAINPID
User={{ user }}
Group={{ user }}
Restart=always
RestartSec=5s
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
deb https://nginx.org/packages/debian/ {{ ansible_distribution_release }} nginx
deb-src https://nginx.org/packages/debian/ {{ ansible_distribution_release }} nginx

View File

@@ -0,0 +1,4 @@
DEV_URL = "http://{{ api }}:8000"
DEV_HOST = "0.0.0.0"
DEV_PORT = "8080"
USE_HTTPS = false

View File

@@ -0,0 +1,22 @@
---
- hosts: "{{ target }}"
vars:
ansible_user: tactical
fullchain_src: /path/to/fullchain.pem
privkey_src: /path/to/privkey.pem
api: "api.example.com"
rmm: "rmm.example.com"
mesh: "mesh.example.com"
github_username: "changeme"
github_email: "changeme@example.com"
mesh_user: "changeme"
mesh_password: "changeme"
db_user: "changeme"
db_passwd: "changeme"
mesh_db_user: "changeme"
mesh_db_passwd: "changeme"
django_secret: "changeme"
django_user: "changeme"
django_password: "changeme"
roles:
- trmm_dev

View File

@@ -1,24 +1,15 @@
[run]
source = .
[report]
show_missing = True
include = *.py
omit =
tacticalrmm/asgi.py
tacticalrmm/wsgi.py
manage.py
*/__pycache__/*
*/env/*
*/management/*
*/migrations/*
*/static/*
manage.py
*/local_settings.py
*/apps.py
*/admin.py
*/celery.py
*/wsgi.py
*/settings.py
*/baker_recipes.py
*/urls.py
*/tests.py
*/test.py
checks/utils.py
/usr/local/lib/*
**/migrations/*
**/test*.py
[report]
show_missing = True

12
api/tacticalrmm/.flake8 Normal file
View File

@@ -0,0 +1,12 @@
[flake8]
ignore = E501,W503,E722,E203
exclude =
.mypy*
.pytest*
.git
demo_data.py
manage.py
*/__pycache__/*
*/env/*
/usr/local/lib/*
**/migrations/*

View File

@@ -1,7 +1,8 @@
from django.contrib import admin
from rest_framework.authtoken.admin import TokenAdmin
from .models import User
from .models import Role, User
admin.site.register(User)
TokenAdmin.raw_id_fields = ("user",)
admin.site.register(Role)

View File

@@ -0,0 +1,24 @@
import uuid
from django.core.management.base import BaseCommand
from accounts.models import User
from tacticalrmm.helpers import make_random_password
class Command(BaseCommand):
help = "Creates the installer user"
def handle(self, *args, **kwargs): # type: ignore
self.stdout.write("Checking if installer user has been created...")
if User.objects.filter(is_installer_user=True).exists():
self.stdout.write("Installer user already exists")
return
User.objects.create_user(
username=uuid.uuid4().hex,
is_installer_user=True,
password=make_random_password(len=60),
block_dashboard_login=True,
)
self.stdout.write("Installer user has been created")

View File

@@ -6,7 +6,7 @@ from knox.models import AuthToken
class Command(BaseCommand):
help = "Deletes all knox web tokens"
def handle(self, *args, **kwargs):
def handle(self, *args, **kwargs): # type: ignore
# only delete web tokens, not any generated by the installer or deployments
dont_delete = djangotime.now() + djangotime.timedelta(hours=23)
tokens = AuthToken.objects.exclude(deploytokens__isnull=False).filter(

View File

@@ -1,10 +1,11 @@
import os
import subprocess
import pyotp
from django.conf import settings
from django.core.management.base import BaseCommand
from accounts.models import User
from tacticalrmm.util_settings import get_webdomain
class Command(BaseCommand):
@@ -21,28 +22,13 @@ class Command(BaseCommand):
self.stdout.write(self.style.ERROR(f"User {username} doesn't exist"))
return
domain = "Tactical RMM"
nginx = "/etc/nginx/sites-available/frontend.conf"
found = None
if os.path.exists(nginx):
try:
with open(nginx, "r") as f:
for line in f:
if "server_name" in line:
found = line
break
if found:
rep = found.replace("server_name", "").replace(";", "")
domain = "".join(rep.split())
except:
pass
code = pyotp.random_base32()
user.totp_key = code
user.save(update_fields=["totp_key"])
url = pyotp.totp.TOTP(code).provisioning_uri(username, issuer_name=domain)
url = pyotp.totp.TOTP(code).provisioning_uri(
username, issuer_name=get_webdomain(settings.CORS_ORIGIN_WHITELIST[0])
)
subprocess.run(f'qr "{url}"', shell=True)
self.stdout.write(
self.style.WARNING("Scan the barcode above with your authenticator app")

View File

@@ -1,3 +1,5 @@
from getpass import getpass
from django.core.management.base import BaseCommand
from accounts.models import User
@@ -17,7 +19,13 @@ class Command(BaseCommand):
self.stdout.write(self.style.ERROR(f"User {username} doesn't exist"))
return
passwd = input("Enter new password: ")
user.set_password(passwd)
pass1, pass2 = "foo", "bar"
while pass1 != pass2:
pass1 = getpass()
pass2 = getpass(prompt="Confirm Password:")
if pass1 != pass2:
self.stdout.write(self.style.ERROR("Passwords don't match"))
user.set_password(pass1)
user.save()
self.stdout.write(self.style.SUCCESS(f"Password for {username} was reset!"))

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2 on 2021-04-11 01:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0013_user_client_tree_sort'),
]
operations = [
migrations.AddField(
model_name='user',
name='client_tree_splitter',
field=models.PositiveIntegerField(default=11),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2 on 2021-04-11 03:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0014_user_client_tree_splitter'),
]
operations = [
migrations.AddField(
model_name='user',
name='loading_bar_color',
field=models.CharField(default='red', max_length=255),
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.1 on 2021-05-07 15:26
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0022_urlaction'),
('accounts', '0015_user_loading_bar_color'),
]
operations = [
migrations.AddField(
model_name='user',
name='url_action',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user', to='core.urlaction'),
),
migrations.AlterField(
model_name='user',
name='agent_dblclick_action',
field=models.CharField(choices=[('editagent', 'Edit Agent'), ('takecontrol', 'Take Control'), ('remotebg', 'Remote Background'), ('urlaction', 'URL Action')], default='editagent', max_length=50),
),
]

View File

@@ -0,0 +1,173 @@
# Generated by Django 3.2.1 on 2021-05-08 17:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0016_auto_20210507_1526'),
]
operations = [
migrations.AddField(
model_name='user',
name='can_code_sign',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_do_server_maint',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_edit_agent',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_edit_core_settings',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_install_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_accounts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_alerts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_automation_policies',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_autotasks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_checks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_clients',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_deployments',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_notes',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_pendingactions',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_procs',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_scripts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_sites',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_software',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_winsvcs',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_manage_winupdates',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_reboot_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_run_autotasks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_run_bulk',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_run_checks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_run_scripts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_send_cmd',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_uninstall_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_update_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_use_mesh',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_view_auditlogs',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_view_debuglogs',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='user',
name='can_view_eventlogs',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,181 @@
# Generated by Django 3.2.1 on 2021-05-11 02:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0017_auto_20210508_1716'),
]
operations = [
migrations.CreateModel(
name='Role',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True)),
('is_superuser', models.BooleanField(default=False)),
('can_use_mesh', models.BooleanField(default=False)),
('can_uninstall_agents', models.BooleanField(default=False)),
('can_update_agents', models.BooleanField(default=False)),
('can_edit_agent', models.BooleanField(default=False)),
('can_manage_procs', models.BooleanField(default=False)),
('can_view_eventlogs', models.BooleanField(default=False)),
('can_send_cmd', models.BooleanField(default=False)),
('can_reboot_agents', models.BooleanField(default=False)),
('can_install_agents', models.BooleanField(default=False)),
('can_run_scripts', models.BooleanField(default=False)),
('can_run_bulk', models.BooleanField(default=False)),
('can_manage_notes', models.BooleanField(default=False)),
('can_edit_core_settings', models.BooleanField(default=False)),
('can_do_server_maint', models.BooleanField(default=False)),
('can_code_sign', models.BooleanField(default=False)),
('can_manage_checks', models.BooleanField(default=False)),
('can_run_checks', models.BooleanField(default=False)),
('can_manage_clients', models.BooleanField(default=False)),
('can_manage_sites', models.BooleanField(default=False)),
('can_manage_deployments', models.BooleanField(default=False)),
('can_manage_automation_policies', models.BooleanField(default=False)),
('can_manage_autotasks', models.BooleanField(default=False)),
('can_run_autotasks', models.BooleanField(default=False)),
('can_view_auditlogs', models.BooleanField(default=False)),
('can_manage_pendingactions', models.BooleanField(default=False)),
('can_view_debuglogs', models.BooleanField(default=False)),
('can_manage_scripts', models.BooleanField(default=False)),
('can_manage_alerts', models.BooleanField(default=False)),
('can_manage_winsvcs', models.BooleanField(default=False)),
('can_manage_software', models.BooleanField(default=False)),
('can_manage_winupdates', models.BooleanField(default=False)),
('can_manage_accounts', models.BooleanField(default=False)),
],
),
migrations.RemoveField(
model_name='user',
name='can_code_sign',
),
migrations.RemoveField(
model_name='user',
name='can_do_server_maint',
),
migrations.RemoveField(
model_name='user',
name='can_edit_agent',
),
migrations.RemoveField(
model_name='user',
name='can_edit_core_settings',
),
migrations.RemoveField(
model_name='user',
name='can_install_agents',
),
migrations.RemoveField(
model_name='user',
name='can_manage_accounts',
),
migrations.RemoveField(
model_name='user',
name='can_manage_alerts',
),
migrations.RemoveField(
model_name='user',
name='can_manage_automation_policies',
),
migrations.RemoveField(
model_name='user',
name='can_manage_autotasks',
),
migrations.RemoveField(
model_name='user',
name='can_manage_checks',
),
migrations.RemoveField(
model_name='user',
name='can_manage_clients',
),
migrations.RemoveField(
model_name='user',
name='can_manage_deployments',
),
migrations.RemoveField(
model_name='user',
name='can_manage_notes',
),
migrations.RemoveField(
model_name='user',
name='can_manage_pendingactions',
),
migrations.RemoveField(
model_name='user',
name='can_manage_procs',
),
migrations.RemoveField(
model_name='user',
name='can_manage_scripts',
),
migrations.RemoveField(
model_name='user',
name='can_manage_sites',
),
migrations.RemoveField(
model_name='user',
name='can_manage_software',
),
migrations.RemoveField(
model_name='user',
name='can_manage_winsvcs',
),
migrations.RemoveField(
model_name='user',
name='can_manage_winupdates',
),
migrations.RemoveField(
model_name='user',
name='can_reboot_agents',
),
migrations.RemoveField(
model_name='user',
name='can_run_autotasks',
),
migrations.RemoveField(
model_name='user',
name='can_run_bulk',
),
migrations.RemoveField(
model_name='user',
name='can_run_checks',
),
migrations.RemoveField(
model_name='user',
name='can_run_scripts',
),
migrations.RemoveField(
model_name='user',
name='can_send_cmd',
),
migrations.RemoveField(
model_name='user',
name='can_uninstall_agents',
),
migrations.RemoveField(
model_name='user',
name='can_update_agents',
),
migrations.RemoveField(
model_name='user',
name='can_use_mesh',
),
migrations.RemoveField(
model_name='user',
name='can_view_auditlogs',
),
migrations.RemoveField(
model_name='user',
name='can_view_debuglogs',
),
migrations.RemoveField(
model_name='user',
name='can_view_eventlogs',
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.1 on 2021-05-11 02:33
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0018_auto_20210511_0233"),
]
operations = [
migrations.AddField(
model_name="user",
name="role",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="roles",
to="accounts.role",
),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.1 on 2021-05-11 17:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0019_user_role'),
]
operations = [
migrations.AddField(
model_name='role',
name='can_manage_roles',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.4 on 2021-06-17 04:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0020_role_can_manage_roles'),
]
operations = [
migrations.AddField(
model_name='role',
name='can_view_core_settings',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.4 on 2021-06-28 05:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0021_role_can_view_core_settings'),
]
operations = [
migrations.AddField(
model_name='user',
name='clear_search_when_switching',
field=models.BooleanField(default=True),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.4 on 2021-06-30 03:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0022_user_clear_search_when_switching'),
]
operations = [
migrations.AddField(
model_name='user',
name='is_installer_user',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.1 on 2021-07-20 20:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0023_user_is_installer_user'),
]
operations = [
migrations.AddField(
model_name='user',
name='last_login_ip',
field=models.GenericIPAddressField(blank=True, default=None, null=True),
),
]

View File

@@ -0,0 +1,33 @@
# Generated by Django 3.2.1 on 2021-07-21 04:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0024_user_last_login_ip'),
]
operations = [
migrations.AddField(
model_name='role',
name='created_by',
field=models.CharField(blank=True, max_length=100, null=True),
),
migrations.AddField(
model_name='role',
name='created_time',
field=models.DateTimeField(auto_now_add=True, null=True),
),
migrations.AddField(
model_name='role',
name='modified_by',
field=models.CharField(blank=True, max_length=100, null=True),
),
migrations.AddField(
model_name='role',
name='modified_time',
field=models.DateTimeField(auto_now=True, null=True),
),
]

View File

@@ -0,0 +1,34 @@
# Generated by Django 3.2.6 on 2021-09-01 12:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0025_auto_20210721_0424'),
]
operations = [
migrations.CreateModel(
name='APIKey',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_by', models.CharField(blank=True, max_length=100, null=True)),
('created_time', models.DateTimeField(auto_now_add=True, null=True)),
('modified_by', models.CharField(blank=True, max_length=100, null=True)),
('modified_time', models.DateTimeField(auto_now=True, null=True)),
('name', models.CharField(max_length=25, unique=True)),
('key', models.CharField(blank=True, max_length=48, unique=True)),
('expiration', models.DateTimeField(blank=True, default=None, null=True)),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='role',
name='can_manage_api_keys',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.6 on 2021-09-03 00:54
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0026_auto_20210901_1247'),
]
operations = [
migrations.AddField(
model_name='apikey',
name='user',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='api_key', to='accounts.user'),
preserve_default=False,
),
migrations.AddField(
model_name='user',
name='block_dashboard_login',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,150 @@
# Generated by Django 3.2.6 on 2021-10-10 02:49
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('clients', '0018_auto_20211010_0249'),
('accounts', '0027_auto_20210903_0054'),
]
operations = [
migrations.AddField(
model_name='role',
name='can_list_accounts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_agent_history',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_alerts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_api_keys',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_automation_policies',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_autotasks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_checks',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_clients',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_deployments',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_notes',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_pendingactions',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_roles',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_scripts',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_sites',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_list_software',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_ping_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_recover_agents',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_view_clients',
field=models.ManyToManyField(blank=True, related_name='role_clients', to='clients.Client'),
),
migrations.AddField(
model_name='role',
name='can_view_sites',
field=models.ManyToManyField(blank=True, related_name='role_sites', to='clients.Site'),
),
migrations.AlterField(
model_name='apikey',
name='created_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='apikey',
name='modified_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='role',
name='created_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='role',
name='modified_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='user',
name='created_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='user',
name='modified_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='user',
name='role',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='users', to='accounts.role'),
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 3.2.6 on 2021-10-22 22:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0028_auto_20211010_0249'),
]
operations = [
migrations.AddField(
model_name='role',
name='can_list_alerttemplates',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_manage_alerttemplates',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_run_urlactions',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 3.2.6 on 2021-11-04 02:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0029_auto_20211022_2245'),
]
operations = [
migrations.AddField(
model_name='role',
name='can_manage_customfields',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='role',
name='can_view_customfields',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2022-04-02 15:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0030_auto_20211104_0221'),
]
operations = [
migrations.AddField(
model_name='user',
name='date_format',
field=models.CharField(blank=True, max_length=30, null=True),
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 4.2.1 on 2023-05-17 07:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0031_user_date_format"),
]
operations = [
migrations.AlterField(
model_name="user",
name="default_agent_tbl_tab",
field=models.CharField(
choices=[
("server", "Servers"),
("workstation", "Workstations"),
("mixed", "Mixed"),
],
default="mixed",
max_length=50,
),
),
]

View File

@@ -0,0 +1,32 @@
# Generated by Django 4.2.1 on 2023-05-23 04:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0032_alter_user_default_agent_tbl_tab"),
]
operations = [
migrations.AddField(
model_name="user",
name="dash_info_color",
field=models.CharField(default="info", max_length=255),
),
migrations.AddField(
model_name="user",
name="dash_negative_color",
field=models.CharField(default="negative", max_length=255),
),
migrations.AddField(
model_name="user",
name="dash_positive_color",
field=models.CharField(default="positive", max_length=255),
),
migrations.AddField(
model_name="user",
name="dash_warning_color",
field=models.CharField(default="warning", max_length=255),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 4.1.9 on 2023-05-26 23:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0033_user_dash_info_color_user_dash_negative_color_and_more"),
]
operations = [
migrations.AddField(
model_name="role",
name="can_send_wol",
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,22 @@
# Generated by Django 4.2.5 on 2023-10-08 22:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0034_role_can_send_wol"),
]
operations = [
migrations.AddField(
model_name="role",
name="can_manage_reports",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="role",
name="can_view_reports",
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,16 @@
# Generated by Django 4.2.7 on 2023-11-09 19:57
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("accounts", "0035_role_can_manage_reports_role_can_view_reports"),
]
operations = [
migrations.RemoveField(
model_name="role",
name="can_ping_agents",
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 4.2.13 on 2024-06-28 20:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0036_remove_role_can_ping_agents"),
]
operations = [
migrations.AddField(
model_name="role",
name="can_run_server_scripts",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="role",
name="can_use_webterm",
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 4.2.16 on 2024-10-06 05:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0037_role_can_run_server_scripts_role_can_use_webterm"),
]
operations = [
migrations.AddField(
model_name="role",
name="can_edit_global_keystore",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="role",
name="can_view_global_keystore",
field=models.BooleanField(default=False),
),
]

View File

@@ -1,41 +1,53 @@
from typing import Optional
from allauth.socialaccount.models import SocialAccount
from django.contrib.auth.models import AbstractUser
from django.core.cache import cache
from django.db import models
from django.db.models.fields import CharField, DateTimeField
from logs.models import BaseAuditModel
AGENT_DBLCLICK_CHOICES = [
("editagent", "Edit Agent"),
("takecontrol", "Take Control"),
("remotebg", "Remote Background"),
]
AGENT_TBL_TAB_CHOICES = [
("server", "Servers"),
("workstation", "Workstations"),
("mixed", "Mixed"),
]
CLIENT_TREE_SORT_CHOICES = [
("alphafail", "Move failing clients to the top"),
("alpha", "Sort alphabetically"),
]
from tacticalrmm.constants import (
ROLE_CACHE_PREFIX,
AgentDblClick,
AgentTableTabs,
ClientTreeSort,
)
class User(AbstractUser, BaseAuditModel):
is_active = models.BooleanField(default=True)
block_dashboard_login = models.BooleanField(default=False)
totp_key = models.CharField(max_length=50, null=True, blank=True)
dark_mode = models.BooleanField(default=True)
show_community_scripts = models.BooleanField(default=True)
agent_dblclick_action = models.CharField(
max_length=50, choices=AGENT_DBLCLICK_CHOICES, default="editagent"
agent_dblclick_action: "AgentDblClick" = models.CharField(
max_length=50, choices=AgentDblClick.choices, default=AgentDblClick.EDIT_AGENT
)
url_action = models.ForeignKey(
"core.URLAction",
related_name="user",
null=True,
blank=True,
on_delete=models.SET_NULL,
)
default_agent_tbl_tab = models.CharField(
max_length=50, choices=AGENT_TBL_TAB_CHOICES, default="server"
max_length=50, choices=AgentTableTabs.choices, default=AgentTableTabs.MIXED
)
agents_per_page = models.PositiveIntegerField(default=50) # not currently used
client_tree_sort = models.CharField(
max_length=50, choices=CLIENT_TREE_SORT_CHOICES, default="alphafail"
max_length=50, choices=ClientTreeSort.choices, default=ClientTreeSort.ALPHA_FAIL
)
client_tree_splitter = models.PositiveIntegerField(default=11)
loading_bar_color = models.CharField(max_length=255, default="red")
dash_info_color = models.CharField(max_length=255, default="info")
dash_positive_color = models.CharField(max_length=255, default="positive")
dash_negative_color = models.CharField(max_length=255, default="negative")
dash_warning_color = models.CharField(max_length=255, default="warning")
clear_search_when_switching = models.BooleanField(default=True)
date_format = models.CharField(max_length=30, blank=True, null=True)
is_installer_user = models.BooleanField(default=False)
last_login_ip = models.GenericIPAddressField(default=None, blank=True, null=True)
agent = models.OneToOneField(
"agents.Agent",
@@ -45,9 +57,184 @@ class User(AbstractUser, BaseAuditModel):
on_delete=models.CASCADE,
)
role = models.ForeignKey(
"accounts.Role",
null=True,
blank=True,
related_name="users",
on_delete=models.SET_NULL,
)
@property
def mesh_user_id(self):
return f"user//{self.mesh_username}"
@property
def mesh_username(self):
# lower() needed for mesh api
return f"{self.username.replace(' ', '').lower()}___{self.pk}"
@property
def is_sso_user(self):
return SocialAccount.objects.filter(user_id=self.pk).exists()
@staticmethod
def serialize(user):
# serializes the task and returns json
from .serializers import UserSerializer
return UserSerializer(user).data
def get_and_set_role_cache(self) -> "Optional[Role]":
role = cache.get(f"{ROLE_CACHE_PREFIX}{self.role}")
if role and isinstance(role, Role):
return role
elif not role and not self.role:
return None
else:
models.prefetch_related_objects(
[self.role],
"can_view_clients",
"can_view_sites",
)
cache.set(f"{ROLE_CACHE_PREFIX}{self.role}", self.role, 600)
return self.role
class Role(BaseAuditModel):
name = models.CharField(max_length=255, unique=True)
is_superuser = models.BooleanField(default=False)
# agents
can_list_agents = models.BooleanField(default=False)
can_use_mesh = models.BooleanField(default=False)
can_uninstall_agents = models.BooleanField(default=False)
can_update_agents = models.BooleanField(default=False)
can_edit_agent = models.BooleanField(default=False)
can_manage_procs = models.BooleanField(default=False)
can_view_eventlogs = models.BooleanField(default=False)
can_send_cmd = models.BooleanField(default=False)
can_reboot_agents = models.BooleanField(default=False)
can_install_agents = models.BooleanField(default=False)
can_run_scripts = models.BooleanField(default=False)
can_run_bulk = models.BooleanField(default=False)
can_recover_agents = models.BooleanField(default=False)
can_list_agent_history = models.BooleanField(default=False)
can_send_wol = models.BooleanField(default=False)
# core
can_list_notes = models.BooleanField(default=False)
can_manage_notes = models.BooleanField(default=False)
can_view_core_settings = models.BooleanField(default=False)
can_edit_core_settings = models.BooleanField(default=False)
can_do_server_maint = models.BooleanField(default=False)
can_code_sign = models.BooleanField(default=False)
can_run_urlactions = models.BooleanField(default=False)
can_view_customfields = models.BooleanField(default=False)
can_manage_customfields = models.BooleanField(default=False)
can_run_server_scripts = models.BooleanField(default=False)
can_use_webterm = models.BooleanField(default=False)
can_view_global_keystore = models.BooleanField(default=False)
can_edit_global_keystore = models.BooleanField(default=False)
# checks
can_list_checks = models.BooleanField(default=False)
can_manage_checks = models.BooleanField(default=False)
can_run_checks = models.BooleanField(default=False)
# clients
can_list_clients = models.BooleanField(default=False)
can_manage_clients = models.BooleanField(default=False)
can_list_sites = models.BooleanField(default=False)
can_manage_sites = models.BooleanField(default=False)
can_list_deployments = models.BooleanField(default=False)
can_manage_deployments = models.BooleanField(default=False)
can_view_clients = models.ManyToManyField(
"clients.Client", related_name="role_clients", blank=True
)
can_view_sites = models.ManyToManyField(
"clients.Site", related_name="role_sites", blank=True
)
# automation
can_list_automation_policies = models.BooleanField(default=False)
can_manage_automation_policies = models.BooleanField(default=False)
# automated tasks
can_list_autotasks = models.BooleanField(default=False)
can_manage_autotasks = models.BooleanField(default=False)
can_run_autotasks = models.BooleanField(default=False)
# logs
can_view_auditlogs = models.BooleanField(default=False)
can_list_pendingactions = models.BooleanField(default=False)
can_manage_pendingactions = models.BooleanField(default=False)
can_view_debuglogs = models.BooleanField(default=False)
# scripts
can_list_scripts = models.BooleanField(default=False)
can_manage_scripts = models.BooleanField(default=False)
# alerts
can_list_alerts = models.BooleanField(default=False)
can_manage_alerts = models.BooleanField(default=False)
can_list_alerttemplates = models.BooleanField(default=False)
can_manage_alerttemplates = models.BooleanField(default=False)
# win services
can_manage_winsvcs = models.BooleanField(default=False)
# software
can_list_software = models.BooleanField(default=False)
can_manage_software = models.BooleanField(default=False)
# windows updates
can_manage_winupdates = models.BooleanField(default=False)
# accounts
can_list_accounts = models.BooleanField(default=False)
can_manage_accounts = models.BooleanField(default=False)
can_list_roles = models.BooleanField(default=False)
can_manage_roles = models.BooleanField(default=False)
# authentication
can_list_api_keys = models.BooleanField(default=False)
can_manage_api_keys = models.BooleanField(default=False)
# reporting
can_view_reports = models.BooleanField(default=False)
can_manage_reports = models.BooleanField(default=False)
def __str__(self):
return self.name
def save(self, *args, **kwargs) -> None:
# delete cache on save
cache.delete(f"{ROLE_CACHE_PREFIX}{self.name}")
super().save(*args, **kwargs)
@staticmethod
def serialize(role):
# serializes the agent and returns json
from .serializers import RoleAuditSerializer
return RoleAuditSerializer(role).data
class APIKey(BaseAuditModel):
name = CharField(unique=True, max_length=25)
key = CharField(unique=True, blank=True, max_length=48)
expiration = DateTimeField(blank=True, null=True, default=None)
user = models.ForeignKey(
"accounts.User",
related_name="api_key",
on_delete=models.CASCADE,
)
@staticmethod
def serialize(apikey):
from .serializers import APIKeyAuditSerializer
return APIKeyAuditSerializer(apikey).data

View File

@@ -0,0 +1,54 @@
from rest_framework import permissions
from tacticalrmm.permissions import _has_perm
from tacticalrmm.utils import get_core_settings
class AccountsPerms(permissions.BasePermission):
def has_permission(self, r, view) -> bool:
if r.method == "GET":
return _has_perm(r, "can_list_accounts")
# allow users to reset their own password/2fa see issue #686
base_path = "/accounts/users/"
paths = ("reset/", "reset_totp/")
if r.path in [base_path + i for i in paths]:
from accounts.models import User
try:
user = User.objects.get(pk=r.data["id"])
except User.DoesNotExist:
pass
else:
if user == r.user:
return True
return _has_perm(r, "can_manage_accounts")
class RolesPerms(permissions.BasePermission):
def has_permission(self, r, view) -> bool:
if r.method == "GET":
return _has_perm(r, "can_list_roles")
return _has_perm(r, "can_manage_roles")
class APIKeyPerms(permissions.BasePermission):
def has_permission(self, r, view) -> bool:
if r.method == "GET":
return _has_perm(r, "can_list_api_keys")
return _has_perm(r, "can_manage_api_keys")
class LocalUserPerms(permissions.BasePermission):
def has_permission(self, r, view) -> bool:
settings = get_core_settings()
return not settings.block_local_user_logon
class SelfResetSSOPerms(permissions.BasePermission):
def has_permission(self, r, view) -> bool:
return not r.user.is_sso_user

View File

@@ -1,7 +1,14 @@
import pyotp
from rest_framework.serializers import ModelSerializer, SerializerMethodField
from django.conf import settings
from rest_framework.serializers import (
ModelSerializer,
ReadOnlyField,
SerializerMethodField,
)
from .models import User
from tacticalrmm.util_settings import get_webdomain
from .models import APIKey, Role, User
class UserUISerializer(ModelSerializer):
@@ -11,15 +18,25 @@ class UserUISerializer(ModelSerializer):
"dark_mode",
"show_community_scripts",
"agent_dblclick_action",
"url_action",
"default_agent_tbl_tab",
"client_tree_sort",
"client_tree_splitter",
"loading_bar_color",
"dash_info_color",
"dash_positive_color",
"dash_negative_color",
"dash_warning_color",
"clear_search_when_switching",
"block_dashboard_login",
"date_format",
]
class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = (
fields = [
"id",
"username",
"first_name",
@@ -27,11 +44,14 @@ class UserSerializer(ModelSerializer):
"email",
"is_active",
"last_login",
)
"last_login_ip",
"role",
"block_dashboard_login",
"date_format",
]
class TOTPSetupSerializer(ModelSerializer):
qr_url = SerializerMethodField()
class Meta:
@@ -44,5 +64,42 @@ class TOTPSetupSerializer(ModelSerializer):
def get_qr_url(self, obj):
return pyotp.totp.TOTP(obj.totp_key).provisioning_uri(
obj.username, issuer_name="Tactical RMM"
obj.username, issuer_name=get_webdomain(settings.CORS_ORIGIN_WHITELIST[0])
)
class RoleSerializer(ModelSerializer):
user_count = SerializerMethodField()
class Meta:
model = Role
fields = "__all__"
def get_user_count(self, obj):
return obj.users.count()
class RoleAuditSerializer(ModelSerializer):
class Meta:
model = Role
fields = "__all__"
class APIKeySerializer(ModelSerializer):
username = ReadOnlyField(source="user.username")
class Meta:
model = APIKey
fields = "__all__"
class APIKeyAuditSerializer(ModelSerializer):
username = ReadOnlyField(source="user.username")
class Meta:
model = APIKey
fields = [
"name",
"username",
"expiration",
]

View File

@@ -1,47 +1,57 @@
from unittest.mock import patch
from django.test import override_settings
from model_bakery import baker, seq
from accounts.models import User
from accounts.models import APIKey, User
from accounts.serializers import APIKeySerializer
from tacticalrmm.constants import AgentDblClick, AgentTableTabs, ClientTreeSort
from tacticalrmm.test import TacticalTestCase
class TestAccounts(TacticalTestCase):
def setUp(self):
self.client_setup()
self.setup_coresettings()
self.setup_client()
self.bob = User(username="bob")
self.bob.set_password("hunter2")
self.bob.save()
def test_check_creds(self):
url = "/checkcreds/"
url = "/v2/checkcreds/"
data = {"username": "bob", "password": "hunter2"}
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 200)
self.assertIn("totp", r.data.keys())
self.assertEqual(r.data["totp"], "totp not set")
self.assertEqual(r.data["totp"], False)
data = {"username": "bob", "password": "a3asdsa2314"}
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 400)
self.assertEqual(r.data, "bad credentials")
self.assertEqual(r.data, "Bad credentials")
data = {"username": "billy", "password": "hunter2"}
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 400)
self.assertEqual(r.data, "bad credentials")
self.assertEqual(r.data, "Bad credentials")
self.bob.totp_key = "AB5RI6YPFTZAS52G"
self.bob.save()
data = {"username": "bob", "password": "hunter2"}
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 200)
self.assertEqual(r.data, "ok")
self.assertEqual(r.data["totp"], True)
# test user set to block dashboard logins
self.bob.block_dashboard_login = True
self.bob.save()
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 400)
@patch("pyotp.TOTP.verify")
def test_login_view(self, mock_verify):
url = "/login/"
url = "/v2/login/"
mock_verify.return_value = True
data = {"username": "bob", "password": "hunter2", "twofactor": "123456"}
@@ -53,7 +63,7 @@ class TestAccounts(TacticalTestCase):
mock_verify.return_value = False
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 400)
self.assertEqual(r.data, "bad credentials")
self.assertEqual(r.data, "Bad credentials")
mock_verify.return_value = True
data = {"username": "bob", "password": "asd234234asd", "twofactor": "123456"}
@@ -61,17 +71,17 @@ class TestAccounts(TacticalTestCase):
self.assertEqual(r.status_code, 400)
self.assertIn("non_field_errors", r.data.keys())
@override_settings(DEBUG=True)
@patch("pyotp.TOTP.verify")
def test_debug_login_view(self, mock_verify):
url = "/login/"
mock_verify.return_value = True
# @override_settings(DEBUG=True)
# @patch("pyotp.TOTP.verify")
# def test_debug_login_view(self, mock_verify):
# url = "/login/"
# mock_verify.return_value = True
data = {"username": "bob", "password": "hunter2", "twofactor": "sekret"}
r = self.client.post(url, data, format="json")
self.assertEqual(r.status_code, 200)
self.assertIn("expiry", r.data.keys())
self.assertIn("token", r.data.keys())
# data = {"username": "bob", "password": "hunter2", "twofactor": "sekret"}
# r = self.client.post(url, data, format="json")
# self.assertEqual(r.status_code, 200)
# self.assertIn("expiry", r.data.keys())
# self.assertIn("token", r.data.keys())
class TestGetAddUsers(TacticalTestCase):
@@ -188,7 +198,7 @@ class GetUpdateDeleteUser(TacticalTestCase):
r = self.client.delete(url)
self.assertEqual(r.status_code, 200)
url = f"/accounts/893452/users/"
url = "/accounts/893452/users/"
r = self.client.delete(url)
self.assertEqual(r.status_code, 404)
@@ -275,9 +285,12 @@ class TestUserAction(TacticalTestCase):
data = {
"dark_mode": True,
"show_community_scripts": True,
"agent_dblclick_action": "editagent",
"default_agent_tbl_tab": "mixed",
"client_tree_sort": "alpha",
"agent_dblclick_action": AgentDblClick.EDIT_AGENT,
"default_agent_tbl_tab": AgentTableTabs.MIXED,
"client_tree_sort": ClientTreeSort.ALPHA,
"client_tree_splitter": 14,
"loading_bar_color": "green",
"clear_search_when_switching": False,
}
r = self.client.patch(url, data, format="json")
self.assertEqual(r.status_code, 200)
@@ -285,6 +298,89 @@ class TestUserAction(TacticalTestCase):
self.check_not_authenticated("patch", url)
class TestUserReset(TacticalTestCase):
def setUp(self):
self.authenticate()
self.setup_coresettings()
def test_reset_pw(self):
url = "/accounts/resetpw/"
data = {"password": "superSekret123456"}
r = self.client.put(url, data, format="json")
self.assertEqual(r.status_code, 200)
self.check_not_authenticated("put", url)
def test_reset_2fa(self):
url = "/accounts/reset2fa/"
r = self.client.put(url)
self.assertEqual(r.status_code, 200)
self.check_not_authenticated("put", url)
class TestAPIKeyViews(TacticalTestCase):
def setUp(self):
self.setup_coresettings()
self.authenticate()
def test_get_api_keys(self):
url = "/accounts/apikeys/"
apikeys = baker.make("accounts.APIKey", key=seq("APIKEY"), _quantity=3)
serializer = APIKeySerializer(apikeys, many=True)
resp = self.client.get(url, format="json")
self.assertEqual(resp.status_code, 200)
self.assertEqual(serializer.data, resp.data)
self.check_not_authenticated("get", url)
def test_add_api_keys(self):
url = "/accounts/apikeys/"
user = baker.make("accounts.User")
data = {"name": "Name", "user": user.id, "expiration": None}
resp = self.client.post(url, data, format="json")
self.assertEqual(resp.status_code, 200)
self.assertTrue(APIKey.objects.filter(name="Name").exists())
self.assertTrue(APIKey.objects.get(name="Name").key)
self.check_not_authenticated("post", url)
def test_modify_api_key(self):
# test a call where api key doesn't exist
resp = self.client.put("/accounts/apikeys/500/", format="json")
self.assertEqual(resp.status_code, 404)
apikey = baker.make("accounts.APIKey", name="Test")
url = f"/accounts/apikeys/{apikey.pk}/"
data = {"name": "New Name"}
resp = self.client.put(url, data, format="json")
self.assertEqual(resp.status_code, 200)
apikey = APIKey.objects.get(pk=apikey.pk)
self.assertEqual(apikey.name, "New Name")
self.check_not_authenticated("put", url)
def test_delete_api_key(self):
# test a call where api key doesn't exist
resp = self.client.delete("/accounts/apikeys/500/", format="json")
self.assertEqual(resp.status_code, 404)
# test delete api key
apikey = baker.make("accounts.APIKey")
url = f"/accounts/apikeys/{apikey.pk}/"
resp = self.client.delete(url, format="json")
self.assertEqual(resp.status_code, 200)
self.assertFalse(APIKey.objects.filter(pk=apikey.pk).exists())
self.check_not_authenticated("delete", url)
class TestTOTPSetup(TacticalTestCase):
def setUp(self):
self.authenticate()
@@ -309,4 +405,30 @@ class TestTOTPSetup(TacticalTestCase):
r = self.client.post(url)
self.assertEqual(r.status_code, 200)
self.assertEqual(r.data, "totp token already set")
self.assertEqual(r.data, False)
class TestAPIAuthentication(TacticalTestCase):
def setUp(self):
# create User and associate to API Key
self.user = User.objects.create(username="api_user", is_superuser=True)
self.api_key = APIKey.objects.create(
name="Test Token", key="123456", user=self.user
)
self.setup_client()
def test_api_auth(self):
url = "/clients/"
# auth should fail if no header set
self.check_not_authenticated("get", url)
# invalid api key in header should return code 400
self.client.credentials(HTTP_X_API_KEY="000000")
r = self.client.get(url, format="json")
self.assertEqual(r.status_code, 401)
# valid api key in header should return code 200
self.client.credentials(HTTP_X_API_KEY="123456")
r = self.client.get(url, format="json")
self.assertEqual(r.status_code, 200)

View File

@@ -5,8 +5,18 @@ from . import views
urlpatterns = [
path("users/", views.GetAddUsers.as_view()),
path("<int:pk>/users/", views.GetUpdateDeleteUser.as_view()),
path("sessions/<str:pk>/", views.DeleteActiveLoginSession.as_view()),
path(
"users/<int:pk>/sessions/", views.GetDeleteActiveLoginSessionsPerUser.as_view()
),
path("users/reset/", views.UserActions.as_view()),
path("users/reset_totp/", views.UserActions.as_view()),
path("users/setup_totp/", views.TOTPSetup.as_view()),
path("users/ui/", views.UserUI.as_view()),
path("roles/", views.GetAddRoles.as_view()),
path("roles/<int:pk>/", views.GetUpdateDeleteRole.as_view()),
path("apikeys/", views.GetAddAPIKeys.as_view()),
path("apikeys/<int:pk>/", views.GetUpdateDeleteAPIKey.as_view()),
path("resetpw/", views.ResetPass.as_view()),
path("reset2fa/", views.Reset2FA.as_view()),
]

View File

@@ -0,0 +1,24 @@
from typing import TYPE_CHECKING
from django.conf import settings
if TYPE_CHECKING:
from django.http import HttpRequest
from accounts.models import User
def is_root_user(*, request: "HttpRequest", user: "User") -> bool:
root = (
hasattr(settings, "ROOT_USER")
and request.user != user
and user.username == settings.ROOT_USER
)
demo = (
getattr(settings, "DEMO", False) and request.user.username == settings.ROOT_USER
)
return root or demo
def is_superuser(user: "User") -> bool:
return user.role and getattr(user.role, "is_superuser")

View File

@@ -1,56 +1,85 @@
import datetime
import pyotp
from allauth.socialaccount.models import SocialAccount, SocialApp
from django.conf import settings
from django.contrib.auth import login
from django.db import IntegrityError
from django.shortcuts import get_object_or_404
from django.utils import timezone as djangotime
from knox.models import AuthToken
from knox.views import LoginView as KnoxLoginView
from rest_framework import status
from python_ipware import IpWare
from rest_framework.authtoken.serializers import AuthTokenSerializer
from rest_framework.permissions import AllowAny
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.response import Response
from rest_framework.serializers import (
ModelSerializer,
ReadOnlyField,
SerializerMethodField,
)
from rest_framework.views import APIView
from accounts.utils import is_root_user
from core.tasks import sync_mesh_perms_task
from logs.models import AuditLog
from tacticalrmm.utils import notify_error
from tacticalrmm.helpers import notify_error
from tacticalrmm.utils import get_core_settings
from .models import User
from .serializers import TOTPSetupSerializer, UserSerializer, UserUISerializer
from .models import APIKey, Role, User
from .permissions import (
AccountsPerms,
APIKeyPerms,
LocalUserPerms,
RolesPerms,
SelfResetSSOPerms,
)
from .serializers import (
APIKeySerializer,
RoleSerializer,
TOTPSetupSerializer,
UserSerializer,
UserUISerializer,
)
def _is_root_user(request, user) -> bool:
return (
hasattr(settings, "ROOT_USER")
and request.user != user
and user.username == settings.ROOT_USER
)
class CheckCreds(KnoxLoginView):
class CheckCredsV2(KnoxLoginView):
permission_classes = (AllowAny,)
def post(self, request, format=None):
# restrict time on tokens issued by this view to 3 min
def get_token_ttl(self):
return datetime.timedelta(seconds=180)
def post(self, request, format=None):
# check credentials
serializer = AuthTokenSerializer(data=request.data)
if not serializer.is_valid():
AuditLog.audit_user_failed_login(request.data["username"])
return Response("bad credentials", status=status.HTTP_400_BAD_REQUEST)
AuditLog.audit_user_failed_login(
request.data["username"], debug_info={"ip": request._client_ip}
)
return notify_error("Bad credentials")
user = serializer.validated_data["user"]
if user.block_dashboard_login or user.is_sso_user:
return notify_error("Bad credentials")
# block local logon if configured
core_settings = get_core_settings()
if not user.is_superuser and core_settings.block_local_user_logon:
return notify_error("Bad credentials")
# if totp token not set modify response to notify frontend
if not user.totp_key:
login(request, user)
response = super(CheckCreds, self).post(request, format=None)
response.data["totp"] = "totp not set"
response = super().post(request, format=None)
response.data["totp"] = False
return response
return Response("ok")
return Response({"totp": True})
class LoginView(KnoxLoginView):
class LoginViewV2(KnoxLoginView):
permission_classes = (AllowAny,)
def post(self, request, format=None):
@@ -60,28 +89,157 @@ class LoginView(KnoxLoginView):
serializer.is_valid(raise_exception=True)
user = serializer.validated_data["user"]
if user.block_dashboard_login:
return notify_error("Bad credentials")
# block local logon if configured
core_settings = get_core_settings()
if not user.is_superuser and core_settings.block_local_user_logon:
return notify_error("Bad credentials")
if user.is_sso_user:
return notify_error("Bad credentials")
token = request.data["twofactor"]
totp = pyotp.TOTP(user.totp_key)
if settings.DEBUG and token == "sekret":
valid = True
elif getattr(settings, "DEMO", False):
valid = True
elif totp.verify(token, valid_window=10):
valid = True
if valid:
login(request, user)
AuditLog.audit_user_login_successful(request.data["username"])
return super(LoginView, self).post(request, format=None)
# save ip information
ipw = IpWare()
client_ip, _ = ipw.get_client_ip(request.META)
if client_ip:
user.last_login_ip = str(client_ip)
user.save()
AuditLog.audit_user_login_successful(
request.data["username"], debug_info={"ip": request._client_ip}
)
response = super().post(request, format=None)
response.data["username"] = request.user.username
response.data["name"] = None
return Response(response.data)
else:
AuditLog.audit_user_failed_twofactor(request.data["username"])
return Response("bad credentials", status=status.HTTP_400_BAD_REQUEST)
AuditLog.audit_user_failed_twofactor(
request.data["username"], debug_info={"ip": request._client_ip}
)
return notify_error("Bad credentials")
class GetDeleteActiveLoginSessionsPerUser(APIView):
permission_classes = [IsAuthenticated, AccountsPerms]
class TokenSerializer(ModelSerializer):
user = ReadOnlyField(source="user.username")
class Meta:
model = AuthToken
fields = (
"digest",
"user",
"created",
"expiry",
)
def get(self, request, pk):
tokens = get_object_or_404(User, pk=pk).auth_token_set.filter(
expiry__gt=djangotime.now()
)
return Response(self.TokenSerializer(tokens, many=True).data)
def delete(self, request, pk):
tokens = get_object_or_404(User, pk=pk).auth_token_set.filter(
expiry__gt=djangotime.now()
)
tokens.delete()
return Response("ok")
class DeleteActiveLoginSession(APIView):
permission_classes = [IsAuthenticated, AccountsPerms]
def delete(self, request, pk):
token = get_object_or_404(AuthToken, digest=pk)
token.delete()
return Response("ok")
class GetAddUsers(APIView):
def get(self, request):
users = User.objects.filter(agent=None)
permission_classes = [IsAuthenticated, AccountsPerms]
return Response(UserSerializer(users, many=True).data)
class UserSerializerSSO(ModelSerializer):
social_accounts = SerializerMethodField()
def get_social_accounts(self, obj):
accounts = SocialAccount.objects.filter(user_id=obj.pk)
if accounts:
social_accounts = []
for account in accounts:
try:
provider_account = account.get_provider_account()
display = provider_account.to_str()
except SocialApp.DoesNotExist:
display = "Orphaned Provider"
except Exception:
display = "Unknown"
social_accounts.append(
{
"uid": account.uid,
"provider": account.provider,
"display": display,
"last_login": account.last_login,
"date_joined": account.date_joined,
"extra_data": account.extra_data,
}
)
return social_accounts
return []
class Meta:
model = User
fields = [
"id",
"username",
"first_name",
"last_name",
"email",
"is_active",
"last_login",
"last_login_ip",
"role",
"block_dashboard_login",
"date_format",
"social_accounts",
]
def get(self, request):
search = request.GET.get("search", None)
if search:
users = User.objects.filter(agent=None, is_installer_user=False).filter(
username__icontains=search
)
else:
users = User.objects.filter(agent=None, is_installer_user=False)
return Response(self.UserSerializerSSO(users, many=True).data)
def post(self, request):
# add new user
@@ -96,15 +254,22 @@ class GetAddUsers(APIView):
f"ERROR: User {request.data['username']} already exists!"
)
user.first_name = request.data["first_name"]
user.last_name = request.data["last_name"]
# Can be changed once permissions and groups are introduced
user.is_superuser = True
if "first_name" in request.data.keys():
user.first_name = request.data["first_name"]
if "last_name" in request.data.keys():
user.last_name = request.data["last_name"]
if "role" in request.data.keys() and isinstance(request.data["role"], int):
role = get_object_or_404(Role, pk=request.data["role"])
user.role = role
user.save()
sync_mesh_perms_task.delay()
return Response(user.username)
class GetUpdateDeleteUser(APIView):
permission_classes = [IsAuthenticated, AccountsPerms]
def get(self, request, pk):
user = get_object_or_404(User, pk=pk)
@@ -113,31 +278,33 @@ class GetUpdateDeleteUser(APIView):
def put(self, request, pk):
user = get_object_or_404(User, pk=pk)
if _is_root_user(request, user):
if is_root_user(request=request, user=user):
return notify_error("The root user cannot be modified from the UI")
serializer = UserSerializer(instance=user, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
sync_mesh_perms_task.delay()
return Response("ok")
def delete(self, request, pk):
user = get_object_or_404(User, pk=pk)
if _is_root_user(request, user):
if is_root_user(request=request, user=user):
return notify_error("The root user cannot be deleted from the UI")
user.delete()
sync_mesh_perms_task.delay()
return Response("ok")
class UserActions(APIView):
permission_classes = [IsAuthenticated, AccountsPerms, LocalUserPerms]
# reset password
def post(self, request):
user = get_object_or_404(User, pk=request.data["id"])
if _is_root_user(request, user):
if is_root_user(request=request, user=user):
return notify_error("The root user cannot be modified from the UI")
user.set_password(request.data["password"])
@@ -148,7 +315,7 @@ class UserActions(APIView):
# reset two factor token
def put(self, request):
user = get_object_or_404(User, pk=request.data["id"])
if _is_root_user(request, user):
if is_root_user(request=request, user=user):
return notify_error("The root user cannot be modified from the UI")
user.totp_key = ""
@@ -160,10 +327,8 @@ class UserActions(APIView):
class TOTPSetup(APIView):
# totp setup
def post(self, request):
user = request.user
if not user.totp_key:
code = pyotp.random_base32()
@@ -171,7 +336,7 @@ class TOTPSetup(APIView):
user.save(update_fields=["totp_key"])
return Response(TOTPSetupSerializer(user).data)
return Response("totp token already set")
return Response(False)
class UserUI(APIView):
@@ -182,3 +347,98 @@ class UserUI(APIView):
serializer.is_valid(raise_exception=True)
serializer.save()
return Response("ok")
class GetAddRoles(APIView):
permission_classes = [IsAuthenticated, RolesPerms]
def get(self, request):
roles = Role.objects.all()
return Response(RoleSerializer(roles, many=True).data)
def post(self, request):
serializer = RoleSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response("Role was added")
class GetUpdateDeleteRole(APIView):
permission_classes = [IsAuthenticated, RolesPerms]
def get(self, request, pk):
role = get_object_or_404(Role, pk=pk)
return Response(RoleSerializer(role).data)
def put(self, request, pk):
role = get_object_or_404(Role, pk=pk)
serializer = RoleSerializer(instance=role, data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
sync_mesh_perms_task.delay()
return Response("Role was edited")
def delete(self, request, pk):
role = get_object_or_404(Role, pk=pk)
role.delete()
sync_mesh_perms_task.delay()
return Response("Role was removed")
class GetAddAPIKeys(APIView):
permission_classes = [IsAuthenticated, APIKeyPerms]
def get(self, request):
apikeys = APIKey.objects.all()
return Response(APIKeySerializer(apikeys, many=True).data)
def post(self, request):
# generate a random API Key
from django.utils.crypto import get_random_string
request.data["key"] = get_random_string(length=32).upper()
serializer = APIKeySerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response("The API Key was added")
class GetUpdateDeleteAPIKey(APIView):
permission_classes = [IsAuthenticated, APIKeyPerms]
def put(self, request, pk):
apikey = get_object_or_404(APIKey, pk=pk)
# remove API key is present in request data
if "key" in request.data.keys():
request.data.pop("key")
serializer = APIKeySerializer(instance=apikey, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response("The API Key was edited")
def delete(self, request, pk):
apikey = get_object_or_404(APIKey, pk=pk)
apikey.delete()
return Response("The API Key was deleted")
class ResetPass(APIView):
permission_classes = [IsAuthenticated, SelfResetSSOPerms]
def put(self, request):
user = request.user
user.set_password(request.data["password"])
user.save()
return Response("Password was reset.")
class Reset2FA(APIView):
permission_classes = [IsAuthenticated, SelfResetSSOPerms]
def put(self, request):
user = request.user
user.totp_key = ""
user.save()
return Response("2FA was reset. Log out and back in to setup.")

View File

@@ -1,7 +1,8 @@
from django.contrib import admin
from .models import Agent, Note, RecoveryAction
from .models import Agent, AgentCustomField, AgentHistory, Note
admin.site.register(Agent)
admin.site.register(RecoveryAction)
admin.site.register(Note)
admin.site.register(AgentCustomField)
admin.site.register(AgentHistory)

View File

@@ -1,6 +1,6 @@
import json
import os
import random
import secrets
import string
from itertools import cycle
@@ -8,10 +8,11 @@ from django.conf import settings
from django.utils import timezone as djangotime
from model_bakery.recipe import Recipe, foreign_key, seq
from tacticalrmm.constants import AgentMonType, AgentPlat
def generate_agent_id(hostname):
rand = "".join(random.choice(string.ascii_letters) for _ in range(35))
return f"{rand}-{hostname}"
def generate_agent_id() -> str:
return "".join(secrets.choice(string.ascii_letters) for i in range(39))
site = Recipe("clients.Site")
@@ -24,24 +25,34 @@ def get_wmi_data():
return json.load(f)
def get_win_svcs():
svcs = settings.BASE_DIR.joinpath("tacticalrmm/test_data/winsvcs.json")
with open(svcs) as f:
return json.load(f)
agent = Recipe(
"agents.Agent",
site=foreign_key(site),
hostname="DESKTOP-TEST123",
version="1.3.0",
monitoring_type=cycle(["workstation", "server"]),
agent_id=seq("asdkj3h4234-1234hg3h4g34-234jjh34|DESKTOP-TEST123"),
monitoring_type=cycle(AgentMonType.values),
agent_id=seq(generate_agent_id()),
last_seen=djangotime.now() - djangotime.timedelta(days=5),
plat=AgentPlat.WINDOWS,
)
server_agent = agent.extend(
monitoring_type="server",
monitoring_type=AgentMonType.SERVER,
)
workstation_agent = agent.extend(
monitoring_type="workstation",
monitoring_type=AgentMonType.WORKSTATION,
)
online_agent = agent.extend(last_seen=djangotime.now())
online_agent = agent.extend(
last_seen=djangotime.now(), services=get_win_svcs(), wmi_detail=get_wmi_data()
)
offline_agent = agent.extend(
last_seen=djangotime.now() - djangotime.timedelta(minutes=7)
@@ -76,4 +87,4 @@ agent_with_services = agent.extend(
],
)
agent_with_wmi = agent.extend(wmi=get_wmi_data())
agent_with_wmi = agent.extend(wmi_detail=get_wmi_data())

View File

@@ -0,0 +1,82 @@
from agents.models import Agent, AgentHistory
from channels.db import database_sync_to_async
from channels.generic.websocket import AsyncJsonWebsocketConsumer
from django.contrib.auth.models import AnonymousUser
from django.shortcuts import get_object_or_404
from tacticalrmm.constants import AGENT_DEFER, AgentHistoryType
from tacticalrmm.permissions import _has_perm_on_agent
class SendCMD(AsyncJsonWebsocketConsumer):
async def connect(self):
self.user = self.scope["user"]
if isinstance(self.user, AnonymousUser):
await self.close()
await self.accept()
async def receive_json(self, payload, **kwargs):
auth = await self.has_perm(payload["agent_id"])
if not auth:
await self.send_json(
{"ret": "You do not have permission to perform this action."}
)
return
agent = await self.get_agent(payload["agent_id"])
timeout = int(payload["timeout"])
if payload["shell"] == "custom" and payload["custom_shell"]:
shell = payload["custom_shell"]
else:
shell = payload["shell"]
hist_pk = await self.get_history_id(agent, payload["cmd"])
data = {
"func": "rawcmd",
"timeout": timeout,
"payload": {
"command": payload["cmd"],
"shell": shell,
},
"id": hist_pk,
}
ret = await agent.nats_cmd(data, timeout=timeout + 2)
await self.send_json({"ret": ret})
async def disconnect(self, _):
pass
def _has_perm(self, perm: str) -> bool:
if self.user.is_superuser or (
self.user.role and getattr(self.user.role, "is_superuser")
):
return True
# make sure non-superusers with empty roles aren't permitted
elif not self.user.role:
return False
return self.user.role and getattr(self.user.role, perm)
@database_sync_to_async # type: ignore
def get_agent(self, agent_id: str) -> "Agent":
return get_object_or_404(Agent.objects.defer(*AGENT_DEFER), agent_id=agent_id)
@database_sync_to_async # type: ignore
def get_history_id(self, agent: "Agent", cmd: str) -> int:
hist = AgentHistory.objects.create(
agent=agent,
type=AgentHistoryType.CMD_RUN,
command=cmd,
username=self.user.username[:50],
)
return hist.pk
@database_sync_to_async # type: ignore
def has_perm(self, agent_id: str) -> bool:
return self._has_perm("can_send_cmd") and _has_perm_on_agent(
self.user, agent_id
)

View File

@@ -0,0 +1,112 @@
import asyncio
from django.core.management.base import BaseCommand
from django.utils import timezone as djangotime
from packaging import version as pyver
from agents.models import Agent
from tacticalrmm.constants import AGENT_DEFER
from tacticalrmm.utils import reload_nats
class Command(BaseCommand):
help = "Delete multiple agents based on criteria"
def add_arguments(self, parser):
parser.add_argument(
"--days",
type=int,
help="Delete agents that have not checked in for this many days",
)
parser.add_argument(
"--agentver",
type=str,
help="Delete agents that equal to or less than this version",
)
parser.add_argument(
"--site",
type=str,
help="Delete agents that belong to the specified site",
)
parser.add_argument(
"--client",
type=str,
help="Delete agents that belong to the specified client",
)
parser.add_argument(
"--hostname",
type=str,
help="Delete agents with hostname starting with argument",
)
parser.add_argument(
"--delete",
action="store_true",
help="This will delete agents",
)
def handle(self, *args, **kwargs):
days = kwargs["days"]
agentver = kwargs["agentver"]
site = kwargs["site"]
client = kwargs["client"]
hostname = kwargs["hostname"]
delete = kwargs["delete"]
if not days and not agentver and not site and not client and not hostname:
self.stdout.write(
self.style.ERROR(
"Must have at least one parameter: days, agentver, site, client or hostname"
)
)
return
agents = Agent.objects.select_related("site__client").defer(*AGENT_DEFER)
if days:
overdue = djangotime.now() - djangotime.timedelta(days=days)
agents = agents.filter(last_seen__lt=overdue)
if site:
agents = agents.filter(site__name=site)
if client:
agents = agents.filter(site__client__name=client)
if hostname:
agents = agents.filter(hostname__istartswith=hostname)
if agentver:
agents = [
i for i in agents if pyver.parse(i.version) <= pyver.parse(agentver)
]
if len(agents) == 0:
self.stdout.write(self.style.ERROR("No agents matched"))
return
deleted_count = 0
for agent in agents:
s = f"{agent.hostname} | Version {agent.version} | Last Seen {agent.last_seen} | {agent.client} > {agent.site}"
if delete:
s = "Deleting " + s
self.stdout.write(self.style.SUCCESS(s))
asyncio.run(agent.nats_cmd({"func": "uninstall"}, wait=False))
try:
agent.delete()
except Exception as e:
err = f"Failed to delete agent {agent.hostname}: {e}"
self.stdout.write(self.style.ERROR(err))
else:
deleted_count += 1
else:
self.stdout.write(self.style.WARNING(s))
if delete:
reload_nats()
self.stdout.write(self.style.SUCCESS(f"Deleted {deleted_count} agents"))
else:
self.stdout.write(
self.style.SUCCESS(
"The above agents would be deleted. Run again with --delete to actually delete them."
)
)

View File

@@ -0,0 +1,31 @@
# import datetime as dt
import random
from django.core.management.base import BaseCommand
from django.utils import timezone as djangotime
from agents.models import Agent
from core.tasks import cache_db_fields_task
class Command(BaseCommand):
help = "stuff for demo site in cron"
def handle(self, *args, **kwargs):
random_dates = []
now = djangotime.now()
for _ in range(20):
rand = now - djangotime.timedelta(minutes=random.randint(1, 2))
random_dates.append(rand)
for _ in range(5):
rand = now - djangotime.timedelta(minutes=random.randint(10, 20))
random_dates.append(rand)
agents = Agent.objects.only("last_seen")
for agent in agents:
agent.last_seen = random.choice(random_dates)
agent.save(update_fields=["last_seen"])
cache_db_fields_task()

View File

@@ -0,0 +1,846 @@
import datetime as dt
import json
import random
import string
from django.conf import settings
from django.core.management import call_command
from django.core.management.base import BaseCommand
from django.utils import timezone as djangotime
from accounts.models import User
from agents.models import Agent, AgentHistory
from automation.models import Policy
from autotasks.models import AutomatedTask, TaskResult
from checks.models import Check, CheckHistory, CheckResult
from clients.models import Client, Site
from logs.models import AuditLog, PendingAction
from scripts.models import Script
from software.models import InstalledSoftware
from tacticalrmm.constants import (
AgentHistoryType,
AgentMonType,
AgentPlat,
AlertSeverity,
CheckStatus,
CheckType,
EvtLogFailWhen,
EvtLogNames,
EvtLogTypes,
GoArch,
PAAction,
ScriptShell,
TaskSyncStatus,
TaskType,
)
from tacticalrmm.demo_data import (
check_network_loc_aware_ps1,
check_storage_pool_health_ps1,
clear_print_spool_bat,
disks,
disks_linux_deb,
disks_linux_pi,
ping_fail_output,
ping_success_output,
restart_nla_ps1,
show_temp_dir_py,
spooler_stdout,
temp_dir_stdout,
wmi_deb,
wmi_pi,
wmi_mac,
disks_mac,
)
from winupdate.models import WinUpdate, WinUpdatePolicy
AGENTS_TO_GENERATE = 250
SVCS = settings.BASE_DIR.joinpath("tacticalrmm/test_data/winsvcs.json")
WMI_1 = settings.BASE_DIR.joinpath("tacticalrmm/test_data/wmi1.json")
WMI_2 = settings.BASE_DIR.joinpath("tacticalrmm/test_data/wmi2.json")
WMI_3 = settings.BASE_DIR.joinpath("tacticalrmm/test_data/wmi3.json")
SW_1 = settings.BASE_DIR.joinpath("tacticalrmm/test_data/software1.json")
SW_2 = settings.BASE_DIR.joinpath("tacticalrmm/test_data/software2.json")
WIN_UPDATES = settings.BASE_DIR.joinpath("tacticalrmm/test_data/winupdates.json")
EVT_LOG_FAIL = settings.BASE_DIR.joinpath(
"tacticalrmm/test_data/eventlog_check_fail.json"
)
class Command(BaseCommand):
help = "populate database with fake agents"
def rand_string(self, length: int) -> str:
chars = string.ascii_letters
return "".join(random.choice(chars) for _ in range(length))
def handle(self, *args, **kwargs) -> None:
user = User.objects.first()
if user:
user.totp_key = "ABSA234234"
user.save(update_fields=["totp_key"])
Agent.objects.all().delete()
Client.objects.all().delete()
Check.objects.all().delete()
Script.objects.all().delete()
AutomatedTask.objects.all().delete()
CheckHistory.objects.all().delete()
Policy.objects.all().delete()
AuditLog.objects.all().delete()
PendingAction.objects.all().delete()
call_command("load_community_scripts")
call_command("initial_db_setup")
call_command("load_chocos")
call_command("create_installer_user")
# policies
check_policy = Policy()
check_policy.name = "Demo Checks Policy"
check_policy.desc = "Demo Checks Policy"
check_policy.active = True
check_policy.enforced = True
check_policy.save()
patch_policy = Policy()
patch_policy.name = "Demo Patch Policy"
patch_policy.desc = "Demo Patch Policy"
patch_policy.active = True
patch_policy.enforced = True
patch_policy.save()
update_policy = WinUpdatePolicy()
update_policy.policy = patch_policy
update_policy.critical = "approve"
update_policy.important = "approve"
update_policy.moderate = "approve"
update_policy.low = "ignore"
update_policy.other = "ignore"
update_policy.run_time_days = [6, 0, 2]
update_policy.run_time_day = 1
update_policy.reboot_after_install = "required"
update_policy.reprocess_failed = True
update_policy.email_if_fail = True
update_policy.save()
clients = (
"Company 1",
"Company 2",
"Company 3",
"Company 4",
"Company 5",
"Company 6",
)
sites1 = ("HQ1", "LA Office 1", "NY Office 1")
sites2 = ("HQ2", "LA Office 2", "NY Office 2")
sites3 = ("HQ3", "LA Office 3", "NY Office 3")
sites4 = ("HQ4", "LA Office 4", "NY Office 4")
sites5 = ("HQ5", "LA Office 5", "NY Office 5")
sites6 = ("HQ6", "LA Office 6", "NY Office 6")
client1 = Client(name=clients[0])
client2 = Client(name=clients[1])
client3 = Client(name=clients[2])
client4 = Client(name=clients[3])
client5 = Client(name=clients[4])
client6 = Client(name=clients[5])
client1.save()
client2.save()
client3.save()
client4.save()
client5.save()
client6.save()
for site in sites1:
Site(client=client1, name=site).save()
for site in sites2:
Site(client=client2, name=site).save()
for site in sites3:
Site(client=client3, name=site).save()
for site in sites4:
Site(client=client4, name=site).save()
for site in sites5:
Site(client=client5, name=site).save()
for site in sites6:
Site(client=client6, name=site).save()
hostnames = (
"DC-1",
"DC-2",
"FSV-1",
"FSV-2",
"WSUS",
"DESKTOP-12345",
"LAPTOP-55443",
"db-aws-01",
"Karens-MacBook-Air.local",
)
descriptions = ("Bob's computer", "Primary DC", "File Server", "Karen's Laptop")
modes = AgentMonType.values
op_systems_servers = (
"Microsoft Windows Server 2016 Standard, 64bit (build 14393)",
"Microsoft Windows Server 2012 R2 Standard, 64bit (build 9600)",
"Microsoft Windows Server 2019 Standard, 64bit (build 17763)",
)
op_systems_workstations = (
"Microsoft Windows 8.1 Pro, 64bit (build 9600)",
"Microsoft Windows 10 Pro for Workstations, 64bit (build 18363)",
"Microsoft Windows 10 Pro, 64bit (build 18363)",
)
linux_deb_os = "Debian 11.2 x86_64 5.10.0-11-amd64"
linux_pi_os = "Raspbian 11.2 armv7l 5.10.92-v7+"
mac_os = "Darwin 12.5.1 arm64 21.6.0"
public_ips = ("65.234.22.4", "74.123.43.5", "44.21.134.45")
total_rams = (4, 8, 16, 32, 64, 128)
now = dt.datetime.now()
django_now = djangotime.now()
boot_times = []
for _ in range(15):
rand_hour = now - dt.timedelta(hours=random.randint(1, 22))
boot_times.append(str(rand_hour.timestamp()))
for _ in range(5):
rand_days = now - dt.timedelta(days=random.randint(2, 50))
boot_times.append(str(rand_days.timestamp()))
user_names = ("None", "Karen", "Steve", "jsmith", "jdoe")
with open(SVCS) as f:
services = json.load(f)
# WMI
with open(WMI_1) as f:
wmi1 = json.load(f)
with open(WMI_2) as f:
wmi2 = json.load(f)
with open(WMI_3) as f:
wmi3 = json.load(f)
wmi_details = [i for i in (wmi1, wmi2, wmi3)]
# software
with open(SW_1) as f:
software1 = json.load(f)
with open(SW_2) as f:
software2 = json.load(f)
softwares = [i for i in (software1, software2)]
# windows updates
with open(WIN_UPDATES) as f:
windows_updates = json.load(f)["samplecomputer"]
# event log check fail data
with open(EVT_LOG_FAIL) as f:
eventlog_check_fail_data = json.load(f)
# create scripts
clear_spool = Script()
clear_spool.name = "Clear Print Spooler"
clear_spool.description = "clears the print spooler. Fuck printers"
clear_spool.filename = "clear_print_spool.bat"
clear_spool.shell = ScriptShell.CMD
clear_spool.script_body = clear_print_spool_bat
clear_spool.save()
check_net_aware = Script()
check_net_aware.name = "Check Network Location Awareness"
check_net_aware.description = "Check's network location awareness on domain computers, should always be domain profile and not public or private. Sometimes happens when computer restarts before domain available. This script will return 0 if check passes or 1 if it fails."
check_net_aware.filename = "check_network_loc_aware.ps1"
check_net_aware.shell = ScriptShell.POWERSHELL
check_net_aware.script_body = check_network_loc_aware_ps1
check_net_aware.save()
check_pool_health = Script()
check_pool_health.name = "Check storage spool health"
check_pool_health.description = "loops through all storage pools and will fail if any of them are not healthy"
check_pool_health.filename = "check_storage_pool_health.ps1"
check_pool_health.shell = ScriptShell.POWERSHELL
check_pool_health.script_body = check_storage_pool_health_ps1
check_pool_health.save()
restart_nla = Script()
restart_nla.name = "Restart NLA Service"
restart_nla.description = "restarts the Network Location Awareness windows service to fix the nic profile. Run this after the check network service fails"
restart_nla.filename = "restart_nla.ps1"
restart_nla.shell = ScriptShell.POWERSHELL
restart_nla.script_body = restart_nla_ps1
restart_nla.save()
show_tmp_dir_script = Script()
show_tmp_dir_script.name = "Check temp dir"
show_tmp_dir_script.description = "shows files in temp dir using python"
show_tmp_dir_script.filename = "show_temp_dir.py"
show_tmp_dir_script.shell = ScriptShell.PYTHON
show_tmp_dir_script.script_body = show_temp_dir_py
show_tmp_dir_script.save()
for count_agents in range(AGENTS_TO_GENERATE):
client = random.choice(clients)
if client == clients[0]:
site = random.choice(sites1)
elif client == clients[1]:
site = random.choice(sites2)
elif client == clients[2]:
site = random.choice(sites3)
elif client == clients[3]:
site = random.choice(sites4)
elif client == clients[4]:
site = random.choice(sites5)
elif client == clients[5]:
site = random.choice(sites6)
agent = Agent()
plat_pick = random.randint(1, 15)
if plat_pick in (7, 11):
agent.plat = AgentPlat.LINUX
mode = AgentMonType.SERVER
# pi arm
if plat_pick == 7:
agent.goarch = GoArch.ARM32
agent.wmi_detail = wmi_pi
agent.disks = disks_linux_pi
agent.operating_system = linux_pi_os
else:
agent.goarch = GoArch.AMD64
agent.wmi_detail = wmi_deb
agent.disks = disks_linux_deb
agent.operating_system = linux_deb_os
elif plat_pick in (4, 14):
agent.plat = AgentPlat.DARWIN
mode = random.choice([AgentMonType.SERVER, AgentMonType.WORKSTATION])
agent.goarch = GoArch.ARM64
agent.wmi_detail = wmi_mac
agent.disks = disks_mac
agent.operating_system = mac_os
else:
agent.plat = AgentPlat.WINDOWS
agent.goarch = GoArch.AMD64
mode = random.choice(modes)
agent.wmi_detail = random.choice(wmi_details)
agent.services = services
agent.disks = random.choice(disks)
if mode == AgentMonType.SERVER:
agent.operating_system = random.choice(op_systems_servers)
else:
agent.operating_system = random.choice(op_systems_workstations)
agent.version = settings.LATEST_AGENT_VER
agent.hostname = random.choice(hostnames)
agent.site = Site.objects.get(name=site)
agent.agent_id = self.rand_string(40)
agent.description = random.choice(descriptions)
agent.monitoring_type = mode
agent.public_ip = random.choice(public_ips)
agent.last_seen = django_now
agent.total_ram = random.choice(total_rams)
agent.boot_time = random.choice(boot_times)
agent.logged_in_username = random.choice(user_names)
agent.mesh_node_id = (
"3UiLhe420@kaVQ0rswzBeonW$WY0xrFFUDBQlcYdXoriLXzvPmBpMrV99vRHXFlb"
)
agent.overdue_email_alert = random.choice([True, False])
agent.overdue_text_alert = random.choice([True, False])
agent.needs_reboot = random.choice([True, False])
agent.save()
if agent.plat == AgentPlat.WINDOWS:
InstalledSoftware(agent=agent, software=random.choice(softwares)).save()
if mode == AgentMonType.WORKSTATION:
WinUpdatePolicy(agent=agent, run_time_days=[5, 6]).save()
else:
WinUpdatePolicy(agent=agent).save()
if agent.plat == AgentPlat.WINDOWS:
# windows updates load
guids = [i for i in windows_updates.keys()]
for i in guids:
WinUpdate(
agent=agent,
guid=i,
kb=windows_updates[i]["KBs"][0],
title=windows_updates[i]["Title"],
installed=windows_updates[i]["Installed"],
downloaded=windows_updates[i]["Downloaded"],
description=windows_updates[i]["Description"],
severity=windows_updates[i]["Severity"],
).save()
# agent histories
hist = AgentHistory()
hist.agent = agent
hist.type = AgentHistoryType.CMD_RUN
hist.command = "ping google.com"
hist.username = "demo"
hist.results = ping_success_output
hist.save()
hist1 = AgentHistory()
hist1.agent = agent
hist1.type = AgentHistoryType.SCRIPT_RUN
hist1.script = clear_spool
hist1.script_results = {
"id": 1,
"stderr": "",
"stdout": spooler_stdout,
"execution_time": 3.5554593,
"retcode": 0,
}
hist1.save()
if agent.plat == AgentPlat.WINDOWS:
# disk space check
check1 = Check()
check1.agent = agent
check1.check_type = CheckType.DISK_SPACE
check1.warning_threshold = 25
check1.error_threshold = 10
check1.disk = "C:"
check1.email_alert = random.choice([True, False])
check1.text_alert = random.choice([True, False])
check1.save()
check_result1 = CheckResult()
check_result1.agent = agent
check_result1.assigned_check = check1
check_result1.status = CheckStatus.PASSING
check_result1.last_run = django_now
check_result1.more_info = "Total: 498.7GB, Free: 287.4GB"
check_result1.save()
for i in range(30):
check1_history = CheckHistory()
check1_history.check_id = check1.pk
check1_history.agent_id = agent.agent_id
check1_history.x = django_now - djangotime.timedelta(minutes=i * 2)
check1_history.y = random.randint(13, 40)
check1_history.save()
# ping check
check2 = Check()
check_result2 = CheckResult()
check2.agent = agent
check2.check_type = CheckType.PING
check2.email_alert = random.choice([True, False])
check2.text_alert = random.choice([True, False])
check_result2.agent = agent
check_result2.assigned_check = check2
check_result2.last_run = django_now
if site in sites5:
check2.name = "Synology NAS"
check2.alert_severity = AlertSeverity.ERROR
check_result2.status = CheckStatus.FAILING
check2.ip = "172.17.14.26"
check_result2.more_info = ping_fail_output
else:
check2.name = "Google"
check_result2.status = CheckStatus.PASSING
check2.ip = "8.8.8.8"
check_result2.more_info = ping_success_output
check2.save()
check_result2.save()
for i in range(30):
check2_history = CheckHistory()
check2_history.check_id = check2.pk
check2_history.agent_id = agent.agent_id
check2_history.x = django_now - djangotime.timedelta(minutes=i * 2)
if site in sites5:
check2_history.y = 1
check2_history.results = ping_fail_output
else:
check2_history.y = 0
check2_history.results = ping_success_output
check2_history.save()
# cpu load check
check3 = Check()
check3.agent = agent
check3.check_type = CheckType.CPU_LOAD
check3.warning_threshold = 70
check3.error_threshold = 90
check3.email_alert = random.choice([True, False])
check3.text_alert = random.choice([True, False])
check3.save()
check_result3 = CheckResult()
check_result3.agent = agent
check_result3.assigned_check = check3
check_result3.status = CheckStatus.PASSING
check_result3.last_run = django_now
check_result3.history = [
15,
23,
16,
22,
22,
27,
15,
23,
23,
20,
10,
10,
13,
34,
]
check_result3.save()
for i in range(30):
check3_history = CheckHistory()
check3_history.check_id = check3.pk
check3_history.agent_id = agent.agent_id
check3_history.x = django_now - djangotime.timedelta(minutes=i * 2)
check3_history.y = random.randint(2, 79)
check3_history.save()
# memory check
check4 = Check()
check4.agent = agent
check4.check_type = CheckType.MEMORY
check4.warning_threshold = 70
check4.error_threshold = 85
check4.email_alert = random.choice([True, False])
check4.text_alert = random.choice([True, False])
check4.save()
check_result4 = CheckResult()
check_result4.agent = agent
check_result4.assigned_check = check4
check_result4.status = CheckStatus.PASSING
check_result4.last_run = django_now
check_result4.history = [34, 34, 35, 36, 34, 34, 34, 34, 34, 34]
check_result4.save()
for i in range(30):
check4_history = CheckHistory()
check4_history.check_id = check4.pk
check4_history.agent_id = agent.agent_id
check4_history.x = django_now - djangotime.timedelta(minutes=i * 2)
check4_history.y = random.randint(2, 79)
check4_history.save()
# script check storage pool
check5 = Check()
check5.agent = agent
check5.check_type = CheckType.SCRIPT
check5.email_alert = random.choice([True, False])
check5.text_alert = random.choice([True, False])
check5.timeout = 120
check5.script = check_pool_health
check5.save()
check_result5 = CheckResult()
check_result5.agent = agent
check_result5.assigned_check = check5
check_result5.status = CheckStatus.PASSING
check_result5.last_run = django_now
check_result5.retcode = 0
check_result5.execution_time = "4.0000"
check_result5.save()
for i in range(30):
check5_history = CheckHistory()
check5_history.check_id = check5.pk
check5_history.agent_id = agent.agent_id
check5_history.x = django_now - djangotime.timedelta(minutes=i * 2)
if i == 10 or i == 18:
check5_history.y = 1
else:
check5_history.y = 0
check5_history.results = {
"retcode": 0,
"stdout": None,
"stderr": None,
"execution_time": "4.0000",
}
check5_history.save()
check6 = Check()
check6.agent = agent
check6.check_type = CheckType.SCRIPT
check6.email_alert = random.choice([True, False])
check6.text_alert = random.choice([True, False])
check6.timeout = 120
check6.script = check_net_aware
check6.save()
check_result6 = CheckResult()
check_result6.agent = agent
check_result6.assigned_check = check6
check_result6.status = CheckStatus.PASSING
check_result6.last_run = django_now
check_result6.retcode = 0
check_result6.execution_time = "4.0000"
check_result6.save()
for i in range(30):
check6_history = CheckHistory()
check6_history.check_id = check6.pk
check6_history.agent_id = agent.agent_id
check6_history.x = django_now - djangotime.timedelta(minutes=i * 2)
check6_history.y = 0
check6_history.results = {
"retcode": 0,
"stdout": None,
"stderr": None,
"execution_time": "4.0000",
}
check6_history.save()
nla_task = AutomatedTask()
nla_task.agent = agent
actions = [
{
"name": restart_nla.name,
"type": "script",
"script": restart_nla.pk,
"timeout": 90,
"script_args": [],
}
]
nla_task.actions = actions
nla_task.assigned_check = check6
nla_task.name = "Restart NLA"
nla_task.task_type = TaskType.CHECK_FAILURE
nla_task.save()
nla_task_result = TaskResult()
nla_task_result.task = nla_task
nla_task_result.agent = agent
nla_task_result.execution_time = "1.8443"
nla_task_result.last_run = django_now
nla_task_result.stdout = "no stdout"
nla_task_result.retcode = 0
nla_task_result.sync_status = TaskSyncStatus.SYNCED
nla_task_result.save()
spool_task = AutomatedTask()
spool_task.agent = agent
actions = [
{
"name": clear_spool.name,
"type": "script",
"script": clear_spool.pk,
"timeout": 90,
"script_args": [],
}
]
spool_task.actions = actions
spool_task.name = "Clear the print spooler"
spool_task.task_type = TaskType.DAILY
spool_task.run_time_date = django_now + djangotime.timedelta(minutes=10)
spool_task.expire_date = django_now + djangotime.timedelta(days=753)
spool_task.daily_interval = 1
spool_task.weekly_interval = 1
spool_task.task_repetition_duration = "2h"
spool_task.task_repetition_interval = "25m"
spool_task.random_task_delay = "3m"
spool_task.save()
spool_task_result = TaskResult()
spool_task_result.task = spool_task
spool_task_result.agent = agent
spool_task_result.last_run = django_now
spool_task_result.retcode = 0
spool_task_result.stdout = spooler_stdout
spool_task_result.sync_status = TaskSyncStatus.SYNCED
spool_task_result.save()
tmp_dir_task = AutomatedTask()
tmp_dir_task.agent = agent
tmp_dir_task.name = "show temp dir files"
actions = [
{
"name": show_tmp_dir_script.name,
"type": "script",
"script": show_tmp_dir_script.pk,
"timeout": 90,
"script_args": [],
}
]
tmp_dir_task.actions = actions
tmp_dir_task.task_type = TaskType.MANUAL
tmp_dir_task.save()
tmp_dir_task_result = TaskResult()
tmp_dir_task_result.task = tmp_dir_task
tmp_dir_task_result.agent = agent
tmp_dir_task_result.last_run = django_now
tmp_dir_task_result.stdout = temp_dir_stdout
tmp_dir_task_result.retcode = 0
tmp_dir_task_result.sync_status = TaskSyncStatus.SYNCED
tmp_dir_task_result.save()
check7 = Check()
check7.agent = agent
check7.check_type = CheckType.SCRIPT
check7.email_alert = random.choice([True, False])
check7.text_alert = random.choice([True, False])
check7.timeout = 120
check7.script = clear_spool
check7.save()
check_result7 = CheckResult()
check_result7.assigned_check = check7
check_result7.agent = agent
check_result7.status = CheckStatus.PASSING
check_result7.last_run = django_now
check_result7.retcode = 0
check_result7.execution_time = "3.1337"
check_result7.stdout = spooler_stdout
check_result7.save()
for i in range(30):
check7_history = CheckHistory()
check7_history.check_id = check7.pk
check7_history.agent_id = agent.agent_id
check7_history.x = django_now - djangotime.timedelta(minutes=i * 2)
check7_history.y = 0
check7_history.results = {
"retcode": 0,
"stdout": spooler_stdout,
"stderr": None,
"execution_time": "3.1337",
}
check7_history.save()
if agent.plat == AgentPlat.WINDOWS:
check8 = Check()
check8.agent = agent
check8.check_type = CheckType.WINSVC
check8.email_alert = random.choice([True, False])
check8.text_alert = random.choice([True, False])
check8.fails_b4_alert = 4
check8.svc_name = "Spooler"
check8.svc_display_name = "Print Spooler"
check8.pass_if_start_pending = False
check8.restart_if_stopped = True
check8.save()
check_result8 = CheckResult()
check_result8.assigned_check = check8
check_result8.agent = agent
check_result8.status = CheckStatus.PASSING
check_result8.last_run = django_now
check_result8.more_info = "Status RUNNING"
check_result8.save()
for i in range(30):
check8_history = CheckHistory()
check8_history.check_id = check8.pk
check8_history.agent_id = agent.agent_id
check8_history.x = django_now - djangotime.timedelta(minutes=i * 2)
if i == 10 or i == 18:
check8_history.y = 1
check8_history.results = "Status STOPPED"
else:
check8_history.y = 0
check8_history.results = "Status RUNNING"
check8_history.save()
check9 = Check()
check9.agent = agent
check9.check_type = CheckType.EVENT_LOG
check9.name = "unexpected shutdown"
check9.email_alert = random.choice([True, False])
check9.text_alert = random.choice([True, False])
check9.fails_b4_alert = 2
check9.log_name = EvtLogNames.APPLICATION
check9.event_id = 1001
check9.event_type = EvtLogTypes.INFO
check9.fail_when = EvtLogFailWhen.CONTAINS
check9.search_last_days = 30
check_result9 = CheckResult()
check_result9.agent = agent
check_result9.assigned_check = check9
check_result9.last_run = django_now
if site in sites5:
check_result9.extra_details = eventlog_check_fail_data
check_result9.status = CheckStatus.FAILING
else:
check_result9.extra_details = {"log": []}
check_result9.status = CheckStatus.PASSING
check9.save()
check_result9.save()
for i in range(30):
check9_history = CheckHistory()
check9_history.check_id = check9.pk
check9_history.agent_id = agent.agent_id
check9_history.x = django_now - djangotime.timedelta(minutes=i * 2)
if i == 10 or i == 18:
check9_history.y = 1
check9_history.results = "Events Found: 16"
else:
check9_history.y = 0
check9_history.results = "Events Found: 0"
check9_history.save()
pick = random.randint(1, 10)
if pick == 5 or pick == 3:
reboot_time = django_now + djangotime.timedelta(
minutes=random.randint(1000, 500000)
)
date_obj = dt.datetime.strftime(reboot_time, "%Y-%m-%d %H:%M")
obj = dt.datetime.strptime(date_obj, "%Y-%m-%d %H:%M")
task_name = "TacticalRMM_SchedReboot_" + "".join(
random.choice(string.ascii_letters) for _ in range(10)
)
sched_reboot = PendingAction()
sched_reboot.agent = agent
sched_reboot.action_type = PAAction.SCHED_REBOOT
sched_reboot.details = {
"time": str(obj),
"taskname": task_name,
}
sched_reboot.save()
self.stdout.write(self.style.SUCCESS(f"Added agent # {count_agents + 1}"))
self.stdout.write("done")

View File

@@ -0,0 +1,30 @@
from django.core.management.base import BaseCommand
from agents.models import Agent
from tacticalrmm.constants import AGENT_DEFER
class Command(BaseCommand):
help = "Find all agents that have a certain service installed"
def add_arguments(self, parser):
parser.add_argument("name", type=str)
def handle(self, *args, **kwargs):
search = kwargs["name"].lower()
agents = Agent.objects.defer(*AGENT_DEFER)
for agent in agents:
try:
for svc in agent.services:
if (
search in svc["name"].lower()
or search in svc["display_name"].lower()
):
self.stdout.write(
self.style.SUCCESS(
f"{agent.hostname} - {svc['name']} ({svc['display_name']}) - {svc['status']}"
)
)
except:
continue

View File

@@ -0,0 +1,24 @@
from django.core.management.base import BaseCommand
from agents.models import Agent
from tacticalrmm.constants import AGENT_DEFER
class Command(BaseCommand):
def find_duplicates(self, lst):
return list(set([item for item in lst if lst.count(item) > 1]))
def handle(self, *args, **kwargs):
for agent in Agent.objects.defer(*AGENT_DEFER).prefetch_related(
"custom_fields__field"
):
if dupes := self.find_duplicates(
[i.field.name for i in agent.custom_fields.all()]
):
for dupe in dupes:
cf = list(
agent.custom_fields.filter(field__name=dupe).order_by("id")
)
to_delete = cf[:-1]
for i in to_delete:
i.delete()

View File

@@ -1,16 +0,0 @@
from django.core.management.base import BaseCommand
from agents.models import Agent
class Command(BaseCommand):
help = "Changes existing agents salt_id from a property to a model field"
def handle(self, *args, **kwargs):
agents = Agent.objects.filter(salt_id=None)
for agent in agents:
self.stdout.write(
self.style.SUCCESS(f"Setting salt_id on {agent.hostname}")
)
agent.salt_id = f"{agent.hostname}-{agent.pk}"
agent.save(update_fields=["salt_id"])

View File

@@ -2,16 +2,16 @@ from django.conf import settings
from django.core.management.base import BaseCommand
from agents.models import Agent
from tacticalrmm.constants import AGENT_STATUS_ONLINE, ONLINE_AGENTS
class Command(BaseCommand):
help = "Shows online agents that are not on the latest version"
def handle(self, *args, **kwargs):
q = Agent.objects.exclude(version=settings.LATEST_AGENT_VER).only(
"pk", "version", "last_seen", "overdue_time", "offline_time"
)
agents = [i for i in q if i.status == "online"]
only = ONLINE_AGENTS + ("hostname",)
q = Agent.objects.exclude(version=settings.LATEST_AGENT_VER).only(*only)
agents = [i for i in q if i.status == AGENT_STATUS_ONLINE]
for agent in agents:
self.stdout.write(
self.style.SUCCESS(f"{agent.hostname} - v{agent.version}")

View File

@@ -0,0 +1,26 @@
from django.conf import settings
from django.core.management.base import BaseCommand
from packaging import version as pyver
from agents.models import Agent
from agents.tasks import send_agent_update_task
from core.utils import get_core_settings, token_is_valid
from tacticalrmm.constants import AGENT_DEFER
class Command(BaseCommand):
help = "Triggers an agent update task to run"
def handle(self, *args, **kwargs):
core = get_core_settings()
if not core.agent_auto_update:
return
q = Agent.objects.defer(*AGENT_DEFER).exclude(version=settings.LATEST_AGENT_VER)
agent_ids: list[str] = [
i.agent_id
for i in q
if pyver.parse(i.version) < pyver.parse(settings.LATEST_AGENT_VER)
]
token, _ = token_is_valid()
send_agent_update_task.delay(agent_ids=agent_ids, token=token, force=False)

View File

@@ -0,0 +1,24 @@
# Generated by Django 3.1.7 on 2021-03-17 14:45
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0014_customfield'),
('agents', '0031_agent_alert_template'),
]
operations = [
migrations.CreateModel(
name='AgentCustomField',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('value', models.TextField(blank=True, null=True)),
('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='custom_fields', to='agents.agent')),
('field', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='agent_fields', to='core.customfield')),
],
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.1.7 on 2021-03-29 02:51
import django.contrib.postgres.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0032_agentcustomfield'),
]
operations = [
migrations.AddField(
model_name='agentcustomfield',
name='multiple_value',
field=django.contrib.postgres.fields.ArrayField(base_field=models.TextField(blank=True, null=True), blank=True, default=list, null=True, size=None),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.1.7 on 2021-03-29 03:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0033_agentcustomfield_multiple_value'),
]
operations = [
migrations.AddField(
model_name='agentcustomfield',
name='checkbox_value',
field=models.BooleanField(blank=True, default=False),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 3.1.7 on 2021-03-29 17:09
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('agents', '0034_agentcustomfield_checkbox_value'),
]
operations = [
migrations.RenameField(
model_name='agentcustomfield',
old_name='checkbox_value',
new_name='bool_value',
),
migrations.RenameField(
model_name='agentcustomfield',
old_name='value',
new_name='string_value',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.1.7 on 2021-04-17 01:28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0035_auto_20210329_1709'),
]
operations = [
migrations.AddField(
model_name='agent',
name='block_policy_inheritance',
field=models.BooleanField(default=False),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 3.2.4 on 2021-06-27 00:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0036_agent_block_policy_inheritance'),
]
operations = [
migrations.AddField(
model_name='agent',
name='has_patches_pending',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='agent',
name='pending_actions_count',
field=models.PositiveIntegerField(default=0),
),
]

View File

@@ -0,0 +1,27 @@
# Generated by Django 3.2.1 on 2021-07-06 02:01
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0037_auto_20210627_0014'),
]
operations = [
migrations.CreateModel(
name='AgentHistory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(auto_now_add=True)),
('type', models.CharField(choices=[('task_run', 'Task Run'), ('script_run', 'Script Run'), ('cmd_run', 'CMD Run')], default='cmd_run', max_length=50)),
('command', models.TextField(blank=True, null=True)),
('status', models.CharField(choices=[('success', 'Success'), ('failure', 'Failure')], default='success', max_length=50)),
('username', models.CharField(default='system', max_length=50)),
('results', models.TextField(blank=True, null=True)),
('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='history', to='agents.agent')),
],
),
]

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.5 on 2021-07-14 07:38
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scripts', '0008_script_guid'),
('agents', '0038_agenthistory'),
]
operations = [
migrations.AddField(
model_name='agenthistory',
name='script',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='history', to='scripts.script'),
),
migrations.AddField(
model_name='agenthistory',
name='script_results',
field=models.JSONField(blank=True, null=True),
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 3.2.6 on 2021-10-10 02:49
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0039_auto_20210714_0738'),
]
operations = [
migrations.AlterField(
model_name='agent',
name='agent_id',
field=models.CharField(max_length=200, unique=True),
),
migrations.AlterField(
model_name='agent',
name='created_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='agent',
name='modified_by',
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.6 on 2021-10-18 03:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0040_auto_20211010_0249'),
]
operations = [
migrations.AlterField(
model_name='agenthistory',
name='username',
field=models.CharField(default='system', max_length=255),
),
]

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
# Generated by Django 3.2.12 on 2022-02-27 05:54
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('agents', '0042_alter_agent_time_zone'),
]
operations = [
migrations.RemoveField(
model_name='agent',
name='antivirus',
),
migrations.RemoveField(
model_name='agent',
name='local_ip',
),
migrations.RemoveField(
model_name='agent',
name='used_ram',
),
]

View File

@@ -0,0 +1,22 @@
# Generated by Django 3.2.12 on 2022-02-27 07:17
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('agents', '0043_auto_20220227_0554'),
]
operations = [
migrations.RenameField(
model_name='agent',
old_name='salt_id',
new_name='goarch',
),
migrations.RemoveField(
model_name='agent',
name='salt_ver',
),
]

View File

@@ -0,0 +1,16 @@
# Generated by Django 3.2.12 on 2022-03-12 02:30
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('agents', '0044_auto_20220227_0717'),
]
operations = [
migrations.DeleteModel(
name='RecoveryAction',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2022-03-17 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('agents', '0045_delete_recoveryaction'),
]
operations = [
migrations.AlterField(
model_name='agenthistory',
name='command',
field=models.TextField(blank=True, default='', null=True),
),
]

Some files were not shown because too many files have changed in this diff Show More