Table of Contents |
---|
Introduction
Discoveries are preprepared data items that enable you to run a discovery upon a network in a single click, without entering the details of that network each and every time.
How Does it Work?
Excerpt |
---|
Creating a DiscoveryA discovery can be created using the web interface if a user has a role that contains the discoveries::create permission. Go to menu: Discover -> Discoveries -> Create Discoveries. There is also a "+" button on the collection page. |
View Discovery Details
Go to menu: Discover -> Discoveries -> List Discoveries.
You will see a list of attributes. You can view an attribute by clicking on the blue view button. You can also edit or delete Discovery.
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Database Schema (4.0.3)
The schema for the database is below. It can also be found in the application is the user has database::read permission by going to menu: Admin -> Database -> List Tables, then clicking on the "discoveries" table.
Code Block | ||||
---|---|---|---|---|
| ||||
CREATE TABLE `discoveries` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL DEFAULT '', `org_id` int(10) unsigned NOT NULL DEFAULT '1', `description` text NOT NULL, `type` varchar(100) NOT NULL DEFAULT '', `subnet` varchar(45) NOT NULL DEFAULT '', `seed_ip` varchar(45) NOT NULL DEFAULT '', `seed_restrict_to_subnet` enum('y','n') NOT NULL DEFAULT 'y', `seed_restrict_to_private` enum('y','n') NOT NULL DEFAULT 'y', `ad_domain` varchar(200) NOT NULL DEFAULT '', `ad_server` varchar(45) NOT NULL DEFAULT '', `devices_assigned_to_org` int(10) unsigned DEFAULT NULL, `devices_assigned_to_location` int(10) unsigned DEFAULT NULL, `network_address` varchar(100) NOT NULL DEFAULT '', `system_id` int(10) unsigned NOT NULL DEFAULT '0', `other` text NOT NULL, `scan_options` text NOT NULL, `match_options` text NOT NULL, `command_options` text NOT NULL, `discard` enum('y','n') NOT NULL DEFAULT 'n', `last_run` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_finished` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `duration` time NOT NULL DEFAULT '00:00:00', `status` varchar(20) NOT NULL DEFAULT '', `ip_all_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_responding_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_scanned_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_discovered_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_audited_count` int(10) unsigned NOT NULL DEFAULT '0', `edited_by` varchar(200) NOT NULL DEFAULT '', `edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
Database Schema (3.3.0 - 4.0.3)
The schema for the database is below. It can also be found in the application is the user has database::read permission by going to menu: Admin -> Database -> List Tables, then clicking on the "discoveries" table.
Code Block | ||||
---|---|---|---|---|
| ||||
CREATE TABLE `discoveries` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL DEFAULT '', `org_id` int(10) unsigned NOT NULL DEFAULT '1', `description` text NOT NULL, `type` varchar(100) NOT NULL DEFAULT '', `devices_assigned_to_org` int(10) unsigned DEFAULT NULL, `devices_assigned_to_location` int(10) unsigned DEFAULT NULL, `network_address` varchar(100) NOT NULL DEFAULT '', `system_id` int(10) unsigned NOT NULL DEFAULT '0', `other` text NOT NULL, `options` text NOT NULL, `discard` enum('y','n') NOT NULL DEFAULT 'n', `last_run` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_finished` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `duration` time NOT NULL DEFAULT '00:00:00', `status` varchar(20) NOT NULL DEFAULT '', `ip_all_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_responding_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_scanned_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_discovered_count` int(10) unsigned NOT NULL DEFAULT '0', `ip_audited_count` int(10) unsigned NOT NULL DEFAULT '0', `edited_by` varchar(200) NOT NULL DEFAULT '', `edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
Database Schema (2.3.0 - 3.3.0)
The schema for the database is below. It can also be found in the application is the user has database::read permission by going to menu: Admin -> Database -> List Tables, then clicking on the "discoveries" table.
Code Block | ||||
---|---|---|---|---|
| ||||
CREATE TABLE `discoveries` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL DEFAULT '', `org_id` int(10) unsigned NOT NULL DEFAULT '1', `description` text NOT NULL, `type` varchar(100) NOT NULL DEFAULT '', `devices_assigned_to_org` int(10) unsigned DEFAULT NULL, `devices_assigned_to_location` int(10) unsigned DEFAULT NULL, `network_address` varchar(100) NOT NULL DEFAULT '', `system_id` int(10) unsigned NOT NULL DEFAULT '0', `other` text NOT NULL, `options` text NOT NULL, `device_count` int(10) unsigned NOT NULL DEFAULT '0', `limit` int(10) unsigned NOT NULL DEFAULT '0', `discard` enum('y','n') NOT NULL DEFAULT 'n', `edited_by` varchar(200) NOT NULL DEFAULT '', `edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_run` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `complete` enum('y','n') NOT NULL DEFAULT 'y', `status` varchar(20) NOT NULL DEFAULT '', `discovered` varchar(20) NOT NULL DEFAULT '', `last_log` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `duration` time NOT NULL DEFAULT '00:00:00', `pid` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
Database Schema (pre 2.3.0)
The schema for the database is below. It can also be found in the application is the user has database::read permission by going to menu: Admin -> Database -> List Tables, then clicking on the "discoveries" table.
Code Block | ||||
---|---|---|---|---|
| ||||
CREATE TABLE `discoveries` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL DEFAULT '', `org_id` int(10) unsigned NOT NULL DEFAULT '1', `description` varchar(100) NOT NULL DEFAULT '', `type` varchar(100) NOT NULL DEFAULT '', `devices_assigned_to_org` int(10) unsigned DEFAULT NULL, `devices_assigned_to_location` int(10) unsigned DEFAULT NULL, `network_address` varchar(100) NOT NULL DEFAULT '', `system_id` int(10) unsigned NOT NULL DEFAULT '0', `other` text NOT NULL, `device_count` int(10) unsigned NOT NULL DEFAULT '0', `discard` enum('y','n') NOT NULL DEFAULT 'n', `created_by` varchar(200) NOT NULL DEFAULT '', `created_on` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_run` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `complete` enum('y','n') NOT NULL DEFAULT 'n', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
Example Database Entry
Discoveries are stored in the database in the "discoveries" table. A typical entry will look as below . (for 4.0.3 onward).
Code Block | ||||
---|---|---|---|---|
| ||||
id: 1 name: My Home Network org_id: 1 description: Subnet - 192.168.1.0/24 type: subnet devices_assigned_to_org: NULL devices_assigned_to_location: NULL network_addresssubnet: http://192.168.1.20/open-audit/0/24 systemseed_idip: 0 seed_restrict_to_subnet: y seed_restrict_to_private: y ad_domain: ad_server: devices_assigned_to_org: NULL devices_assigned_to_location: NULL network_address: system_id: 0 other: scan_options: {"exclude_ip":"","exclude_tcp_ports":"","exclude_udp_ports":"","filtered":"","id":"1","nmap_tcp_ports":"","nma... match_options: {"match_dbus":"","match_dns_fqdn":"","match_dns_hostname":"","match_fqdn":"","match_hostname":"","match_hostna... command_options: discard: n last_run: 2000-01-01 00:00:00 last_finished: 2000-01-01 00:00:00 otherduration: {"subnet":"192.168.1.0\/24"}00:00:00 device_count: 0status: ip_all_count: 0 discard ip_responding_count: n0 ip_scanned_count: 0 created_by: Administrator ip_discovered_count: 0 created_on: 2016-12-05 14:31:24ip_audited_count: 0 lastedited_runby: 2000-01-01 00:00:00Administrator complete: yedited_date: 2021-02-19 10:46:00 |
API / Web Access
You can access the /discoveries collection using the normal Open-AudIT JSON based API. Just like any other collection. Please see the API documentation for further details.
API Routes
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes | Example Response |
---|---|---|---|---|---|---|---|
POST | n | create | discoveries::create | /discoveries | Insert a new discoveries entry. | discoveries_create.json | |
GET | y | read | discoveries::read | /discoveries/{id} | Returns a discovery's details. | discoveries_create.json | |
PATCH | y | update | discoveries::update | /discoveries/{id} | Update an attribute of a discoveries entry. | discoveries_update.json | |
DELETE | y | delete | discoveries::delete | /discoveries/{id} | Delete a discoveries entry. | discoveries_delete.json | |
GET | n | collection | discoveries::read | /discoveries | Returns a list of discoveries. | discoveries_collection.json | |
GET | y | execute | discoveries::read | /discoveries/{id}/execute | Execute (run) a discovery. | discoveries_execute.json |
Web Application Routes
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | n | create | create_form | discoveries::create | /discoveries/create | Displays a standard web form for submission to POST /discoveries. | GET | y | update | update_form | discoveries::update | /discoveries/{id}/update | Show the discovery's details with the option to update attributes using PATCH to /discoveries/{id} |
GET | n | import | import_form | discoveries::create | /discoveries/import | Displays a standard web form for submission to POST /discoveries/import. | |||||||
POST | n | import | import | discoveries::create | /discoveries/import | Import multiple discoveries using a CSV. |