HQU Views and Attachments
HQ has traditionally only had a few main pages in the application:
- Dashboard
- Resource Hub
- Resource Views (Metrics, Inventory, Control, Alerts)
- Chart Views
- Administration
The HQU plugins are able to 'hook into' a few of these major pages. Plugins can add new menu-items to the masthead and can appear in other parts of the application, such as on a resource's page or in the Administration section.
The two types of ways that the plugins interact with HQ are through 'Views', and 'Attach Points'
What is a View?

Views represent the main place on the screen where HQU plugins are displayed. Plugins are able to place any HTML and Javascript they wish, within the view. The HQU framework provides utility methods to automatically generate tables and provide easy AJAX support.
What is an Attach Point?
Attach points are locations within HQ where plugins can be linked. There are currently 3 attach points within HQ.
Masthead Attach Point

This attach point allows plugins to add menu items underneath both the 'Resources' menu and the 'Analyze' menu. Plugins can emit any HTML to render the menu item (meaning they can be dynamic). Views attached to the masthead will have everything below the orange bar for content display.
Admin Attach Point

There is a section within the Administration tab entirely devoted to plugins. Like masthead attachments, Administration attachments are viewed under the orange bar.
Resource Attach Point

Resource attach points are special because they exist within the context of a resource. Attaching here makes sense when a plugin needs to provide particular screens for resource types (such as a custom SQL tool which interacts with your Oracle instance, or a real-time log viewer for Apache). HQ passes this context information on to the plugin for easy-access.
View LifeCycle
A View is nothing more than a chunk of HTML, generated internally within HQ's Tomcat server. Views are only described by a name and a URL. Therefore, you can make a simple browser-request to get the exact HTML that a plugin spits out.
However, the most typical (and useful) case is when a view is embedded within HQ. In those scenarios, HQ determines whether or not it needs to render a view, makes an internal HTTP request to the URL, takes the generated HTML and includes it within the body of the rest of the page.
