.. _release_notes_v3.4.x:

====================
v3.4.x Release Notes
====================

Platform Changes
----------------

This release contains a major redevelopment for the offline capabilities
of Peek.

There are significant performance and memory improvements to the vortex
libraries and all plugins containing data indexes.

Major Plugin Changes
--------------------

Introduction of the Diagram PDF Exporter plugin.

v3.4.0 introduces PDF export support for the DMS Network Diagram. This allows
either the visible network or trace context to be exported as a PDF document
which the user can then download. When the Trace Export is selected, the
area of the network which contains the trace is exported. Alternatively,
when Visible Network is selected, the area of the network visible to the
user will be the area exported. Page size, orientation, and maximum pages can
be set to customise the PDF.

v3.4.0 introduces Light Mode, this feature replaces the background of the
network diagram with a white background and inverts only the colours
necessary to be visible on a white background. The initial migration
automatically detects and populates the light mode colours. The colours can
be manually updated if required. Simply clicking the button in the network
diagram will enable light mode, increasing the
readability of the network diagram if required.

Deployment Changes
------------------

There are no deployment changes with this release.

Windows Deployment
``````````````````

.. note:: This release is not supported on Windows.

Windows support might be possible in Peek version 4, however it will have 
a higher purchase and support cost to the customer.

Linux Deployment
````````````````

Deployment for Linux remains the same after the  changes of Peek v3.1.x

Debian: :ref:`debian_install_prerequisites`

Redhat: :ref:`rhel_install_prerequisites`

macOS Deployment
````````````````

Deployment for macOS remains the same after the major changes of Peek v3.1.x

MacOS: :ref:`macos_install_prerequisites`


Windows Deployment
``````````````````

Nil.

.. note:: The windows deployment will change to use Windows Subsystem for Linux
          in a future release.

Migration Steps
---------------

OpenStreetMap Loader Lookups File Migration
```````````````````````````````````````````

#. Locate the **lookups.csv** file. The file location can be found in the
   configuration tab of the OpenStreetMap Loader Loader in Peek Admin.

#. Open the **lookups.csv** with a spreadsheet editor. Eg. Microsoft Excel

#. Remove :code:`Point` from the **acceptedGeometries** where **isRoadName** =
   :code:`TRUE`. Eg. :code:`LineString, Point` becomes :code:`Linestring`

#. Duplicate all rows where **isRoadName** = :code:`TRUE`.

#. In the original rows; Update the **option.isRoadName** to :code:`FALSE`.

#. In the new duplicated rows:

    #. Append the **importHash** value with :code:`_road_name`. Eg.
       :code:`osm:highways:motorway1` becomes
       :code:`osm:highways:motorway1_road_name`

    #. Increment the **level.order** value by :code:`1`.

#. **Restart** Peek Agent :code:`sudo systemctl restart peek_agent`

#. **Touch** the geojson file. The file location can be found in the
   configuration tab of the OpenStreetMap Loader Loader in Peek Admin. ::

        touch [GEOJSON FILE NAME]


.. note:: Synerty recommends running the Initial Load Attune Blueprint for
    faster loading of the PowerOn data.
    You can download the Attune Community Addition App for Windows or MacOS FOR
    FREE from `<www.servertribe.com>`_

v3.4.15 Migration Steps
```````````````````````

#. Stop Peek using :code:`stop_peek.sh`

#. On the node which hosts the Peek database as the Peek user:

    .. code-block::

        psql <<'EOF'

        TRUNCATE pl_enmac_graphdb_loader."GraphSegmentLoadState";

        TRUNCATE TABLE pl_graphdb."GraphDbSegment";
        TRUNCATE TABLE pl_graphdb."GraphDbChunkQueue";
        TRUNCATE TABLE pl_graphdb."GraphDbEncodedChunk";

        TRUNCATE TABLE pl_graphdb."ItemKeyIndex";
        TRUNCATE TABLE pl_graphdb."ItemKeyIndexCompilerQueue";
        TRUNCATE TABLE pl_graphdb."ItemKeyIndexEncodedChunk";

        EOF

#. Restart Peek with :code:`restart_peek.sh`

User Acceptance Test Results
----------------------------

Peek v3.4.0 User Acceptance Test results can be found at:
:ref:`release_notes_v3.4.x_uat`

v3.4.16 Changes
---------------

Improvement
```````````

* [PEEK-2473] - Peek DMS Diagram AD Restricted World Views Requires restrict
  users FROM group

* [PEEK-2484] - Landing CoordSet logic to instead first in order, add new
  order field

v3.4.15 Changes
---------------

Bug
```

The following bugs are fixed.

* [PEEK-2437] - Vortex - Large payloads sent from browser JS to server
  PY got corrupted

* [PEEK-2331] - Platform Worker - Logs truncated when rotating daily

* [PEEK-2353] - Diagram - Empty gridKeysForArea in diagram sent to EDNAR

* [PEEK-2371] - Diagram PDF Exporter - line drawn polyline start to polyline end

* [PEEK-2465] - Diagram PDF Exporter - Exporting from worldviews with
  _ in name caused export to fail

* [PEEK-2293] - Diagram PDF Exporter - OpenStreetMaps exporting,
  some shapes hide others

* [PEEK-2408] - Diagram PDF Exporter - Plugin Type Error onclause

* [PEEK-2449] - Diagram PDF Exporter - text scale attribute typos fixed

* [PEEK-2385] - Diagram PDF Exporter - doesn't export ModelCoordSet
  background color

* [PEEK-2460] - ENMAC Diagram Loader - Importing invalid pages logged as ERROR,
  not WARNING

* [PEEK-2445] - ENMAC Diagram Loader - Added logging and handling
  for stderr from Page and Overlay Imports

* [PEEK-2461] - ENMAC Diagram Loader - File names with ampersand characters
  cause file name split

* [PEEK-2350] - ENMAC Connectivity Loader - Incremental import causes
  Segment unique key violation

Improvement
```````````

* [PEEK-2464] - ENMAC Diagram Loader - Improved the log message
  for shapes not being imported

* [PEEK-2402] - Diagram PDF Exporter - Added support to configure line thickness

Task
````

* [PEEK-2377] - ADMS Diagram - Add support for restricting coord set access to
  LDAP groups

v3.4.14 Changes
---------------

Bug
```

* [PEEK-2319] - Email NAR fixed function has no attribute 'query' when \
  sending email

* [PEEK-2329] - EDNAR Plugin Frontend Updated Build Modules

* [PEEK-2333] - Text Scalability Factor of Zero Displays in the Diagram

* [PEEK-2340] - EDNAR Plugin Frontend Updated Build Modules

* [PEEK-2322] - Diagram PDF Export and Schedule Controller do not consume \
  system resources

Task
````

* [PEEK-2323] - EDNAR Plugin Updated patches to core-device

v3.4.13 Changes
---------------

Bug
```

* [PEEK-2292] - Improved Vertical Positioning of multiline text

* [PEEK-2297] - Peek DispColor.darkColor migration fails to upgrade from v3.1.10

* [PEEK-2300] - LiveDB Loader configuration allows disconnect to prevent \
  memory leak

* [PEEK-2302] - Initial Load of Layers DispLayer.Opacity does not update as NULL

Task
````

* [PEEK-2282] - Update the GraphDB and DocumentDB office documentation


v3.4.12 Changes
---------------

Bug
```

 * [PEEK-2266] - OpenStreetMap Loader - Loader does not load complex polygons, \
   like lakes

 * [PEEK-2267] - OpenStreetMap Loader - Failing an import will continuously  \
   retry, using lots of CPU

 * [PEEK-2249] - OpenStreetMap Loader - CODE cleanup, Updated variable names

 * [PEEK-2252] - OpenStreetMap - Road names do not render as configured colour

 * [PEEK-1566] - Diagram - Fixed 'fillColor' to polygons in Peek Diagram

 * [PEEK-2002] - Diagram - Moved Objects are no longer duplicated in diagram

 * [PEEK-2247] - Diagram - Fxied nuisance error messages from color validation \
   using deprecated .color attribute

 * [PEEK-2283] - Diagram - No longer displays blank canvas with frequent \
   live updates

 * [PEEK-2260] - Diagram - Fixed non selectable shapes being selectable in \
   network diagram when shape has no key

 * [PEEK-2221] - Diagram Editor - Peek doesn't cache Diagram Branches for offline use

 * [PEEK-2222] - Diagram Editor - Peek doesn't cache conductor classes for offline use

 * [PEEK-2223] - Diagram Editor - Branch does not appear in the Edit Branch list \
   while online.

 * [PEEK-2238] - Diagram Editor - Branch does not appear in the Edit Branch list \
   while offline when created offline.

 * [PEEK-2239] - Diagram Editor - Diagram does not renders line arrow heads

 * [PEEK-2256] - Diagram Editor - Edit handles shrink and grow with zoom, they \
   should always appear the same size

 * [PEEK-2259] - Diagram Editor - Text align options are missing from properties

 * [PEEK-2261] - Diagram Editor - Fixed polyline force straight line feature when \
   holding shift key

 * [PEEK-2250] - User Plugin - Fixed user migration to deduplicate usernames once \
   converted to lowercase

 * [PEEK-2254] - Device Plugin - CODE cleanup, fixed 'NoneType' object attribute \
   'notifyOfTupleUpdate' on shutdown

 * [PEEK-2265] - Diagram PDF Exporter - Fixed PDF Exporter Unclosed database sessions

 * [PEEK-2241] - Vortex - VortexJS does not reconnect websocket after disconnect

Improvement
```````````

 * [PEEK-2237] - OpenStreetMap Loader - Added fill colour for water \
   to default CSV Lookups file 

 * [PEEK-2253] - OpenStreetMap Loader - Loader now accepts null value colours in lookup.csv

 * [PEEK-2244] - OpenStreetMap Loader - Added support for importing road names \
   separately to the polylines from the CSV file. This allows road names to be different \
   levels, layers and colours to the roads.

 * [PEEK-2268] - OpenStreetMap Loader - Added support for search indexing map \
   feature names

 * [PEEK-2257] - Diagram Editor - Improved polylines drawing support in diagram \
   editor. There is now a big green tick to finish drawing the polyline/polygons

 * [PEEK-2258] - Diagram Editor - Editing the text of a text shape is now much easier \
   with the new pencil button and a text box that pops up.

 * [PEEK-2271] - Diagram - Removed name field size limit from lookup tables

 * [PEEK-2243] - Diagram - Made Background Colour configurable in \
   ModelCoordSet, allowing grey background for OpenStreetMap only canvases

 * [PEEK-2245] - Diagram - Added support for opacity settings per layer \
   and fixed opacity overlapping appearing less transparent

 * [PEEK-2246] - Diagram - Made "light mode button shows" configurable per canvas

 * [PEEK-2251] - Diagram - Fill colours can now have PNG overlays, this is great \
   for adding trees in grasslands.

 * [PEEK-2272] - Diagram - Improved diagram grid loading strategy. \
   The grids are now loaded from the center of the screen outwards. \
   See if you can notice the diffence.

 * [PEEK-2273] - Diagram - As the diagram zoomed in and out, the diagram would flicker black \
   when the layer/sizes of grids changed. The flicking black is now gone. \
   This is achieved by delaying applying the declutter levels to the old grids \
   until the renderer has received the center grid for the new set of grids.

 * [PEEK-2274] - Diagram - Improved performance when rendering curved text


v3.4.11 Changes
---------------

Bug
```

* [PEEK-2189] - Updated ScopeDetailsChangedTuple toUser assignment to toUserId

Improvement
```````````

* [PEEK-2198] - Added support for wrapping text on whole words.

v3.4.10 Changes
---------------

Bug
```

* [PEEK-2193] - Users with no email in AD cause AttributeError: "NoneType' \
  object has no attribute "lower' Exception

* [PEEK-2194] - Table vaccumes throw AttributeError: 'function' object has \
  no attribute 'bind' Exception

* [PEEK-2195] - Peek Admin does not show Offline Cache stats

* [PEEK-2197] - Peek core_device stops processing all location updates and \
  queues indefinitely in memory on insert fail

v3.4.9 Changes
--------------

Bug
```

* [PEEK-2191] LiveDB Realtime ECOM loader ValueError expects 6

v3.4.8 Changes
--------------

Bug
```

* [PEEK-2190] Corrected Component Class loader loses Object type.

v3.4.7 Changes
--------------

Bug
```

* [PEEK-2188] Corrected Offline caching from not loading with persistent \
  cache times

v3.4.6 Changes
---------------

Bug
```

*   [PEEK-2179] - TupleDataOffline0bserverService.storeDataLocally \
    now works without an active cache

*   [PEEK-2180] - Reduced the time VortexStatusService takes to detect airplane \
    mode and network disconnects

* [PEEK-2181] - Order Search results by the object type order

* [PEEK-2182] - Order Search results with same rank by name

* [PEEK-2183] - Offline Searching no longer returns duplicate results

v3.4.5 Changes
--------------

Bug
```

* [PEEK-2174] - Peek Offline Caching reports network slow before bandwidth test

* [PEEK-2177] - Offline Caching start throws exception `tuplesToStore.length`

Improvement
```````````

* [PEEK-2175] - Persist last cache time across app closes

* [PEEK-2176] - Add Force Cache Start button to field app for offline caching

v3.4.4 Changes
--------------

Bug
```
* [PEEK-2160] - Corrected Peek Field receiving GPS updates

v3.4.3 Changes
--------------

Bug
```

* [PEEK-2134] - OpenStreetMap Diagram loader \
 - invalid NaN value in projected coordinates

* [PEEK-2136] - OpenStreetMap Diagram Loader  \
 - import data to DocDB has duplicate keys

* [PEEK-2139] - OpenStreetMap Diagram Loader Fixed geojson
 file changes and re-imports

* [PEEK-2152] - Vortexjs no longer detects when websocket \
 is logged out - connections dropout from last fix

* [PEEK-2159] - Peek PDF Export bottom text not correctly aligned

Task
````

* [PEEK-2138] - OpenStreetMap Diagram Loader \
 - Update coordinate conversion settings to use reference points

v3.4.2 Changes
--------------

Bug
```

* [PEEK-2152] - Vortexjs no longer detects when websocket is logged out

* [PEEK-2154] - Added admin configuration for offline caching timers \
 and blocked network metric while caching

* [PEEK-2157] - Core Search order field in search object types doesn't \
 change order of tabs in search results

Improvement
```````````

* [PEEK-2156] - Added Search Equipment Type to Equipment Loader



v3.4.1 Changes
--------------

Bug
```

* [PEEK-2130] - Core Device useSsl is not correctly detected in web version

* [PEEK-2132] - ENMAC Diagram Loader Add handling of Control Zones that have no parents

* [PEEK-2133] - Peek Diagram PDF Plugin Fix Diamond Rotation

Task
````

* [PEEK-2131] - PDF Export Remove required indicator from checkboxes on export screen

v3.4.0 Changes
--------------

Bug
```

* [PEEK-1559] - Add diagram support for wrapping text after X chars

* [PEEK-1902] - iPads on slow network connections spawn hundreds of websocket connections

* [PEEK-1904] - iPads Quitting iOS app and re-opening it again causes re-caching to occur

* [PEEK-1905] - Add timeout and retry for iPads caching request

* [PEEK-1952] - Update Search UI to use "initialLoadComplete" flag

* [PEEK-1956] - Fix peek-plugin-livedb to write to database in logic service

* [PEEK-1957] - Update username login to replace upper case characters to lower

* [PEEK-1976] - Correct LiveDBItem database UnicodeDecodeError

* [PEEK-2007] - Inserting iPad GPS Location is blocking in reactor thread

* [PEEK-2008] - Update dbSessionCreator to not allow plugins to run database work in main thread

* [PEEK-2009] - Offline status updates cause TupleAction timeouts

* [PEEK-2013] - Improve support for users with special characters in password

* [PEEK-2014] - Add general setting LDAP Enable @domain support

* [PEEK-2015] - Offline Caching on slow connections saturates websocket

* [PEEK-2016] - Ldap builtins.KeyError userPrincipalName

* [PEEK-2019] - Offline Loaders lose state

* [PEEK-2021] - Remove file watching code and replace with LoopingCall for geojson file

* [PEEK-2022] - Missing default OSM settings when enabling plugin

* [PEEK-2026] - VortexStatus error and information logging were swapped

* [PEEK-2027] - Correct Start log messages to print sslEnableMutualTLS instead of sslEnable

* [PEEK-2028] - Fixed TupleDataOfflineObserverService to filter from payload

* [PEEK-2029] - Vortexjs undefined has no attribute SQL

* [PEEK-2032] - Diagram zooming in while hovering over a tooltip area triggers the docdb tooltip

* [PEEK-2034] - Remove angular circular references

* [PEEK-2035] - Multiple searches are run at once as letters are typed

* [PEEK-2036] - Agent Timeout retry causes 100% Logic service CPU usage

* [PEEK-2040] - Update Peek Field to serve port 8000 with self signed certificates

* [PEEK-2049] - Throttle GPS Location Updates from iPad

* [PEEK-2050] - Remove upper case from Usernames

* [PEEK-2053] - Diagram Tooltips stay up when panning on iPad

* [PEEK-2054] - Remove Layer list filter case sensitivity

* [PEEK-2055] - Remove Shaking iPad to undo typing support in Peek Field App

* [PEEK-2072] - Update SettingProperty to store as float values

Improvement
```````````

* [PEEK-2018] - Redesign Offline Caching logic to use state machine pattern

* [PEEK-2020] - Update logic API to return all usersLoggedIn

* [PEEK-2023] - Add setting to enable partially indexing alias

* [PEEK-2024] - Add support for indexing component_header.user_reference

* [PEEK-2025] - Add master "Disable All Caching" switch in Admin settings

* [PEEK-2030] - Change TupleDataOfflineObserverService to return an empty \
 array of tuples if askServerEnabled=false

* [PEEK-2031] - Add indication of slow network to home screen

* [PEEK-2033] - Add support for excluding keywords for search engine

* [PEEK-2048] - Make plugin loading failure print useful exceptions

* [PEEK-2104] - Add text shape de-clutter level overrides

Task
````

* [PEEK-1679] - Add the queue checking script to deployment

* [PEEK-1984] - Replace ujson dependency with json

* [PEEK-2000] - Create Defaults typescript file for ServerInfoTuple

* [PEEK-2047] - Improve Peek iOS Icon
