Commit Graph

232 Commits

Author SHA1 Message Date
Oliver Gorwits
bc47b54f67 improve searchable generic report fields (#1133)
* implement links on all v4/v6/mac found in _searchable fields

* word boundaries on matching
2023-12-07 07:49:18 +00:00
Oliver Gorwits
ba1966738b remove debug 2023-11-24 21:57:48 +00:00
Oliver Gorwits
122daf8195 #1018 VLANs with Multiple Names report 2023-11-24 21:53:14 +00:00
Oliver Gorwits
f6cd6a68e8 tidy up some of the report names 2023-11-24 21:17:51 +00:00
Oliver Gorwits
534a9d9378 #1111 Support for OUI28/MA-M and OUI36/MA-S
* new oui importer using IEEE csv for MA-L+M+S

* schema update for new vendor table

* change vendor to manufacturer because Device has a vendor field

* remove oui from manuf table, and update node oui after manuf update

* faster way to bulk update node oui

* switch from using oui table to manufacturer table for vendor lookup

* some other oui cleanup

* faster/scalable way to join a macaddr to manuf table

* remove device.oui support

* update node oui in bulk at end of macsuck run

* correct literal sql instead of bind

* more efficient to get oui base for each mac

* comment better the base lookup in macsuck
2023-11-14 18:55:54 +00:00
Oliver Gorwits
b5c0cd585e #1112 API method for device neighbors 2023-11-09 22:28:58 +00:00
Oliver Gorwits
e52f789b45 #1009 neighbour map depth and/or until end of lldp chains
* sidebar and style changes

* switch server code to new params and values

* working algo for cloud and neighbor depth

* store map positions for lldp cloud with depth

* color the root node uniquely

* restrict all devices, depth, cloud map to < 1000 devices
2023-11-09 19:54:34 +00:00
Oliver Gorwits
6b80626a29 better job queue stats in web 2023-10-27 15:32:06 +01:00
Oliver Gorwits
21bc8cf63e backend field in jobqueue (#1114)
implements #969
2023-10-24 21:49:37 +01:00
Oliver Gorwits
64313ed85a fix again the job type dropdown on jobqueue 2023-10-24 20:05:35 +01:00
Oliver Gorwits
ae3ad986f7 #969 add job queue totals to report 2023-10-24 20:03:14 +01:00
Oliver Gorwits
fb58b62b1a fix jobqueue actions dropdown to get all available 2023-10-24 18:51:41 +01:00
Oliver Gorwits
b1e253465a filtered web queue (#1113)
implements #969 partially
2023-10-24 18:29:48 +01:00
Oliver Gorwits
c27fa94e8c also show unknown/unknown platforms and releases in inventory 2023-09-24 20:56:56 +01:00
Oliver Gorwits
c651ff107b collapse on inventory for long lists (#1103)
implements #1083
2023-09-19 08:11:05 +01:00
Matt Haught
eb90458685 add support for custom radius VSAs (#1091) 2023-08-13 19:40:53 +01:00
Oliver Gorwits
3e1d6a1505 #1090 snapshot request via web fix params 2023-08-11 10:28:38 +01:00
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