Vol. I, Issue 4

Main Contributing Author: Russell AliBey; Managing Editor: Jessica Dunlap

Welcome back! As a reminder, this newsletter should provide you with content such as:


- IT Project Updates

- Training Opportunities / Recommendations

- Best Practices

- Developer Resources

- IT-Based Portfolio Updates

welcome-back-meme-idlememe-6-300x160 image

- Aurelio Rama (Remote) 3/20

- Rebecca Braun (Fargo) - 2/27


Upcoming

- Elijah Satrom - (Fargo) - Mid May

2023 Q1 Project Accomplishments

COMPLETED:

ESRI Portal Phase 1, 2022 Code Security Self-Reported Items, Map-based DocGen improvements, Hyperscience


ONGOING:

2024 Rollover, .NET Latest, Mapping Portal Phase 2, Angular JS conversion, Separate Sitefinity Repository and Deployment Improvements, OnBase (Automation)

Important Dates


3/15/2023: Largest annual sales closing date


2/15/2023 - 4/15/2023: Change Freeze

In order to support sales closing, during this time

  • Infrastructure changes are limited to security patches and emergency changes only
  • Scheduled software releases occur, but extra awareness around anything that may impact the sales season


5/3 Rollover Comparer returns

  • With the release of 2024 reinsurance year support, Rollover Comparer is returning, ideally, we would reenable Rollover Comparer between the 4/19 and 5/3 downtime releases


You can keep up with releases and other important dates by adding the "NAU-IT Release Calendar" to your shared calendars in Outlook

IT Initiatives Roadmap

2023 H1 IT SRM

During the 2023 IT SRM for H1 held at the beginning of February, leaders from across the development team met to discuss and prioritize IT-sponsored initiatives.


As part of the meeting, the team reviewed the 2022 accomplishments. We made substantial progress on our IT-focused commitments and initiatives including moving the .NET conversion forward, starting our first pipeline deployments to development environments and migrating from TFS to Git for source control management.

The top priorities in 2023 remain the .NET conversion, with security and reliability initiatives rounding out our top 3.


In-flight priorities from 2022 continue to build on groundwork to modernize our technology stack including building out more deployment pipelines and rewriting EASYquote.

Additional items the team prioritized include many developer quality-of-life initiatives aimed at helping the team be more productive as well as improve collaboration and communication

Leadership and Oversight (L&O) Team

Jessica Dunlap, Dave Stahl, Brad Brasel and Russell Ali Bey


Created in mid-2022 the L&O team focus is on supporting IT efforts through collaboration and coordination across teams and disciplines. Additional responsibilities include technical strategy, risk mitigation, and vendor relations.

Changelog

Stuff changes: Overviews and Deep-Dives

WCF transport security

During a security scan, it was found that WCF services were not secure in transit, using unencrypted TCP connections between the client and host. In response to this finding, we updated WCF service transports to use HTTPS. In order to accomplish this, service configuration and clients were updated to use HTTPS, which requires load balancer changes to support the change in transport.


As a result, when you merge PR 3729 into private branches, contact infrastructure to update the service bindings.


More information is available here.


Encryption key changes

Security issues were identified in managing encryption keys used in securing EASYsuite environment settings.

  • The encryption key was stored using UTF-8 which doesn't support high enough entropy (cryptographic randomness) due to loss of precision in binary-to-character conversion. The solution was to migrate from UTF-8 storage to Base64 encoding to maintain correct binary representation.
  • The encryption key was stored beside values encrypted with the key. The solution was to move the key to secure storage and deliver the key through an AD-secured web API and remove the value from environment settings databases.


Migration and troubleshooting information can be found here.


Mapping ESRI Portal Release

The mapping team recently released the technology modernization project to update mapping systems to ESRI Portal. With this release all mapping functions have been moved to Portal and legacy SOCs have been deprecated.


Private branch owners should work with the mapping team to migrate to Portal when merging the change.


More information on the project is available in the feature article below.

2024 Rollover is here!!!


The 2024 rollover will release across two different downtime releases at the end of April and the beginning of May


4/19 Release 1 - Roll schemas and code for RY2024

  • Stage branch will be rolled and changes are applied to Test
  • IT Product team will review items in Test that are inconsistent and reach out to the original task owner to make updates as needed
  • Developers - make sure you are making consistent changes across reinsurance years after the 4/19 release and please be timely with any rollover tasks you may be assigned
  • Reviewers - watch for inconsistent updates in the 2023/2024 code base
  • QA - the post-release Test environment refresh may take longer than usual after the 4/19 release


5/3 Release 2 - Enables 2024 for business usage

  • All new code will need to account for the new reinsurance year


Ideally, we would reenable Rollover Comparer between the 4/19 and 5/3 release


Watch your email for rollover communication in order to help ensure the smoothest transition possible.


SME: Paul Hagemeister

.NET Latest Update


The update to .NET 6 is not like previous .NET upgrades. There are many incompatibilities that exist between .NET framework and .NET 6 that must be resolved before the update. The project has been working to eliminate incompatibilities between our current underlying framework code and .NET 6.



Some key initiatives we've been working on

  • .csproj file updates to the new SDK style format
  • Evaluation of the .NET managed Oracle client and its lack of support for TAF (Transparent Application Failover) and investigations into FCF (Fast Connection Failover) with connection pooling
  • Update of WCF clients to WCF connected service format
  • Removal of incompatible NuGet packages and usage (C1 Zip, AntiXSSLibrary)
  • Many more....

 

To migrate, any top-level dependencies must be migrated first. During this first phase of the project, we have been working on core dependencies like Nau.Framework, Nau.Pdf, NAU, Nau.Security, and the Nau.R* assemblies.


We're targeting the services as one of the first stepping stones to the rest of the solution as it has a more manageable set of dependencies. Additionally, there have been production issues in these services during key processing times for the business that upgrading and segmentation of our services may help alleviate.


In order to help with the .NET conversion

  • Please don't use the deprecated WebHttpRequest, please use the HttpClient instead
  • If you need to add new WCF service references, add them as connected services instead
  • Avoid use of the System.Web assembly
  • Don't use C1.zip, use built in zip functionality
  • Don't add UI functionality such as Windows Forms or WPF to Nau.Framework


SME: Jeremy Honl, Chris Thompson

ESRI Portal Episode 1 - Released!

The first phase of the ESRI Portal Modernization Project was released to production on February 8th.


The changes moved any code interacting with Dynamaps over to the Portal Dynamaps instances and deprecated the legacy SOCs. In addition, several of the major mapping windows inside of EASYwriter Pro were moved off the Dynamaps layer completely. These included EASYmapping, QuickRIVIR, Point of Reference Editor, and High-Risk Land Viewer. Field Insights was moved to the Portal layers prior to the release of the main ESRI Portal project.


If you’d like to check out the shiny new non-prod portal site it’s available here.


What does this mean for you?


If you’re a branch owner that uses Mapping services in your branch, you’ll need to submit a request to the MappingProductTeam (ITMappingProductTeam@naucountry.com) to have your environment deployed to the portal before you merge the latest code from Test. Once your branch is set up the transition should be relatively seamless as all the services that were previously present should be pointed at the Portal Dynamaps instances automatically with the code changes introduced into Test branch.

The mapping team has already reached out to branch owners that were listed as using mapping in their environments to get your environment deployed. So if you haven’t heard from us and need mapping in your environment in the near future, let us know.


What’s Next?


The next phase of the Portal project will include an update to the 100.15.1 ArcGISRuntime for .Net code, as well as converting all our image generation for documents over to use the map export geoprocessing services built into the portal. This should make generating document images much more streamlined and reduce the amount of work we do in code to stitch together various imagery sources.


Shortly after that, we plan to remove the Dynamaps references from the remaining mapping accessory windows in EWP. Including the Perennial Annual Worksheet (PAW), Grid Locator, and High-Risk Policy Field Viewer windows.


We’ll also be working with the Mobile and Web Product Teams to get their systems transitioned off Dynamaps onto the new layers and web maps soon. 


SME:: Alex Gonzalez, Brad Brasel, Mick Huska

B&D's Corner


  • Upgraded all Citrix components to the LTSR
  • Created new Pipelines for Citrix EWP, SUM, Rollover Compare and Fund Assignment
  • Created new Pipelines for all environments for the Precision Farming team to utilize with their deployment to both NonProd and Production
  • Build servers have been upgraded to VS 2022
  • SQL Server 2012 and 2016 instances have been removed
  • Disconnected EQ Local DB has been upgraded to SQL 2019
  • Support of IT Product Team with Security changes for our tools
Security

QBE Information Security Policy Review


QBE provides an Information Security Policy that we review annually as a team.


In the most recent review, we found that we have an opportunity to improve our security posture through design and code review.


  1. Remove unnecessary sensitive information from programs, e.g., authentication details, developer’s comments in HTML or JavaScript, or sensitive information about the organization, prior to deploying them in the live environment
  2. All obsolete code and partially developed code for future features MUST be removed and the system retested prior to release. NOTE Commenting out lines of code does not constitute enough removal.


Reviewers - please watch for sensitive information in source files. Source files would include configuration, code, and interface definitions, anything that would eventually be deployed in production. When we identify sensitive information we should look for more secure storage solutions.


Designers - when creating new solutions or deprecating old solutions, please carefully evaluate the code being released to production.

  • When deprecating old code, be sure to remove unused code paths as well as all dependencies that have become obsolete.
  • When designing new systems to be released in phases, evaluate the code that supports the current release as well as the code to support upcoming features. Use branching strategies to keep as-yet unused code out of production.


Please reach out to the Leadership & Oversight team if you have questions.

 

Passion Group Updates

What are Development Passion Groups at NAU?

Passion groups are groups of IT staff that are motivated to affect positive change in any given area of our systems. Below is a list of active groups. If you see an area that isn't listed but needs focus, work with Russell AliBey.

Framework Evolution (Russell Ali Bey):

  • Define the goals, priorities, and strategy for the ongoing evolution of our framework.
  • Includes all aspects of performance, security, UX, and extensibility


Mapping Passion group (Alex Gonzalez):

  • Focuses on all aspects of Performance, Security, UX, and extensibility related to mapping
  • Automating the mapping deployment

User Experience

  • UX Team (Chris Imdeike)
  • Email Standards (Paul Segovia)
  • Documents (Chad Eddy / Mat Domier)


Performance

  • Task Dispatcher (Mat Domier)


*If you are interested in participating in one of these active groups, reach out to the Passion Group owner listed for details.

 

Learning Bites Library

Learning Bites are interactive sessions that feed employees information that will help manage your well-being or build your expertise. In case you missed the live sessions, they are all compiled here: Link

 

Upcoming Trainings

 

Product Team Overviews

  • Mobile - April 27
  • Mapping - May 25
  • Web - June 22


Lunch and Learn

  • Oracle Deadlocks. What/Why/How - May 4

Development Best Practices


Oracle Maintenance (Paul H.)


During the Rollover project, some opportunities for improvement were discovered in how we maintain Oracle source code

  • Grants - don't add grants to spec or body files, use separate grants in the Oracle\DDL folder
  • Dropping objects - remember to remove existing schema files from source control when dropping Oracle objects to prevent them from returning during Rollover
  • Triggers - always specify the table owner when creating a trigger
  • Standalone scripts - please remember to create any standalone scripts in the Oracle\DDL folder, please don't use the Oracle root folder or Oracle\Utility


Oracle DDL commenting to document our database schema


Adding comments to columns and tables in Oracle is a great way to document the contents of the columns and tables in our database. We recommend creating comments on any new tables and columns you add to the database. As well as adding comments if you’re modifying any existing tables or columns.


To add a comment once an object has been created, you issue comment commands like this:


COMMENT ON TABLE [TABLE_NAME] IS 'Comment string goes here.'

COMMENT ON COLUMN [TABLE_NAME].[COLUMN_NAME] IS 'Column comment goes here'


Then they’ll show up when you describe the table either from the command window or right-click in PL/SQL Developer


This helps us build a self-documenting database that’s easier to maintain and shares knowledge across our team easily.


Helpful comments include

  • Domain item types referenced by columns
  • Constraints or oddities about data that aren't easily expressed in the DDL
  • Intended use of tables such as the process they support


WCF, HTTP, and Streams (Bob C.)



During testing the conversion of WCF service transports from TCP to HTTPS we initially ran into a lot of timeout/stalling errors. Most of these were obvious: Document Generation was receiving PDF data over Streams, but the received Stream wasn't being closed properly. An open Stream holds the HTTP connection open, even if the Stream object falls out of scope. Eventually, DocGen would use up all the connections we gave it and stall out.


The lesson going forward is that HTTP connections are more sensitive to an unclosed Stream than TCP connections. We need to be vigilant when dealing with Streams, even if we think it's just a placeholder, we need to ensure we are closing it.


Bob provided a deep dive you can read here.

Visual Studio 2022


Latest versions of Visual Studio 2022 introduced regressions that have impacted our team



  • 17.4 issues are listed here
  • 17.5 issues are listed here


Android SDK Manager issues introduced in 17.4 have persisted into 17.5

  • Matt Cook has provided some workarounds to the issues with Android here
 
 
Developer Resources

 
 
 
// STAY CONNECTED //
Facebook  Twitter  Linkedin  Youtube