...
Go to menu: Manage -> Queries -> List Queries.
You will see a list of queries. You can view the details of a query by clicking on the blue view button.
You can execute a query by clicking the green Execute button, the results will be displayed immediately.
You can also edit or delete any query. You delete the query by clicking the red trash can icon under the delete column as displayed in previous screen shots.
...
A query can be created using the web interface if a user has a role that contains the queries::create permission. Go to menu: Manage -> Queries -> Create Queries. There is also a create "+" button on the List Queries collection page.
Details for creating custom queries can be found HERE: Creating a Query, If you need to create a Query that includes a custom Field you should look HERE: Create a Query containing Custom Fields
...
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 Admin -> Database -> List DatabaseTables, then clicking on the "queries" table.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
CREATE TABLE `queries` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `org_id` int(10) unsigned NOT NULL DEFAULT '1', `name` varchar(200) NOT NULL DEFAULT '', `category` enum('Change','Device','Hardware','Network','Other','Server','Software','User','') NOT NULL DEFAULT '', `description` text NOT NULL, `sql` text NOT NULL, `link` text NOT NULL, `expose` enum('y','n') NOT NULL DEFAULT 'y', `edited_by` varchar(200) NOT NULL DEFAULT '', `edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8; |
A typical entry looks as below.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
id: 39 org_id: 1 name: AD Controllers category: Server description: Active Directory Domain Controllers sql: SELECT system.id AS `system.id`, system.icon AS `system.icon`, system.type AS `system.type`, system.name AS `system.name`, system.domain AS `system.domain`, system.ip AS `system.ip`, system.description AS `system.description`, system.os_family AS `system.os_family`, system.status AS `system.status` FROM system LEFT JOIN windows ON (system.id = windows.system_id AND windows.current = 'y') WHERE @filter AND windows.domain_role LIKE '%Domain Controller' AND system.status = 'production' link: expose: y edited_by: system edited_date: 2000-01-01 00:00:00 |
...
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).
API Routes
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes | Example Response |
---|---|---|---|---|---|---|---|
POST | n |
create | queries::create | /queries | Insert a new query entry. | queries_create.json | ||
GET | y |
read | queries::read | /queries/{id} | Returns a query details. | queries_read.json | ||
PATCH | y |
update | queries::update | /queries/{id} | Update an attribute of a query entry. | queries_update.json | |
DELETE | y |
delete | queries::delete | /queries/{id} | Delete a query entry. | queries_delete.json | |
GET | n |
collection | queries::read | /queries | Returns a list of queries. | queries_collection.json | |||
GET | y | execute | execute | queries::read | /queries/{id}/execute | Execute (run) a query and show the results. | queries_execute.json |
Web Application Routes
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes |
---|---|---|---|---|---|---|
GET | n | create | create_form | queries::create | /queries/create | Displays a standard web form for submission to POST /queries. |
GET | y | update | update_form | queries::update | /queries/{id}/update | Show the query details with the option to update attributes using PATCH to /queries/{id} |
This is possible but rather inelegant at the moment.
You'll need to know the id of the relevant field from the additional_field table. YTou can find it by going to Menu -> Admin -> Fields -> List Fields. Once you have the ID of the required field you'll need to make a new Query and use this and a join to the additional_field_item table. You'll also need to define a column to put it in (for display). I've included a sample query (attached and below with highlights) that shows what to do.