19th of June, 2017
Structure 4.1 introduces Notes column for additional comments on any items in the structure and a Full Screen mode. It also contains other improvements, important updates and a security fix.
1. Version Highlights
Notes column lets you store additional text for any issue, folder or other item in a structure without creating custom fields or otherwise altering JIRA configuration.
- Grouping by version name and sprint name is useful for analysis when you have multiple projects with synchronized versions or sprints.
- Full-screen mode gives you more screen space for data and removes visual noise.
Structure 4.1 also contains a critical security patch.
Upgrade is required for all JIRA instances running JIRA 7.1.0 and later. If you are using a previous version of JIRA, please make sure to upgrade to a version with the latest security patch – Structure 3.5.1 for JIRA 7.0.x, Structure 3.3.5 for JIRA 6.4.x, and Structure 3.2.3 for JIRA 6.3.x.
You need to have a Structure license with active maintenance (expiring not earlier than June 20th, 2017) to run use the new version or the patches.
2. Changes in Detail
2.1. Notes Column
A new type of column - Notes - can now be added to a structure. It allows leaving additional notes in a structure for any issue or folder, without the need to create a custom field. Notes can be used to add status updates without disturbing the usual workflow for other users.
Each structure has its own notes, even for the same items.
Notes are stored in the Structure's database, so even if you remove Notes column, they are not gone – you can add the column back later and the notes you left are preserved.
Documentation: Notes Column
Keyboard shortcut: Ctrl-Shift-| (Windows) or Command-| (Mac) to add a column
2.2. Grouping by Version and Sprint names
It is now possible to group by version name (from Fix Version field) and sprint name.
This comes useful when you have multiple projects with a synchronized schedule, having the same versions and same sprints. If you combine issues from those projects together and group them by Sprint or by Fix Version, you'll get multiple groups for each sprint – because, from JIRA's standpoint, those are different things.
Grouping by the name of version or sprint is a case of grouping by text value (Text Attribute grouper is used). That grouper just considers the text value – in our case, the name of the sprint or version.
2.3. Full-Screen Mode
You can now expand Structure board to take the full screen, hiding JIRA header and, optionally, collapsing Structure toolbar. If you combine this with your browser's Full-Screen mode, you'll get maximum screen real estate dedicated to your tasks in a structure.
This is useful for presentations, using Structure board as a dashboard, working with large structures or just removing the visual clutter to concentrate on work.
Documentation: Full Screen Mode
Keyboard shortcut: Z
2.4. Structure Size Limit
We have introduced a hard limit on the structure size to safeguard against misconfigured synchronizers and imports. The limit is 100,000 rows maximum in a single structure, and it can be adjusted by a JIRA administrator.
A user who has Permission to Manage Synchronizers can inadvertently configure a synchronizer to pull in all issues into a single structure. That's not a problem unless JIRA instance is large. A structure with more than 100,000 issues in it may slow down JIRA, so we introduced this hard limit to protect the whole instance from erroneous actions of one user. Any action that would bring structure size over the limit would be denied.
Note that this limit only affects "static" structure, which does not include generators' output. Therefore, it protects from runaway synchronizers and manual changes. Generators have their own configurable limits and protections.
The hard limit may be adjusted by setting a system property and re-enabling Structure.
Documentation: Advanced Parameters
2.5. Security Patch
We have addressed a critical security issue, affecting all Structure versions starting with 3.0.
Details of the issues are not publicly disclosed at this time, but you can find more information in the restricted Structure Security google group: http://groups.google.com/group/structure-security-list (please mention your Structure SEN number or license ID when requesting access).
Security patches are provided separately for previous Structure versions, compatible with JIRA versions 6.3 and later.
2.6. Notable fixes and improvements
- Additional caching of sub-task links and issue links, improving performance of generators.
- "S" accelerator key removed from JIRA menu to avoid conflicts with Submit keyboard shortcuts in JIRA.
- Reduced number of log messages about deleted synchronizer when history is accessed.
- Fixed: Problems when deleting large structures from the user interface.
- Fixed: "After Filtering" option in aggregating columns is ignored by Export (both to Excel and Printable page).
- Fixed: Structure Gadget adds the displayed structure to Recent Structures list.
- Fixed: "Number of Leaves" column has no values exported in Excel.
3. Supported Versions
Structure 4.1 and all extensions support JIRA versions from 7.1 to 7.3.x. All editions of JIRA (JIRA Core, JIRA Software, JIRA Service Desk) are supported. JIRA Data Center is supported.
This release is backwards-compatible with Structure 3.4–4.0. Structure extensions – Structure.Pages, Structure.Testy, as well as Colors plugin and other plugins that integrate with Structure 3.4 or later should work with the new version.
4. Installation and Upgrade
4.1. Installing Structure
If your JIRA server does not have Structure yet, the installation is simple:
- Download and install Structure add-on, either from Atlassian Marketplace or from Download page. Pick the correct version based on your JIRA version!
- When Add-on Manager reports about successful installation, click Get Started to visit a page with important guidance for the JIRA administrator. You may want to also check out the user's Get Started page, available under "Structure" top-level menu.
jira-application.logfor log messages from Structure.
4.2. Upgrading Structure
Upgrade procedure from versions 3.x-4.0 is simple:
- Consider backing up JIRA data. Use Administration | System | Backup System. (If you have a large instance and have proper backup strategy in place, you may skip this step.)
- Back up Structure data. Use Administration | Structure | Backup Structure menu item. If you have a lot of structures and a large JIRA, consider turning off "Backup History" option to avoid long backup process.
Install the new version of the plugin.
jira-application.logfor warnings or errors.
5. Enterprise Deployment Notes
Compared to Structure 4.0, Structure 4.1 has a couple important additions on the server side.
5.1. About Structure Size Limit
As described above, by default the maximum number of rows that can be placed into a structure manually, via synchronizer, via import or via API is 100,000. We introduced this limit following a couple of cases where JIRA performance degraded due to misconfigured synchronizers. This is an additional safeguard for large JIRA instances.
However, there might be legitimate cases where a structure needs more than 100,000 issues in it and JIRA environment is powerful enough to work with it. In that case, the limit can be lifted as described in Advanced Parameters.
5.2. New Table for Per-Structure, Per-Item Properties
With the introduction of Notes column, described above, we have added AO_8BAD1B_S_ITEM_PROPERTY table to the database schema. This table stores primary data (not stored anywhere else in JIRA).
The data from this table is exported along other structure data when you do Structure Backup in a human and machine readable form. The table is also exported along with all Structure data during JIRA backup.
We don't expect considerable database load on this table.
5.3. Testing on Staging Environment
There are no particular special areas of interest for load testing and stress testing Structure 4.1. We advise running the same testing procedures as you've done for previous upgrades.
Given the changes described above, you can also test the following:
- Try creating a synchronizer that inserts all issues in JIRA into a test structure. Use Filter synchronizer and JQL "project is not empty". It should succeed up to 100,000 issues.
- Try using a moderately large structure (up to 10,000) rows, add Notes column, enter some values and sort by it. That would place some load on the database to download values for all items.