Introduction
Discoveries are pre-prepared 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?
Creating a Discovery
A 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 create button on the collection page.
View Discovery Details
Go to menu: Discover -> Discoveries -> List Discoveries.
You will see a list of discoveries. You can view a discovery by clicking on the blue view icon. You can also execute, edit or delete the your discoveries.
.
Database Schema
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, then clicking on the groups table.
Create Table: 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, `device_count` 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 'n', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
Example Database Entry
Connections are stored in the database in the "connections" table. A typical entry will look as below.
id: 1 name: My Home Network org_id: 1 description: 192.168.1.0/24 type: subnet devices_assigned_to_org: NULL devices_assigned_to_location: NULL network_address: http://192.168.1.20/open-audit/ system_id: 0 other: {"subnet":"192.168.1.0\/24"} device_count: 0 discard: n created_by: Administrator created_on: 2016-12-05 14:31:24 last_run: 2000-01-01 00:00:00 complete: y
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. | ||
GET | y | read | discoveries::read | /discoveries/{id} | Returns a discovery's details. | ||
PATCH | y | update | discoveries::update | /discoveries/{id} | Update an attribute of a discoveries entry. | ||
DELETE | y | delete | discoveries::delete | /discoveries/{id} | Delete a discoveries entry. | ||
GET | n | collection | discoveries::read | /discoveries | Returns a list of discoveries. |
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. |