Commit Graph

215 Commits

Author SHA1 Message Date
Oliver Gorwits
9eb537a4c1 #910 implement import of snmpwalk and more robust snapshot handling (#1086)
* initial work

* initial work

* initial work

* some fixes for time and Layer3 weird spec

* store again the snapshot after update for specific

* resolve the enums

* monkeypatch SNMP::translateObj to avoid hardware exception on macOS

* only save cache to db in the late phase worker

* no need to check for cache on transport, can just go ahead and try

* use database only for oidmap instead of netdisco-mibs

* rewrite device snapshot to gather loaded mib leafs only

* remove old walker code from snapshot worker

* allow snmp browser to work without snapshot

* only store snapshot leafs which the device responded on

* refactor to separate snapshot work from snmp transport work

* refactor to separate snapshot work from snmp transport work

* allow typeahead on MIB qualified leafs

* fixes for snmpwalk input after previous refactor

* add the extra stuff SNMP::Info device class uses into snapshot

* better width for snmp search box

* fix css for snmp options

* add spinner while snmp loading

* add spinner while snmp loading

* add spinner while snmp loading

* support SNMP::Info device class or named MIBs as extra on snapshot

* add final tidy and bug fix
2023-08-10 22:27:02 +01:00
Oliver Gorwits
47c4226788 refactor CustomFields so with_custom_fields is available on backend 2023-07-20 16:51:04 +01:00
Oliver Gorwits
1eabe7064f #1062 allow job submit API to use extra field instead of subaction 2023-07-20 16:19:13 +01:00
Oliver Gorwits
31489ba550 #1072 clean custom_fields keys on rediscover 2023-07-20 12:49:40 +01:00
Oliver Gorwits
f8222e7890 #1072 clean custom_fields keys on rediscover 2023-07-19 22:18:00 +01:00
Oliver Gorwits
04ee1e1613 #1064 display device and device port tags in web ui 2023-07-19 13:01:51 +01:00
Oliver Gorwits
a2da6a7a04 avoid open redirect vulnerability with return_url login helper 2023-06-28 16:56:04 +01:00
Oliver Gorwits
9f4401f2fb avoid CSS vulnerability in Find Anything 2023-06-28 12:06:11 +01:00
Oliver Gorwits
2cbb68889a #975 RBAC for port control with new portctl_by_role setting 2023-06-27 22:52:04 +01:00
Oliver Gorwits
5515b93c88 #1036 redux allow use of /login even when authN is delegated 2023-06-22 13:55:00 +01:00
Oliver Gorwits
a7cd5603cb #1036 redux allow use of /login even when authN is delegated 2023-06-22 13:35:51 +01:00
Oliver Gorwits
f14e495e49 use new faster portvlanmismatch query without duplication 2023-06-13 17:41:20 +01:00
Christian Ramseyer
82dea7de2a Try to fix #1044 by subquery inlining instead of CTE (#1046) 2023-06-08 16:29:14 +01:00
Oliver Gorwits
195f98dff1 make safe the api calls with potential for demo site damage 2023-06-05 17:28:34 +01:00
Oliver Gorwits
65a908dcd3 #1036 skip API login for trust_remote_user, trust_x_remote_user, no_auth 2023-06-05 17:02:20 +01:00
Oliver Gorwits
9355f5c2b9 Refactored ACL support with multi-object compare
Squashed commit of the following:

commit 4081e22202693bd7c4ea00e95daad8e628c6fd5a
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon May 29 21:02:07 2023 +0100

    large rename of check_acl* to acl_matches*

commit 3cfa284ddd24d68765c255578cc5c184afbdcd83
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Fri May 19 20:39:03 2023 +0100

    update permission doc

commit 8c7bb93cc5e9fafb770f98f446e45cbd94b14894
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Wed May 17 21:50:07 2023 +0100

    migrate most check_acl_only to acl_matches_only

commit c47f699f2a22f08f2f3e093ed0f24c891e6f9a82
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Wed May 17 21:39:19 2023 +0100

    rename check_acl* to be acl_matches*

commit a884a22c3ab1f3262118c3a47ed8e25b0b0a7336
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun May 14 16:50:42 2023 +0100

    update macsuck_no_deviceports to use acl_matches

commit 8c256af728721329b64d071fa529dfc844073ac6
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun May 7 22:54:33 2023 +0100

    update hide_deviceports to use acl_matches multi @things

commit cd5d9978aba1da459be4fed4500f395df13f7784
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun May 7 22:53:38 2023 +0100

    check_acl fix to allow all @things to offer a property before fallback to missing as empty string

commit 1a3ab9a7646e9f994f03126d45fc36e9e5a13ed5
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Tue May 2 15:31:17 2023 +0100

    add ignore_deviceports to portproperties discover; improve comments

commit 51385ce89458dc939587dae902fda431719c22c9
Merge: b97c07d2 3f8ffe78
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Tue May 2 15:21:48 2023 +0100

    Merge branch 'master' into og-acl_multidict

commit b97c07d237d750c1d9eb3095d8ff3908512eac2a
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 25 14:37:53 2023 +0000

    add support for arrayref of items, and unblessed hash, to check_acl
2023-05-29 21:32:07 +01:00
Oliver Gorwits
949aeb9eea delete hook (#1032)
* make log_message optional in delete_device

* add hooks support to delete job

* make delete job high prio

* web delete now queues job instead of inline delete

* move web logging into web package and remove userlog from device delete helper

* submit delete job for expire device instead of inline delete

* fixes to get web submit form for delete device to work

* enable delete hook functionality
2023-04-30 22:58:42 +01:00
Oliver Gorwits
0a1f1bcb73 api for actions (#1031)
* implementation of GET and DELETE for Job Queue API

* implement POST jobs submission to queue via API

* implement GET /queue/backends API endpoint to get backend names
2023-04-27 16:26:26 +01:00
Oliver Gorwits
e268b9d522 #1010 Search port descriptions 2023-04-03 22:02:43 +01:00
Oliver Gorwits
6586815fc6 #1001 support for FQDN node search while domain_suffix is set; add fallback to IPv4 host lookup search 2023-03-16 15:53:25 +00:00
Oliver Gorwits
9fd1e71b8b #974 show all chassis serials in device details 2023-03-08 22:56:18 +00:00
Oliver Gorwits
d9a384d1d0 #949 replace other occurances of now() with LOCALTIMESTAMP 2023-03-03 14:17:38 +00:00
Oliver Gorwits
252c9c7e66 #478 rewrite wireless client count report which was bobbins 2023-02-25 14:07:44 +00:00
Oliver Gorwits
86ef8add72 #979 tenancy awareness for generic reports 2023-02-21 11:52:50 +00:00
Oliver Gorwits
1c7c749f0e custom fields on devices and ports in the web from config (#945)
* custom device field web display and edit

* make display work; relies on T::T calling dict slot or method with same syntax

* add storing port custom fields

* use resultset method instead, use cf_ prefix

* update Pg min ver for jsonb

* allow override of position and default for port custom fields

* support hidden for custom fields

* update description of Objects API class

* allow left and mid position for custom fields

* add custom fields in csv

* change port control sidebar label

* fix default missing bug on backend jobs
2022-12-09 10:20:26 +00:00
Oliver Gorwits
826e1db39d API Endpoints to submit arpnip and macsuck results (#942)
* Add macsuck worker to collect various PortAccessEntity (NAC) attributes

* Incorporate PAE feedback on #937

 * missing Result/Device.pm column added
 * pae_is... columns instead of pae_capabilities
 * moved most code to Util/PortAccessEntity.pm so the update can
   be done in discover and macsuck

* Refactor PAE attributes during discover as separate Plugin

* PortAccessEntity: don't use device->dns in log string

* Fix "Experimental keys on scalar is now forbidden" test failure

* Revamp pae_control and add missing attribute

 - device.pae_control (text) is now device.pae_is_enabled (bool)
 - also store pae_authconfig_port_control (port mode auto/force(un)Auth)

* Fix "Experimental keys on scalar is now forbidden" test failure

 - ... again because of botched merge
 - at least perlgolfed away a set of curly braces

* Update PortAccessEntity.pm

* Incorporate @ollyg PR feedback

* allow actions without transport to run when there are also no creds

* initial refactor for separate gather, process, store phases for macsuck

* factor out the vlan sanity check

* additional help with log of action workers

* cleanup logic in check macsuck

* refactor to make main phases only

* some fixes

* implement file slurp. amazingly the whole thing works

* remove outdated noop from test

* treat error as critical, use cancel to suppress further drivers

* big refactor to share mac sanity code to both paths

* fix inverted logic on vlan sanity filter

* some code tidy

* fix error in default value

* fix for vlan 0 nodes input from cli

* ensure imported MACs are IEEE format

* add api endpoint, no useful return status yet

* exit status if error from nodes PUT

* suppress other networked workers when direct workers are active

* better log showing worker

* fix status recording to get first error or last done message

* implement arpnip API PUT

* avoid package redeclaration error

* make sure write API methods require admin status

* add doc for passing JSON data to arpnip and macsuck

* update manifest

* remove option to do jobs in web handler; all by queue now

* use job entry timestamp for offline queued jobs

* fix store username and IP on api PUT

* never de-duplicate user-submitted jobs; never reset DeviceSkip for offline jobs

* myworker no longer needed

* make logic cleaner

Co-authored-by: Christian Ramseyer <ramseyer@netnea.com>
2022-11-25 15:24:23 +00:00
Oliver Gorwits
2a35a0bc56 #936 user auth method should be drop-down 2022-10-18 11:50:12 +01:00
Oliver Gorwits
1d5f3ce316 #929 implement first half of multi tenancy with tenant_databases setting 2022-09-24 19:01:16 +01:00
Oliver Gorwits
790c51b257 #925 implement ignore_deviceports and hide_deviceports 2022-09-20 20:32:35 +01:00
Oliver Gorwits
6f37def579 extended vlan ranges 2022-08-17 06:38:23 -04:00
Oliver Gorwits
73862d5ac8 fix device sysname showing in node search 2022-08-17 06:09:43 -04:00
Oliver Gorwits
4d49f04d2a #875 Node Search - swap IP and DNS, add system name, highlight most recent, in the Switch Port rows 2022-08-16 22:25:27 +01:00
Oliver Gorwits
dd468efdd5 #834 VLAN Mismatch report - add sysname, port comment, and vlan diff 2022-08-16 18:12:35 +01:00
Oliver Gorwits
c4e4bd7633 add option to limit snmp node search to current device only 2022-08-09 10:19:05 +01:00
Oliver Gorwits
5d5e36b5fd first suggest a snapshot, then loadmibs 2022-08-08 17:23:50 +01:00
Oliver Gorwits
5265e0403d loosen check for leaf 2022-08-08 09:06:32 +01:00
Oliver Gorwits
b03bb2ac62 issue loadmibs if needed when user gets snapshot 2022-08-08 08:53:17 +01:00
Oliver Gorwits
a874882e6e error message to user to load mibs 2022-08-08 08:45:36 +01:00
Oliver Gorwits
bd21797557 more helpful message when no snapshot 2022-08-07 23:10:12 +01:00
Oliver Gorwits
af5c8853bf #911 make web snapshots with browser data too 2022-08-07 23:04:32 +01:00
Oliver Gorwits
1e2d9f36bf #912 use new all_oids format with additional status,enum,descr 2022-08-07 23:03:45 +01:00
Oliver Gorwits
1178c6eea0 do not open branch if there is no data, even when only one child 2022-08-04 23:04:59 +01:00
Oliver Gorwits
2ae86b9fcd make the SNMP Browser faster and colour branches with data 2022-08-04 22:56:23 +01:00
Oliver Gorwits
d57db8b1db #843 api tokens extended if login again when valid 2022-08-03 21:26:12 +01:00
Oliver Gorwits
24b94d3092 auto expand SNMP browser more now the perf is good 2022-08-03 17:57:54 +01:00
Oliver Gorwits
94c43fcc33 #906 snmp browser is very slow sometimes 2022-08-03 17:43:23 +01:00
Oliver Gorwits
fd42aff447 #888 add 1.0.8802.1.1 and 1.3.111.2.802 to the SNMP browser 2022-08-03 13:03:55 +01:00
Oliver Gorwits
b40c30606e #900 make Port VLAN mismatch respect p_hide1002 setting 2022-08-03 10:25:23 +01:00
Oliver Gorwits
3d81f3e5f6 make hide1002 and vlan_names true sidebar options and move to port properties section 2022-08-03 06:22:51 +01:00
Oliver Gorwits
89ada080da #900 add option to hide vlan 1002-1005 2022-08-02 21:41:48 +01:00