Changelog 2016
December 2016
New Features
OAuth Provider
Exposed OAuthProvider (#15)
Better OAuth integration
Fixes
Fixed bulk-edit not working on User (#12)
Fixed NRE when saving existing group
Fixed issue with Excel rows using 1-based index
Security
Increased entropy for new report token
Don't send HSTS header when running on localhost
Maintenance
Translations improvements (#17)
Made route suffixes opt-in
Don't log ThreadAbortException/TaskCanceledException in ExecuteAsync
Set Label when setting Name on new POA
Don't write to disk if hash match previous value
Allow passing of lang parameter for GetReport
Removed unused code
Use proposed routes
Added id for the GetQuery uri
Changed version logic for git support
Made Excel write logic public
Added gitignore
Fixed UTF-8 filename issue
Renamed files with special characters
November 2016
New Features
Transactional Logic
Added transactional logic (opt-in)
Added POActions.OnBulkSave
BREAKING: Removed default code from OnRefresh
Builder Updates
Updated solution to VS2017 RC (15.0)
Use Web² by default
Changed default Web template to include recommended options in web.config
Fixes
Fixed issue with PU Items not being sorted when added using AddQueriesToProgramUnit action
Fixed issue when creating new project
Maintenance
Also send referrer to CDN for web2 requests
Extra information when logging
Fixed issue with UpdateVidyanoVersion.exe
Updated NuGet packages
Added more actions that should be ignored for creating a transaction
Changed default ValidationRulesFailed message
Show validation error from hidden attributes in PO Notification
Show MultiLine as hint for TranslatedString
Allow new PU
Added POA.FromServiceString
Performance: only need to sort once when adding multiple queries
October 2016
New Features
Verbose Model JSON
Added ability to save/load verbose model.json
FileSystemWatcher for model changes
Session support for verbose model
Added ability to ignore model hash
User Management
Added ability to rename user from code
Fixed cache invalidation
User rename tweaks
Fixes
Fixed issue when synchronize needed to add new settings
Fixed NRE when display attribute of POAWR does not exist as property
Fixed issue with detail attributes being created together with their parent
Maintenance
Advanced: Added ability to change or disable IP used for auth token
Always prefer using the request uri with correct schema (X-Forwarded-Proto)
Keep current DisplayAttribute on POAWR when changing lookup and it exists
Disable cache-control when serving content from cdn
Changed AttributeCombinationIsUnique message
BREAKING: Default transactions behavior for OnSave
Removed unneeded type checks in ToServiceString()
Added ability to handle Stream.ToServiceString()
September 2016
New Features
Swagger API Definition
Added option to define swagger api definition
Added SwaggerContactAttribute
Allow defining of response type
Dialog Actions
Added new Action.ShowedOn option Dialog
Show custom action in a Persistent Object Dialog
API Extensions
Extended API to support commonly used cases (versioning, authorization, paths)
Fixes
Fixed issue with two factor login
Fixed issue with IsWord rule showing wrong message
Fixed issue when renaming PO
Fixed issue with default value always being set for numeric/date attributes
Maintenance
Build Vidyano.Core as NuGet package
Allow native navigation for websites
Fix common model.json merge issues
Websites: Don't use Referer
Fixed issue when working with Cloudflare Flexible SSL
Also convert Manager.RequestUrl to https if forwarded by Cloudflare
Always make sure that new user's name is trimmed
VerboseLogs: Reduced time when cleaning up verbose logs from 4h to 15min
VerboseLogs: Improved database calls when cleaning up verbose logs
VerboseLogs: Delete per maximum of 5000 log records
Allow setting of Vidyano.Web2Version app setting to url for redirecting
August 2016
New Features
Two-Factor Authentication (2FA)
Implement basic 2FA checker
Store two-factor token in user table
QR code generation for 2FA
Show code label on sign-in page
Invalidate auth tokens when adding two-factor authentication
Fixes
Fixed issue with new dates that aren't visible
Fixed issue when filtering on null
Fixed unknown NRE issue
Fixed issue when SaveDetails is called without a context
Fixed translations issue when websites query was opened
Fixed bulk edit issue on PO
Maintenance
NoDatabase: Correct store user profile
Don't block repository schema upgrade when development is disabled
Tweaked ExecuteQuery, get count/totalItems first, if zero skip rest
Ensure paging information is correct
Ignore orderby when counting enumerable sources
Use dynamic Where directly on IEnumerable instead of forcing AsQueryable
Pass json to business rule if using translated string attribute
Return 200 OK for Poll if everything is OK
Inline local script files only
Performance: Prefer generating parameterized queries
Prefer nl-BE culture when browser reports nl
Use UseWeb2Home app setting when serving cdn
Fill in default offset for first new POA
Added missing default translation for Edit
Updated RegEx to detect IE version
Made outdated page's images working on IE10+
Added Json helper method on CustomApiController
Added hook for single sign-out call from ACS
Enabled default values logic on POA
July 2016
New Features
Wizard State
Added AsWizard state behavior
Wizard PO support
Default Values
Added POA.DefaultValue
Allow custom default value
Added DefaultValue/CustomDefaultValue to POABuilder
Web2 CDN Handler
Added simple Web2 handler that uses CDN
Allow override for Web2 version on CDN
Fixes
Fixed issue when you change a POAWR that has a linked POAWR
Fixed issue with GetReport to xml and 0x00
Fixed Azure issue when proxying CDN
Fixed issue when NewWebComponent namespace ends with WebComponents
Fixed issue with verbose logging using database
Maintenance
Added OnHelp hook
Removed hardcoded dependency for WindowsAuthentication on HttpContext
Fallback to WindowsIdentity.GetCurrent() instead of null for GetClientIdentity
BREAKING: Don't fill in default value for New PO if not set explicitly
Only switch to nullable type if current value is null
Allow loading of QueryColumn by Query Id and Attribute Name
Made RetryActionException public
Tweaked VisualStudioIntegration for new Web² logic
Refresh attributes tab when changing groups/tabs on PO
Rematerialize wizard PO
Allow relative resources during vulcanize
Always include salt in PO.SecurityToken to prevent misuse of encrypt oracle
Updated NuGet packages
Only ignore default value on value types if the attribute is visible on new
BREAKING: Removed strong name signing
Moved Jurassic from embedded to NuGet
Use correct datatype for custom default value attribute
Made App_Data\Help and App_Data\Icons folders optional
Show session attribute selector for default value
MultiLineString can be changed to ComboBox/DropDown
Log less requests to verbose logs
Don't log http exceptions except for 500
June 2016
New Features
Custom API Controller
Extract base CustomApiController class from CustomWebController
Better API abstraction
Notification Duration
Added NotificationDuration
Control notification display time
Auth Token Validation
Added WebController.ValidateAuthToken
Exposed HttpEx
Fixes
Fixed issue with delete and check violation throwing ValidationException
Fixed issue when deleting query
Fixed issue with adding custom filters
Maintenance
NoLicense: Don't use License settings anymore
Websites: Classic -> Legacy and Web2 -> Default
Added option to include custom filters from code
Splitted WebsiteConfig from VidyanoDbCache
Show multiline tool tip editor on POA
Added POA.ToggleRule
.NET detection for 4.6.2/4.6.1
Removed more uses of IsTrial checks
Added PersistentObjectAttributeAsDetail.RefreshObjects method
Fixed issues on IncludeFilter
Allow custom default filter
May 2016
New Features
Retry Action
Added ability to ask end-user for confirmation/more information during ExecuteAction
Handle retry logic on actions
Added ability to include PO with RetryAction
Prefer options for RetryAction over labels
Fixes
Fixed issue with MinValue/MaxValue business rule on nullable properties
Fixed issue with multiple CORS handlers
Fixed pages issue in Websites
Fixed issue with parent reference attribute using wrong Value with OnNew
Maintenance
Added ability to specify if SelectAll is enabled for a Query
Tweaked outdated browser behavior
Include correct HTTP code when requesting report that has an error
NoLicense compilerflag
Hide/disable other code that uses license
Fixed windows authentication issues
Keep correct Root prefix when registering routes
Correctly detect website when using Root prefix
Fixed issue with DefaultOptions being cached on POA
Don't use License settings anymore
NoDatabase: Don't add License setting in settings.json after activating
Updated NuGet packages
Hide crawler related properties/methods on CustomWebController
Don't try to create proxy types when NoDatabase is enabled
Don't fail when AsDetail attribute' Objects is set to null
Added option for AsDetail attribute to mark detail obj as deleted
Allow configuration of allowed levels for projection
Don't use .Include for projected custom queries
Hide group on PUI if Name contains backslash
Update ObjectId to match name for PU/PUI on SaveExisting
Fixed text search issue on datetime's "today"
Send QueryFilter breadcrumb during OnLoad
April 2016
New Features
Builder Enhancements
Allow removing of attributes on PO
Added DataTypes.Determine method to detect the best DataType
Allow setting of ReferenceBreadcrumb in builder
Handle extra cases for tabs
Advanced Hooks
Added ability to persist user settings during SaveUserSettings
Added GetKey hook
Added hook for unknown custom action method
Fixes
Fixed issue with routes not being updated when PU/PO/Q is changed/added
Fixed issue with CanRead being false in QueryExecuted when ExecuteQuery is used
Fixed issue with NoDatabase and using Builder
Fixed issue with using builder and adding new attribute
Fixed caching issue when creating or deleting user
Fixed serialize issue with groups in model.json
Maintenance
When creating new group/tab from builder also set Name
Added ability to specify different breadcrumb when displaying on reference (POAWR/QRI)
Fixed issues when bulk-editing POAs
Updated Newtonsoft.Json to 8.0.3
Added more WebsiteTypes
Added code to remove duplicate tabs
Advanced: Expose more information about ProgramUnitItem
Also include Vidyano Service version in feedback
Added ability to export report to csv as well
NoDatabase: Fixed issue with ActivateLicense
Advanced: Add disabled class for QueryResultItem in trial mode
NoDatabase: Fixed issue with activating license
Include more information when setting of a reference attribute fails
Client: include original exception when PostJson fails
Don't show proxy type
NoDatabase: Fixed issue with GroupBuilder and NoDatabase
Websites: Fixed issue with calling GetClientData directly
Added extra rules when working with Security PO
Don't show New action on Persistent Object -> Rights tab when ReadOnly
Less dependency on System.Web (OWIN compatible)
Fixed some issues in reports
Fixed NRE when using http/2 server push
Don't log invalid username/pass if logs are disabled
March 2016
New Features
Visual Studio Integration
Added VisualStudioIntegration
Builder: Support extra buttons from Vidyano.Service
Builder: Don't lock referenced Vidyano.Service
Builder: Fixed issue when NuGet package was not restored yet
Websites Features
Allow groups for reports as well
Advanced: Allow custom profiler entries
Fixes
Fixed issue when creating new DataType
Fixed issue with title being set on vi-app instead of label
Fixed issue with invalid query sortoptions for reports
Maintenance
Expose X-ElapsedMilliseconds when using CORS/Profiler
Websites: Also check virtual path ignoring case
Prefer namespaces for webcomponent's ts
Always use the correct protocol for the Google font
Added option to keep model hashes in separate file
Improved resolving of custom api methods on SchemaWeb class (allow query in uri)
Re-activate license after synchronize
Changed default WebControllerModule behavior to load Web2 if found
February 2016
New Features
Websites and Pages
Initial commit for Websites/Pages
Watch websites files for changes and update cache
Allow reordering of pages
Monitor websites.json for changes and update in-memory model
Added queries to website pages
Added static file serving for websites
Read website and page contents from disk during development
NoDatabase Mode
Load settings from settings.json (with first-time migration)
Load users from users.json (with first-time migration)
Handle Saving/Deleting of users/groups
Handle querying of user inherited rights
Handle creating new user right on existing user/group
Fixes
Fixed issue with old UI and OnAddReference
Fixed issue when saving website changes
Fixed issue when website binding ends with /
Fixed issue with not being able to delete queries anymore
Fixed text search issue when POA labels ends with questionmark
Fixed issue with verbose logging when the TargetContextType contained invalid characters
Fixed retrying of initialization when failed on startup
Maintenance
Expose Website on Manager.Current
Added option to specify Id for GroupBuilder
Keep highest NotificationType when adding a notification
Tweaked default DisableBulkEdit logic
Make sure we register longer binding paths first to allow putting websites in subfolders of existing websites
Added option to hook into ExportToExcel functionality
Client: Added async method to wait for setting attribute value with TriggersRefresh
Fixed typo, fixed issue when sheetname is too long
Use new Group/Tab's name as label if label is empty
Include hostName if different in failed sign in log
Handle Loading/Saving of settings
Also save security settings correctly for NoDatabase mode
Enable Advanced flags from AppSettings
Don't filter PU's items in Management based on Filter method
Don't allow adding detail query with the same name
Don't persist "" to json files
Refactored logic to get all groups for all users in one batch operation
Added ability to specify custom sort expression for POA
Skip cache updates that have been processed already
Added ability to use other queries for AddReference behavior
Use name instead of query instance for AddReference
Expose GetDeterministicGuid extension method
Show DisplayAttribute/LookupAttribute on Attributes query and allow filter
Added Advanced.SynchronizeOptions to tweak default synchronize behavior
Show POA.SortExpression in management
Fixed issues when target context uses base type
Fixed issues when target context uses base type in different assembly
Don't show New button on PUI's Query
Added extra functionality to Builder to get all POs/DataTypes/...
Don't run synchronize schema when json repository is read-only
Fixed issue with Enum/FlagsEnum properties being added as "String"
Advanced: Added PostSynchronize hook
Moved Query's PO attribute in front of Source
Try to use a minimal of offset updates when reordering an Int32 property
Added ability to add query directly to PU
Don't fail on Profiler.Current giving exception when calling ExceptionService.Log
Make sure Vidyano repository is initialized before mapping vidyano routes
Fixed QueryFilters for users without UserSettings
Added extra safety checks for website deletes
Fixed issue with website file deletes triggered by ReplaceIfExists
Fixed website and website page labels when adding new
Websites: Fixed issue when assigning bindings for the first time
Websites: Fixed issue when app is hosted in subfolder
Websites: Allow website without pages
Prefer HostingEnvironment over HttpRuntime
Fixed FlagsEnum distincts issue when underlying type is not int
Added ability to filter dates on hour as well
Fixed issue with ValidationException not formatting the message
Lock on currentList when adding or removing claims
Updated dependencies (CommonMark, Microsoft.WindowsAzure.ConfigurationManager, Newtonsoft.Json)
Added paper element to websites test
Updated Vidyano Web²
Added missing md pages
Ensure consistent ordering for website pages before save
January 2016
New Features
NoDatabase Support
Initial NoDatabase implementation
Settings, users, and groups stored in JSON files
First-time migration from database
DbGeometry Support
Added support for DbGeometry
Spatial data handling
Fixes
Fixed a bug with formatted negative numbers
Fixed issue with LogsVerbose failing when repository database is not available
Fixed issue with verbose logging when the TargetContextType contained invalid characters
Maintenance
Give priority to QueryResultItemValue typehints over QueryResultItem
Change viConfigure actions to use Navigate ClientOperation
Show more information when EfObjectConverter.cctor can't load assembly types
Show logged url from feedback as notification (and hide screenshot if empty)
Make sure LogVerboseData PO uses whole width
Tweaked navigation behavior to only see as fromAction when a parent exists
Fixed retrying of initialization when failed on startup
Reduced time to 15 seconds (from 30)
Removed unneeded system message
Ensure cached HasGlobalSearch is updated
Default minimum IE version incremented to 10 (still supports 9)
Handle missing Vidyano connection string
Added missing parameter validations inside Manager public methods
Improved error messages when query's source is not found
Note: 2016 was a transformative year with 330 commits introducing NoDatabase mode, Websites/Pages functionality, Two-Factor Authentication, Swagger API support, Visual Studio integration, and the transition to Web2 as default.
Was this helpful?