Summaries are designed to group items by a particular matching column and then to provide a link to individual devices. In the previous versions of Open-AudIT, this would have been two different items - a report and subreport. We have now bundled these into what we call a Summary.
Summaries are a single query against the database with a 'group by' command. Using this simple method we can easily create a summary for virtually any attribute.
We no longer require a separate report for each 'type' of a device. We now simply have a summary that groups by 'system.type' and shows the result. You can then click on a given type from the list and see the matching devices. In this case, one Summary replaces (potentially) 78 reports (there are 78 device types).
A summary is different to a query in that a summary is designed to group items by a given attribute then provide a 'click through' link to the actual devices. A query is simply a list of items with no further links. As above - this of a Summary as a combined "report + subreport", whereas a query is simply a single Report.
Summaries have a different 'collection' template to the other resources within Open-AudIT. This template shows the Summary as you would expect and also shows buttons with counts of other resources. This page is designed to be the HomePage of Open-AudIT.
A summary can be created using the web interface if a user has a role that contains the summaries::create permission. Go to menu: Manage-> Summaries -> Create Summaries. There is also a create button on the collection page.
When viewing a summary, a default set of columns are provided - name, count, and view. The Name column is the name of the column you are grouping devices by. IE - In the Manufacturer Summary, the name column would be the system.manufacturer column from the database. The count is the number of devices with this attribute and the view is a button to view those particular devices.
There is also an option to provide additional columns for viewing. In the case of the Software Summary, you can see we also provide the software name and version. These are not shown on the initial summary page but rather added to the list of attributes shown when viewing the next page. IE - Show me the actual devices with MS Office installed. This page will also show the are name and version in addition to the default columns.
Go to menu: Manage -> Devices -> List Devices.
You will see a list of devices. This view allows you export the list of devices in CSV and JSON format.
You can view all the device's details by clicking on the blue view icon.
The schema for the database is below. It can also be found in the application if the user has database::read permission by going to menu: Manage -> Database -> List Database, then clicking on the "system" table.
CREATE TABLE `system` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uuid` varchar(100) NOT NULL DEFAULT '', `name` varchar(200) NOT NULL DEFAULT '', `ip` varchar(45) NOT NULL DEFAULT '', `hostname` varchar(100) NOT NULL DEFAULT '', `dns_hostname` varchar(100) NOT NULL DEFAULT '', `domain` varchar(100) NOT NULL DEFAULT '', `dns_domain` varchar(100) NOT NULL DEFAULT '', `dbus_identifier` varchar(255) NOT NULL DEFAULT '', `fqdn` text NOT NULL, `description` text NOT NULL, `type` varchar(50) NOT NULL DEFAULT '', `comments` text NOT NULL, `icon` varchar(50) NOT NULL DEFAULT '', `os_group` varchar(50) NOT NULL DEFAULT '', `os_family` varchar(50) NOT NULL DEFAULT '', `os_name` varchar(100) NOT NULL DEFAULT '', `os_version` varchar(50) NOT NULL DEFAULT '', `attached_system_id` int(10) DEFAULT NULL, `manufacturer` varchar(100) NOT NULL DEFAULT '', `model` varchar(200) NOT NULL DEFAULT '', `serial` varchar(200) NOT NULL DEFAULT '', `uptime` varchar(50) NOT NULL DEFAULT '', `form_factor` varchar(50) NOT NULL DEFAULT '', `os_bit` tinyint(3) unsigned NOT NULL DEFAULT '0', `memory_count` int(10) unsigned NOT NULL DEFAULT '0', `processor_count` tinyint(3) unsigned NOT NULL DEFAULT '0', `os_installation_date` date NOT NULL DEFAULT '2000-01-01', `printer_port_name` varchar(50) NOT NULL DEFAULT '', `printer_shared` varchar(50) NOT NULL DEFAULT '', `printer_shared_name` varchar(50) NOT NULL DEFAULT '', `printer_color` enum('y','n','') NOT NULL DEFAULT '', `printer_duplex` enum('y','n','') NOT NULL DEFAULT '', `status` varchar(100) NOT NULL DEFAULT '', `environment` enum('production','dev','dr','eval','pre-prod','test','train','uat') NOT NULL DEFAULT 'production', `class` enum('desktop','laptop','tablet','workstation','server','virtual server','virtual desktop','hypervisor','') NOT NULL DEFAULT '', `function` varchar(100) NOT NULL DEFAULT '', `owner` varchar(100) NOT NULL DEFAULT '', `org_id` int(10) unsigned NOT NULL DEFAULT '1', `location_id` int(10) unsigned NOT NULL DEFAULT '1', `location_level` varchar(100) NOT NULL DEFAULT '', `location_suite` varchar(100) NOT NULL DEFAULT '', `location_room` varchar(100) NOT NULL DEFAULT '', `location_rack` varchar(100) NOT NULL DEFAULT '', `location_rack_position` varchar(100) NOT NULL DEFAULT '', `location_rack_size` int(10) unsigned NOT NULL DEFAULT '0', `location_latitude` float(10,6) NOT NULL, `location_longitude` float(10,6) NOT NULL, `asset_number` varchar(50) NOT NULL DEFAULT '', `vm_server_name` varchar(150) NOT NULL DEFAULT '', `vm_system_id` int(10) unsigned DEFAULT NULL, `vm_group` varchar(150) NOT NULL DEFAULT '', `cluster_name` varchar(150) NOT NULL DEFAULT '', `cluster_type` varchar(150) NOT NULL DEFAULT '', `invoice_id` int(10) unsigned DEFAULT NULL, `purchase_invoice` varchar(50) NOT NULL DEFAULT '', `purchase_order_number` varchar(50) NOT NULL DEFAULT '', `purchase_cost_center` varchar(50) NOT NULL DEFAULT '', `purchase_vendor` varchar(100) NOT NULL DEFAULT '', `purchase_date` date NOT NULL DEFAULT '2000-01-01', `purchase_service_contract_number` varchar(255) NOT NULL DEFAULT '', `lease_expiry_date` date NOT NULL DEFAULT '2000-01-01', `purchase_amount` varchar(50) NOT NULL DEFAULT '', `warranty_duration` int(5) unsigned NOT NULL DEFAULT '0', `warranty_expires` date NOT NULL DEFAULT '2000-01-01', `warranty_type` enum('','24x7x365','9x5x5','Next Business Day') NOT NULL DEFAULT '', `switch_system_id` int(10) DEFAULT NULL, `switch_port` int(10) unsigned NOT NULL DEFAULT '0', `patch_panel` varchar(45) NOT NULL DEFAULT '', `patch_panel_port` int(10) unsigned NOT NULL DEFAULT '0', `wall_port` varchar(100) NOT NULL DEFAULT '', `contact_name` varchar(50) NOT NULL DEFAULT '', `service_number` varchar(100) NOT NULL DEFAULT '', `service_provider` varchar(100) NOT NULL DEFAULT '', `service_type` varchar(100) NOT NULL DEFAULT '', `service_plan` varchar(100) NOT NULL DEFAULT '', `service_network` varchar(100) NOT NULL DEFAULT '', `unlock_pin` varchar(100) NOT NULL DEFAULT '', `serial_imei` varchar(100) NOT NULL DEFAULT '', `serial_sim` varchar(100) NOT NULL DEFAULT '', `nmis_group` varchar(50) NOT NULL DEFAULT '', `nmis_name` varchar(50) NOT NULL DEFAULT '', `nmis_role` varchar(50) NOT NULL DEFAULT '', `nmis_export` enum('y','n') NOT NULL DEFAULT 'n', `oae_manage` enum('y','n') NOT NULL DEFAULT 'y', `snmp_oid` text NOT NULL, `sysDescr` text NOT NULL, `sysObjectID` varchar(255) NOT NULL DEFAULT '', `sysUpTime` varchar(255) NOT NULL DEFAULT '', `sysContact` varchar(255) NOT NULL DEFAULT '', `sysName` varchar(255) NOT NULL DEFAULT '', `sysLocation` varchar(255) NOT NULL DEFAULT '', `first_seen` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_seen` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', `last_seen_by` varchar(150) NOT NULL DEFAULT '', `last_user` varchar(150) NOT NULL DEFAULT '', `omk_uuid` text NOT NULL, PRIMARY KEY (`id`), KEY `ip` (`ip`), KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8; |
A typical entry looks as below.
id: 2 uuid: 564D1270-6466-3F26-5A0C-CEA092593A6C name: centos66 ip: 192.168.001.128 hostname: centos66 dns_hostname: centos66 domain: open-audit.lan dns_domain: open-audit.lan dbus_identifier: fqdn: centos66.open-audit.lan description: type: computer comments: icon: centos os_group: Linux os_family: CentOS os_name: CentOS release 6.8 (Final) os_version: 6.8 attached_system_id: NULL manufacturer: VMware model: VMware Virtual Platform serial: VMware-56 4d 12 70 64 66 3f 26-5a 0c ce a0 92 59 3a 6c uptime: 960 form_factor: Virtual os_bit: 64 memory_count: 1004136 processor_count: 1 os_installation_date: 2016-05-19 printer_port_name: printer_shared: printer_shared_name: printer_color: printer_duplex: status: production environment: production class: function: owner: org_id: 1 location_id: 0 location_level: location_suite: location_room: location_rack: location_rack_position: location_rack_size: 0 location_latitude: 0.000000 location_longitude: 0.000000 asset_number: vm_server_name: vm_system_id: NULL vm_group: cluster_name: cluster_type: invoice_id: NULL purchase_invoice: purchase_order_number: purchase_cost_center: purchase_vendor: purchase_date: 2000-01-01 purchase_service_contract_number: lease_expiry_date: 2000-01-01 purchase_amount: warranty_duration: 0 warranty_expires: 2000-01-01 warranty_type: switch_system_id: NULL switch_port: 0 patch_panel: patch_panel_port: 0 wall_port: contact_name: service_number: service_provider: service_type: service_plan: service_network: unlock_pin: serial_imei: serial_sim: nmis_group: nmis_name: nmis_role: nmis_export: n oae_manage: y snmp_oid: sysDescr: sysObjectID: sysUpTime: sysContact: sysName: sysLocation: first_seen: 2017-04-25 22:12:32 last_seen: 2017-04-25 22:12:32 last_seen_by: audit last_user: omk_uuid: |
You can access the /summaries collection using the normal Open-AudIT JSON based API. Just like any other collection. Please see the API documentation for further details.
Access is provided as part of a roles permissions. Summaries is a standard resource and can have create, read, update and delete permissions.
The API routes below are usable from both a JSON Restful API and the web interface. The Web application routes are specifically designed to be called from the web interface (a browser).
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes | Example Response |
---|---|---|---|---|---|---|---|
POST | n | create | summaries::create | /summaries | Insert a new summaries entry. | ||
GET | y | read | summaries::read | /summaries/{id} | Returns a summaries details. | ||
PATCH | y | update | summaries::update | /summaries/{id} | Update an attribute of a summaries entry. | ||
DELETE | y | delete | summaries::delete | /summaries/{id} | Delete a summaries entry. | ||
GET | n | collection | summaries::read | /summaries | Returns a list of summaries. | ||
POST | n | import | import | summaries::create | /summaries/import | Import multiple connections using a CSV. | |
GET | y | execute | execute | summaries::read | /summaries/2/execute | Execute (run) a summary and show the result. |
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes |
---|---|---|---|---|---|---|
GET | n | create | create_form | summaries::create | /summaries/create | Displays a standard web form for submission to POST /summaries. |
GET | y | update | update_form | summaries::update | /summaries/{id}/update | Show the summaries details with the option to update attributes using PATCH to /summaries/{id} |
GET | n | import | import_form | summaries::create | /summaries/import | Displays a standard web form for submission to POST /summaries/import. |