Manual de Uso Datazen-3.0
Manual de Uso Datazen-3.0
Manual de Uso Datazen-3.0
Table of Contents
.INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . .
. . . . . . . . . . OVERVIEW
PRODUCT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . .
. . . . . . . . . . . . .AND
PHILOSOPHY
. . . . .APPROACH
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . .
. . . . . . . . . .ELEMENTS
PRODUCT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. . . . . . . . . . .
. . . . . . . . . . . . . . .OVERVIEW
ARCHITECTURE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . .
. . . . . . . . . . ENTERPRISE
DATAZEN
. . . . . . . . . . . . SERVER
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
...........
. . . . . . . . . . . . . . . AND
INTRODUCTION
. . . . . KEY
. . . .CONCEPTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
............
. . . . . . . .COMPONENTS
SERVER
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
............
. . . . . . . . . .ARCHITECTURE
SECURITY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
............
. . . . . .ACQUISITION
DATA
. . . . . . . . . . . . AND
. . . . . CACHING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
............
. . . . . . . .SCALING
SERVER
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
............
. . . . . . . . . .ARCHITECTURE
CACHING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
............
. . . . . . . . . . . . . .GUIDE
INSTALLATION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
............
. . . . . . . . . . .Requirements
Installation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
............
. . . . . . . . . Datazen
Installing
. . . . . . . . Enterprise
. . . . . . . . . Server
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
............
. . . . . . . . . a. .Typical
Installing
. . . . . . Distributed
. . . . . . . . . . .Deployment
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
............
. . . . . . . . . . . Shared
Configuring
. . . . . . .Caching
. . . . . . . .with
. . . . memcached
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
............
. . . . . . . . . . . Shared
Configuring
. . . . . . .Caching
. . . . . . . .with
. . . . Redis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
............
. . . . . . . . . . . Shared
Configuring
. . . . . . .Caching
. . . . . . . .with
. . . . Azure
. . . . . Cache
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
............
. . . . . . . . . . . ADFS
Configuring
. . . . . .authentication
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
............
. . . . . . . . . .Installation
Advanced
. . . . . . . . . . Scenarios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
............
. . . . . . . .Best
Security
. . . . Practices
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
............
. . . . . . . CONFIGURATION
INITIAL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
............
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Authentication
............
. . . . . . Users
Initial
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
............
. . . . .Configuration
Hub
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
............
. . . . . . . . . . Initial
Publishing
. . . . . .Content
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
............
. . . . . . .THE
USING
. . . .CONTROL
. . . . . . . . . PANEL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
............
. . . . . .Creating
Batch
. . . . . . . . Users
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
............
. . . . . . . . . .KPIs
Managing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
............
. . . . . . . . . .Dashboards
Managing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
............
. . . . . Access
Data
. . . . . . Concepts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
............
. . . . . Connections
Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
............
.Managing
. . . . . . . . .Custom
. . . . . . . Maps
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
............
. . . . . . . . . .Hub
Managing
. . . . Users
. . . . . and
. . . . User
. . . . Groups
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
............
. . . . . . . . . .Permissions
Managing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
............
. . . . . . . . . .Custom
Managing
. . . . . . . Branding
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
............
. . . . . . . . . .Email
Managing
. . . . . Templates
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
............
. . . . . . . . . .the
Managing
. . . Dashboard
. . . . . . . . . . Runtime
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
............
. . . . . . .THE
USING
. . . .WEB
. . . . VIEWER
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
............
. . . . . . . . . Dashboards
Accessing
. . . . . . . . . . . and
. . . . KPIs
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
............
. . . . . . . . . . . Public
Configuring
. . . . . . Access
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
............
. . . . . . . . . . . Integrated
Configuring
. . . . . . . . . .Windows
. . . . . . . . Authentication
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
............
. . . . . . . . . . .Datazen
Embedding
. . . . . . . .Content
. . . . . . . Into
. . . . Custom
. . . . . . . Apps
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
............
. . . . . . . . . . .Datazen
Embedding
. . . . . . . .Content
. . . . . . . Into
. . . . SharePoint
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
............
. . . . . . . .ADMINISTRATION
SERVER
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
............
. . . . . . . . . Services,
Windows
. . . . . . . . IIS
. . .Sites,
. . . . .and
. . . .Application
. . . . . . . . . . Pools
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
............
. . . . . . . . . . . . . Settings
Configuration
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
............
. . . . . Service
Core
. . . . . . .Settings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
...........
. . . . . Acquisition
Data
. . . . . . . . . . .Service
. . . . . . Settings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
...........
. . . . . . . . Rendering
Datazen
. . . . . . . . . .Service
. . . . . . Settings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
............
. . . . . . . .Panel
Control
. . . . . Settings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
............
. . . . . API
Web
. . . Configuration
. . . . . . . . . . . . . Settings
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
............
. . . . . . Logs
Server
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
.............
. . . . . . . and
Backup
. . . . Restore
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
.............
. . . . . . . . . . Maintenance
Repository
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
.............
. . . . . . . . . . .AND
CREATING
. . . . .PUBLISHING
. . . . . . . . . . . . DASHBOARDS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
............
. . . . . . . . . . . . . DESIGNER
DASHBOARD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
.............
. . . . . . . . . . . . . RUNTIME
DASHBOARD
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
.............
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
DATA
.............
. . . . . Model
Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
.............
. . . . . . . . . Dashboard
Preparing
. . . . . . . . . . .Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
.............
. . . . . . . . with
Working
. . . . .Excel
. . . . .Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
.............
. . . . . . . . with
Working
. . . . .Live
. . . .Data
. . . . .Sources
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
.............
. . . . . . . . with
Working
. . . . .Simulated
. . . . . . . . . Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
.............
. . . . . . . . . . . . . . NAVIGATORS
CONFIGURING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
.............
. . . . . . . . . . . . . . VISUALIZATIONS
CONFIGURING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
.............
. . . . . . . . . . . .DASHBOARDS
PUBLISHING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
.............
.ADVANCED
. . . . . . . . . . TOPICS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
.............
. . . . . . . . . . . . . .Data
Parameterized
. . . . Views
. . . . . . and
. . . .Load
. . . . .on
. . Demand
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
.............
. . . . . . . . . . . Personalized
Configuring
. . . . . . . . . . . .Data
. . . . .Views
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
.............
. . . . . . . . . . . . . Row-Level
Implementing
. . . . . . . . . Security
. . . . . . . .for
. . .SSAS
. . . . .Data
. . . . Views
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
.............
. . . . . . . . . . . . . to
Drill-throughs
. . .Other
. . . . . Dashboards
. . . . . . . . . . . or
. . Custom
. . . . . . . .URLs
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
.............
. . . . . . . . . . . .Selections
Hierarchical
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
.............
. . . . . . . . . . Selection
Cascading
. . . . . . . . .Lists
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
.............
. . . . . . . . with
Working
. . . . .Custom
. . . . . . . Maps
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
.............
. . . . . . . . . . . . .DATAZEN
EXTENDING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
............
. . . . . . . . . . . . . . .CUSTOM
IMPLEMENTING
. . . . . . . . BRANDING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
.............
. . . . . . . . . . . . . . .CUSTOM
IMPLEMENTING
. . . . . . . . MAPS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
.............
. . . . . . . . . . . .DATA
MANAGING
. . . . .PROVIDERS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
.............
Introduction
This material is designed to provide comprehensive coverage of the entire Datazen feature set, including detailed
instructions on how to setup and configure Datazen Enterprise Server as well as create and publish dashboards and
KPIs.
Target audience
Product documentation is divided into two main categories:
1. Datazen Enterprise Server: Written for system administrators who will be installing and configuring Datazen
Enterprise Server, as well as power users who will be configuring BI hubs, connecting to live databases and creating
data queries;
2. Creating and Publishing Dashboards: Written for Business Intelligence professionals who will be creating
dashboards based on previously created data queries.
Prerequisites
This documentation is intended for those who already have a high-level understanding of the Datazen, obtained
through the official website and the included product videos. System administrators should be proficient in configuring
Windows Server, IIS, client-server networking and configuring connectivity to data sources.
Product Overview
Philosophy and Approach
Product Elements
Architecture Overview
Rapid Development
Use existing infrastructure. Datazen doesnt impose changes of your existing technical infrastructure. The
product integrates with your existing databases, data warehouses and the security infrastructure. It is designed to
be an effective data analytics and BI presentation layer that works with the back end products that you already use
today.
Build and publish rapidly. The process of creating Datazen content - KPIs, dashboards, scorecards, and reports is streamlined to balance simplicity and power. Enterprise data is discoverable and easily accessible through the
data browsing UI of the Datazen Publisher app. Custom dashboard layouts are created in minutes. Full Datazenbased solutions can be deployed in a matter of days instead of months.
Create once, consume anywhere. The Datazen Publisher app is the single point of dashboard creation and
publishing. Once the data connections are made and dashboard layouts created, publishing a dashboard means
immediate availability on all mobile platforms and device form-factors.
Product Elements
Architecture Overview
The following diagram shows a typical Datazen deployment:
Datazen Enterprise Server is typically deployed within an enterprise IT environment, integrated with Active Directory for
user authentication and connected to internal data sources for data access. Client applications (various viewer apps and
the publisher app) communicate with Datazen Enterprise Server only; in other words they dont access the data sources
directly. Client applications can access Datazen Server either from within the IT environment or outside the IT
environment, if Datazen Server is configured for external access.
For more information on product architecture please refer to the following sections:
Server Components
Security Architecture
Server Scaling
Dashboard Runtime
10
BI hubs
BI hubs are containers for grouping together an organizations users, dashboards, KPIs, data and security into a logical
unit. A single Datazen Server instance can have many BI hubs provisioned. Users can be members of multiple hubs at
the same time, potentially with different roles: hub owners, hub publishers or view-only users.
11
Server Components
Datazen Enterprise Server consists of the following software components:
Core Service
Windows service containing the Repository.
Repository of users, KPIs, dashboards, data view definitions,
custom maps, permissions, custom brand packages and cached
data.
Designed for fast read access by a large number of clients.
Rendering Service
Windows service responsible for processing and rendering
dashboard thumbnails.
Web Applications
Web API: REST-based API that is the client-facing interface to all
client applications.
Control Panel: Application for browser-based server
administration.
Viewer: Web portal for browser-based access to dashboards
and KPIs.
12
Security Architecture
The following diagram describes the security architecture of a typical Datazen Enterprise Server deployment:
Data encryption
Datazen implements data encryption at all levels of the product stack:
Data is encrypted at rest when stored in the Datazen Enterprise Server Repository
The Datazen Enterprise Server Core Service Repository is built on RavenDB, which supports full database encryption
(AES128).
Data is encrypted for transit to Datazen Enterprise Server client devices
All Web Application client-server traffic can be configured to run over HTTPS. All client apps support HTTPS access to
Datazen Enterprise Server
Data is encrypted for transit between Datazen Enterprise Server Core Service and other Datazen back-end
services
In a distributed environment all sensitive information (e.g. AD credentials, connection strings, etc.) is exchanged between
the various Datazen services via a secure SSL channel.
Data and user credentials are encrypted on each device
The Windows 8 client can cache server data for offline viewing. This data is encrypted using Windows DPAPI (User
mode). Client apps store server credentials for the user. These are always encrypted and the method depends on the
platform:
Client platform
Web Viewer
13
iOS
AES128
Android
AES128
Windows Phone
AES128
Windows 8 / 8.1
Network considerations
It is recommended that Datazen Web Applications be deployed to a DMZ (allowing only port TCP/443 traffic inbound
from the public network) while all other server components be deployed to the internal corporate network. See Security
Best Practices for more information.
Server components of the Datazen Enterprise Server environment require access to Core Service on specific network
ports. The following table outlines the Datazen Enterprise Server intra-service networking requirements for services that
are distributed:
Component
Required port
Description
Core Service
TCP/28952
Repository API
Core Service
TCP/28953
Management API
User authentication
User authentication from Datazen client applications can be configured to utilize either Active Directory, an ADFS server,
the Core Service Repository, or an external mechanism. See Authentication for more information.
14
15
Benefits
Any Datazen Enterprise Server component that is scaled beyond a single instance provides the immediate benefit of
redundancy and reduced per-instance resource usage. Additionally, specific per-component benefits include:
Component
Benefit
Increased number of data views that can be updated per scheduled interval
Web Applications
Core Service, Data Acquisition Service and Rendering Service installed on a single physical server.
Multiple servers with Web Applications installed.
A single shared cache machine (implementing memcached for example).
A front-end load balancer is required to distribute client traffic (TCP/80 and/or TCP 443) to the Web Application
instances.
Scaling Web Applications and Data Acquisition Service independently, with shared cache
This configuration supports an increased number of concurrently connected clients and a greater number of scheduled
data views that can be simultaneously acquired. Due to the utilization of shared cache the resource usage of the entire
server environment is reduced.
1.
2.
3.
4.
5.
Other considerations
16
Multiple instances of the Data Acquisition Service may be installed on separate machines. They work independently
and divide the data acquisition workload accordingly.
Multiple memcached or Redis caching instances may be installed and are then used in a load-balanced way.
For a step-by-step guide to setting up this fully distributed and scalable environment, see Installing a Typical
Distributed Deployment.
17
Caching Architecture
A Datazen Enterprise Server deployment can significantly benefit from caching oft-accessed items. The primary benefit
of enabling caching is to prevent the Core Service Repository from having to retrieve the same data items again and
again if it has already successfully retrieved it once within the cache interval window, thus alleviating load on the Core
Service.
Caching is utilized at the main entry points accessed by end-users: Web API and Web Viewer. It can be configured in
standalone and distributed scenarios. In the latter case, a shared cache should be used (eg. memcached, Redis or Azure
Cache).
18
Installation Guide
Installation Requirements
Installing Datazen Enterprise Server
Installing a Typical Distributed Deployment
Configuring Caching with memcached
Configuring Caching with Redis
Configuring Caching with Azure Cache
Configuring ADFS authentication
Advanced Installation Scenarios
19
Installation Requirements
Datazen Enterprise Server can be deployed in standard Windows Server environments on physical machines, virtual
machines or Azure VMs. This document details the minimum software and hardware requirements, as well as the
recommended deployment configuration for common scenarios.
Hardware requirements
The following configuration recommendations assume approximately 10% concurrent user load.
Core Service
For server machines running Datazen Enterprise Server Core Service:
Recommended configuration:
Up to ~7500 users, minimal real time data access*:
CPU: 8 cores
RAM: 16GB
Available Disk Space: 250Gb or more
Up to ~10000 users, minimal real time data access*:
CPU: 10 cores
RAM: 32GB
Available Disk Space: 500Gb or more
*increased real time data access will utilize greater CPU resources.
Web Applications
For server machines running Datazen Enterprise Server Web Applications:
Up to ~650 users:
CPU: 4 cores*
RAM: 16GB
Available Disk Space: 5Gb
Up to ~1000 users:
CPU: 8 cores*
RAM: 16GB
Available Disk Space: 5Gb
Up to ~10000 users:
20
CPU: 64 cores*
RAM: 16GB
Available Disk Space: 5Gb
*Web Application cores may be distributed across multiple machines.
Software requirements
Datazen Enterprise Server can be installed on any of the following operating systems:
Windows Server 2008 R2 64-bit with
.NET Framework 4.0
.NET Framework 4.0 Update (KB2468771)
Windows Server 2012 64-bit (or later)
The Web Applications feature requires additional Windows features to be installed. The Datazen Enterprise Server
installer will install and configure these features if they are not already configured on the target server:
For Windows Server 2008 R2
Application Server
.NET Framework 3.5.1
Internet Information Services
Web Server
Application Development
ASP.NET
.NET Extensibility
ISAPI Extensions
ISAPI Filters
Security
Basic Authentication
Windows Authentication
Management Tools
IIS Management Console
For Windows Server 2012 (or later)
Application Server
.NET Framework 4.5
Web Server (IIS)
Web Server
Application Development
ASP.NET 4.5
.NET Extensibility 4.5
ISAPI Extensions
ISAPI Filters
Security
Basic Authentication
Windows Authentication
Management Tools
21
Deployment Configuration
For development and testing deployments, a single server with all features installed should be sufficient. A single server
configuration may also be used in production, supporting up to 500 registered users (assuming peak concurrent user
load of 50 concurrent users). For performance, security and availability reasons a single-server deployment is not
recommended.
For larger deployments, consider one of many possible scaling scenarios. Distributing the system across multiple
servers is described in Server Scaling.
22
Core Service
The Datazen Enterprise Server Core Service contains the Repository and must be installed before any other features.
This feature may not be distributed.
Credentials
23
Use this dialog to specify the service account for Core Service. It is recommended that a service account be provisioned
for Core Service.
If a service account is specified, the Datazen Enterprise Server installer will grant that account the following local rights
and privileges:
Log on as a service
Replace a process-level token.
Back up files and directories.
Log on locally.
If you are planning on using Active Directory authentication and this server is a domain member, the Core Service must
be configured to run as a domain account. The installer will grant the specified user the log on as a service right on this
machine.
Changing the Core Service account: If you change the service account for Core Service after Datazen Enterprise
Server is installed (e.g. with Control Panel) the new account must have the above rights and privileges configured. Also,
the new service account must have URL reservations for the two Core Service endpoints. To configure the URL
reservations run the following commands (as administrator):
netsh
netsh
netsh
netsh
netsh
http
http
http
http
http
Admin password
Enter the password for the Datazen Enterprise Server admin user. The password may be changed later via the Control
Panel.
Authentication mode
24
Datazen Enterprise Server users can be authenticated in one the following modes:
Default mode - usernames and passwords are stored in the Core Service Repository.
Active Directory - usernames are stored in the Core Service Repository. Passwords are authenticated against a local
or remote Active Directory environment.
ADFS - usernames are stored in the Core Service Repository. Users credentials are verified by an existing ADFS
installation. ADFS authentication is not configurable via the Datazen Enterprise Server installer. If you are
plannning on using ADFS authentication, choose the Default option and configure ADFS after the installation is
complete. See Configuring ADFS for details.
External - usernames are stored in the Core Service Repository. Users credentials are verified by an existing external
mechanism which sets a HTTP header or cookie value to the username. external authentication is not
configurable via the Datazen Enterprise Server installer. If you are plannning on using external authentication,
choose the Default option and configure authentication after the installation is complete. See Core Service Settings
for details.
Encryption Key
25
This is the Core Service Repository encryption key. This key is required in order to perform a Core Repository restore.
Ensure it is stored safely.
Instance Id
This is the Datazen Enterprise Server instance id. This key is required if distributed componenents will be used.
Credentials
26
Use this dialog to specify under which credentials the Data Acquisition Service will run.
Typically, this should be left as LocalSystem since the credentials for data acquisition are defined in a Data Connection
connection string. If the data source requires a specific domain user context that cannot be defined in a connection
string, those credentials can be entered here.
Web Applications
This feature provides the following Web Applications to Datazen Enterprise Server client applications:
Web API - all of the Datazen Enterprise Server client applications communicate directly with this service.
Control Panel - the management portal used to manage users, dashboards, data, security and other aspects of the
Datazen Enterprise Server installation.
Viewer - a web portal for viewing published KPIs and dashboards in a web browser.
This feature may be distributed.
27
Specify an available port (and optional hostname) on which Web Applications will run. A new website and several IIS
application pools will be created. The website settings can also be configured anytime with the Windows IIS Manager
(for enabling SSL security, for example).
The Control Panel requires an SMTP server in order to send notification emails to Datazen Enterprise Server users.
Rendering Service
The Rendering Service is a Windows service that is responsible for:
Accepting requests from the Viewer and generating the HTML response.
Generating thumbnails for published dashboards.
This feature may be distributed.
28
This feature does not present any installation dialogs. For post-installation configuration of this service, please see the
Rendering Service configuration documentation.
29
30
2. On each Web Application machine, run the installer and select Web Applications as the sole feature to be installed.
When prompted for the Core Service location, enter the ip address of the Core Service machine and the instance id
recorded in step 1. When prompted for the Rendering Service location, enter the Core Service machine ip.
Post-installation configuration
Proceed with initial user and hub configuration. The Control Panel will be available on the load-balanced ip address, e.g.
http://load_balanced_ip_address/cp
31
Configuring memcached
One or more memcached services may be configured for shared caching of Web Applications. The memcached service
provisioning is not covered in this document, as there are several options depending on the server environment
available. The memcached service is typically installed on a Linux, BSD or similar machine.
To configure memcached service for use:
1. Edit /etc/memcached.conf (or wherever the config is located).
2. Set the memory limit (in megabytes): e.g. -m 1024
3. Ensure that the service is listening on all interfaces by disabling the line: -l 127.0.0.1.
32
Configuring Redis
One or more Redis services may be configured for shared caching of Web Applications. The Redis service provisioning
is not covered in this document, as there are several options depending on the server environment available. The Redis
service is typically installed on a Linux, BSD or similar machine. Azure Redis Cache may also be utilized.
33
Replace the {endpoint url} with the Endpoint URL visible on the quick glance section of the Azure Management
Console dashboard screen:
34
The {access key} can be obtained by clicking the Manage Keys button at the bottom of the Azure Management
Console dashboard screen:
35
Preparation
Note: It is assumed that server administrators are familiar with ADFS terminology before attempting to configure ADFS
authentication.
The following items are required for configuring ADFS authentication:
The publicly available url of the ADFS server (via https).
The publicly available url of the Datazen Web Api (via https).
The ADFS audience uri.
The STS token-signing certificate.
The Relying Party certificate (including the private key).
IMPORTANT NOTES ABOUT CERTIFICATES
Datazen does not install or manage your ADFS certificates. Use the Microsoft Management Consoles Certificate
Management snap-in.
The STS and RP certificates must already be installed on all instances of the Web Api, Web Viewer and Control
Panel machine(s) before proceeding with ADFS configuration.
Certificates must be installed in the Local Computer Personal certificate store. If a certificate is self-signed, it must
also be installed in the Local Computer Trusted Root Certificattion Authorities store.
The RP certificate must include the private key, and the following IIS Application Pool identities must have at least
read access to the private key: Datazen.Server.WebApi, Datazen.Server.ControlPanel, and
Datazen.Server.WebViewer. Use the Microsoft Management Consoles Certificate Management snap-in to manage
private key access.
ADFS Settings
The settings for ADFS are available in the Datazen Control Panel, Authentication menu item:
36
This action must be performed when the Core Service is stopped. The authentication mode will take effect when the
Core Service is started.
When creating the Relying Party Trust in ADFS, you can direct the wizard to access this endpoint directly:
37
Ensure the Relying Party Trust identifier matches the audience uri.
Advanced customization
The automatically generated federation metadata may be copied, edited and imported directly into the ADFS server if
further customization is required.
Claim rules
Datazen ADFS authentication requires that the ADFS server return a UPN claim in the successful authentication
response. The value of this claim must the the username of the authenticated user, and it must match the username of a
registered Datazen user.
38
Instance Id
The instance id is randomly generated by the installer if Core Service is to be installed and no previous instance id is
detected. In the above scenarios this value will not match the instance id of the running Datazen Enterprise Server
environment. To force a specific instance id set the following command line option:
DATAZEN_INSTANCE_ID=[instanceid]
Encryption Key
The encryption key is randomly generated by the installer if Core Service is to be installed and no previous encryption
key is detected. In the above scenarios this value will not match the encryption key of the running Datazen Enterprise
Server environment. To force a specific encryption key set the following command line option:
DATAZEN_ENCRYPTION_KEY=[encryption key]
IMPORTANT: If the target Datazen Enterprise Server environment does not use encryption (such as a pre2.6 Core
Service Repository) then encryption must be disabled on this installation via the following command line option:
DONT_USE_ENCRYPTION=true
39
Core Service
Do not run Core Service as LocalSystem.
During the initial installation of Core Service you are prompted for the credentials to run the service as. Choose a
local service account, and not LocalSystem. The service account requires the following rights and privileges:
Modify files in the Datazen Enterprise Server installation target folder.
Log on as a service
Replace a process-level token.
Back up files and directories.
Log on locally.
Be a member of Performance Log Users group.
The Datazen Enterprise Server installer will configure the required security privileges for the chosen account.
LocalSystem has privileges beyond what is required for Core Service operation, and can greatly increase risk should
this service be compromised.
Do not disable the account lockout feature.
40
The Datazen Enterprise Server account lockout feature restricts the number of authentication failures allowed
before the account is administratively locked. If this feature is disabled the risk of a brute-force password attack is
exposed.
Only allow inbound traffic from other Datazen Enterprise Server services.
Core Service is exclusively utilized by other Datazen Enterprise Server services and Web Applications. Consider
setting up a firewall security policy that only allows inbound traffic from addresses/ports running other Datazen
Enterprise Server components. The default network ports required by Core Service are: TCP/28952 and TCP/28953.
Provision an encrypted tunnel.
Although much of the traffic inbound to Core Service is encrypted, consider setting up an IPsec tunnel for use by
the various server-side components of Datazen Enterprise Server. Use of an encrypted tunnel will greatly reduce
the ability malicious parties to eavesdrop on server-side network traffic.
Restrict repository backup folder permissions.
When configuring the Core Service repository backup, ensure the target folders security permissions do not allow
unnecessary access. The backup (although encrypted) contains sensitive information that should not be accessible
to non-administrative users.
Web Applications
Install Web Applications in the DMZ.
Web Applications is the only component of the Datazen Enterprise Server product that features a public interface.
Since no sensitive information is ever stored within Web Application state, it may be safely deployed to a DMZ.
Other components of the Datazen Enterprise Server should be deployed to the secure internal network.
Only allow required network traffic from the internal network.
Since Web Applications is the public interface of the Datazen Enterprise Server product it is important to only allow
necessary network traffic to reach these machines, such as Remote Desktop traffice (for management purposes).
Allow only HTTPS traffic from the public network.
Although Web Applications can be configured to respond to HTTP requests, it is strongly recommended that this
functionality be relegated in favour of HTTPS.
Do not modify IIS application pools identities or privileges.
Datazen Enterprise Server Web Applications run under three IIS applications pool identities:
Datazen.Server.ControlPanel, Datazen.Server.WebApi and Datazen.Server.Renderer. These application pool
identities are created and configured by the Datazen Enterprise Server installer with reduced security privileges.
Granting excessive permissions to these application pool identities could increase the vulnerability to attacks via
the Datazen Enterprise Server web interface.
41
During the initial installation of Data Acquisition Service you are prompted for the credentials to run the service as.
Choose a local service account, and not LocalSystem. The service account requires the following rights and
privileges:
Modify files in the Datazen Enterprise Server installation target folder.
Log on as a service.
Be a member of Performance Log Users group.
The Datazen Enterprise Server installer will configure the required security privileges for the account. LocalSystem
has privileges beyond what is required for Data Acquisition Service operation, and can greatly increase risk should
this service be compromised.
Authentication
Avoid using default authentication.
If possible, avoid using Datazen Enterprise Server default authentication in favour of one of the other supported
authentication mechanisms. The default authentication provider stores hashed user credentials within the Core
Repository and if compromised, could potentially be used as an attack vector.
If all of the Datazen Enterprise Server users have Active Directory accounts, and the Active Directory environment is
accessible to the Datazen Core Service (e.g. the Core Service machine is a domain member, or an Active Directory
catalog can be queried via LDAP) consider using Active Directory authentication mode.
If all of the Datazen Enterprise Server users can utilize an existing Active Directory Federation Service environment,
consider using ADFS authentication mode.
Data Connections
Only use encrypted connections.
If the data provider allows it, always use an encrypted connection when creating a data connection. Connecting to
a back-end data source with an unencrypted connection could expose user credentials to malicious parties.
Ensure SSAS back-end servers running IIS/msmdpump.dll are secured with SSL.
When configuring SSAS data connections to back-end servers running IIS/msmdpump.dll, make sure the endpoint
is secured with SSL. Connecting to SSAS data sources that are not configured in this way could expose user
42
43
Initial Configuration
This section contains the following documents:
Authentication
Initial Users
Hub Configuration
Publishing Initial Content
44
Authentication
Datazen users can be authenticated by one of the following authentication providers:
Default
Active Directory
ADFS
External
Default authentication
The default authentication mode stores and validates user passwords within the Datazen Core Service. When a user is
created a notification email is sent to the user which contains a URL to initialize the account and set a password. Users
may change their password at any time by managing their profile via the Control Panel.
ADFS authentication
ADFS authentication mode utilizes an existing ADFS server for username and password validation. In this mode, when a
user attempts to log in the following actions are performed:
From a mobile device
1. The device queries the Datazen Web Api for the location of the ADFS server.
2. The device will send the users credentials to the ADFS server.
3. The ADFS server will validate the credentials and return a response to the device.
4. The device will forward the response to the Datazen Web Api.
5. The Datazen Web Api will check that the user exists in the Datazen Core Service user list.
From a web browser (either Datazen Web Viewer or Control Panel)
1. The browser will be redirected to the ADFS servers login page.
2. Once authenticated, the browser will be redirected back to the appropriate Datazen site.
3. The Datazen site will check that the user exists in the Datazen Core Service user list.
In this mode, passwords are not stored within the Datazen Core Service Repository.
NOTE: Since the admin user can only be authenticated using the default authentication provider, a special url is available
allowing admin to login to the Control Panel directly, bypassing the ADFS redirection:
/cp/account/adminlogin
45
For more information on configuring ADFS authentication mode, please refer to Configuring ADFS authentication.
External authentication
External authentication mode is used in scenarios when user credentials are validated before a client attempts to connect
to Datazen, either through an IIS filter, proxy or some other mechanism. When this mode is active all incoming client
HTTP requests are inspected for either a cookie value or header value containing the requesters Datazen username. If
this username represents an existing Datazen user the request is allowed to execute.
In this mode, passwords are not stored within the Datazen Core Service Repository.
The external authentication provider can be configured in the Control Panel Authentication settings.
IMPORTANT: Since this authentication mode means the Datazen explicitly trusts that external authentication has been
performed, it is critically important to ensure that all inbound client traffic to the Datazen public interfaces (Web Api,
Control Panel and Web Viewer) be proxied through the external authentication mechanism.
NOTE: Since the admin user can only be authenticated using the default authentication provider, a special url is available
allowing admin to login to the Control Panel directly:
/cp/account/adminlogin
The external authentication mechanism should account for this special url and provide a means for unauthenticated
traffic to reach it.
46
Initial Users
The admin user
When Datazen Enterprise Server is initially installed, a special admin user is created. This user has full administrative
rights to perform any operation in the server instance, and is the only user that can create other users or hubs. When
the admin user logs in to the Control Panel, options for managing and configuring the server instance will be available.
Server users
Before Datazen BI hubs can be created, at least one initial user must be created. To create the first user, log into the
Control Panel as admin, and go to Server Users to click on Create User.
For more information about using the Control Panel to manage user accounts, see Managing Hub Users and User
Groups.
47
Hub Configuration
Before any content can be published to the server, the first hub must be created and configured.
1. On the Home screen of the Control Panel, click on Create BI Hub.
Next, we may want to add more users to the newly created hub.
1. Switch to the new hub using the hub dropdown in the navigation pane on the left-hand side of the Control Panel.
Hub selector
48
1. Click on Users. You should see the hub owner as the sole user in the new hub.
2. Click on Invite More Users.
3. Enter the email addresses of users to be added to this hub as a delimited list in the text input area and click Invite
Users.
Users already registered on the server will automatically be added to the hub. Others will be emailed with instructions
on how to join the server and access the hub.
In order to be able to publish dashboards to the new hub, we need to create at least one dashboard group.
1. Click on Dashboards on the left-hand side nav.
2. Click on Create a New Group.
49
50
51
Test dashboard
You can click Run Preview to see your test dashboard in action. Return to the designer to publish the dashboard to the
server.
1. On the bottom app menu, click Publish to Server.
First, the dashboard must be saved on the local file system.
Verify the file name and default local dashboard group (My Dashboards is fine for now) and click Save.
The first time you do this, you will be prompted to select a working folder for the publisher. This is the folder where
your local dashboards will be stored.
52
53
54
55
Managing KPIs
The Control Panel KPIs page allows users to create and organize KPIs in a hub.
KPI groups
KPI groups contain information on how KPIs will connect to remote data. Unlike Data Connections, they can be backed
by static values instead of remote data.
56
KPIs
KPIs are defined and managed in the Control Panel. Each KPI can consist of a primary setting: Value, as well as optional
secondary settings:
Goal, which is used for comparison against the Value
Status, which defines the background of the KPI visual
Trend Set, which defines the graph of the KPI
Each of these settings can be set manually (as a static value), or be defined in a query which will be applied against the
KPI groups data connection. These queries, like Data Views, may be personalized.
KPIs can have child sub-KPIs, which themselves are full KPIs, inheriting the KPI group data connection. KPIs can also be
related to one or more dashboards, which will be presented when the KPI is viewed in a client application.
57
58
Managing Dashboards
The Control Panel Dashboards page enables hub owners to reorder the hubs existing dashboards and dashboard
groups, create new dashboard groups, edit the names of dashboards or dashboard groups, delete dashboards or
dashboard groups, or control a dashboards visibility in a client applications main screen.
Dashboards
Renaming a dashboard
1. Click on the Edit icon next to the dashboard.
2. Update the name of the dashboard in the dialog that appears.
3. Click Apply when done.
The dashboard has now been renamed.
Deleting a dashboard
1. Click on the Delete icon next to the dashboard.
2. Click Delete when prompted.
The dashboard has now been deleted.
Reorder/move a dashboard
1. Click on the drag-handle of the dashboard, and drag the dashboard to its new position. The dashboard can also
be dragged into a different dashboard group.
2. Release the drag-handle.
The dashboard has now been reordered/moved.
Hide a dashboard
1. Click on Hide on Main Screen checkbox for the dashboard.
59
The dashboard is now hidden from the main screen of client applications. This is intended to prevent users from directly
viewing dashboards that are intended to only be accessed via drill-through.
Dashboard groups
Creating a dashboard group
1. Click the Create a New Group button.
2. Enter a group name in the dialog that appears. Click Next to continue.
3. Grant access permissions to user groups or users. Note that these access permissions can be set at any time from
the Permissions page.
4. Click Create to complete the process.
The dashboard group will now be added to the selected hub.
Renaming a dashboard group
1. Click on the Edit icon next to the dashboard group.
2. Update the name of the dashboard group in the dialog that appears.
3. Click Apply when done.
The dashboard group has now been renamed.
Deleting a dashboard group
1. Click on the Delete icon next to the dashboard group.
2. Click Delete when prompted.
The dashboard group, and any dashboards it may have contained, has now been deleted.
Reorder a dashboard group
1. Click on the drag-handle of the dashboard group, and drag the group to its new position.
2. Release the drag-handle.
The dashboard group has now been reordered.
60
Data connections
Data views
61
62
Once data connections and views have been configured in a hub, the Datazen Enterprise Server will periodically acquire
the data from the original data source and store it internally, caching it for client use. The schedule for how often the
data is acquired is configurable either for the individual data view (for data connections that support data views) or on
the data connection itself.
Data for views can be manually refreshed at any time via the Control Panels Data Sources page.
63
64
Data Providers
Hub owners can make data available to dashboard or KPI authors by creating server data connections from one of the
available data providers. For more information on extending data providers, see Managing Data Providers.
65
66
IMPORTANT: The selected driver must be installed on the Datazen Core Service machine and Data Acquisition
machine(s).
Properties:
Connection Properties - A panel of connection properties are used to construct an ODBC connection string to the
MySQL Database.
View properties:
Data View Query - The SQL query to perform. Must return a single table of data.
View properties:
Data View Query - The SQL query to perform. Must return a single table of data.
Supported Features
This matrix describes additional features supported by the different data source types:
Data Providers
Has Data
Views
Supports
Parameterization
Supports
Personalization
Supports Realtime
MS SQL
Yes
Yes
Yes
Yes
MS SSAS
Yes
Yes
Yes
Yes
MS SharePoint List
Yes
Yes
Yes
Yes
MS SQL Azure
Yes
Yes
Yes
Yes
OData Service
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
ODBC MySQL
Yes
Yes
Yes
Yes
68
ODBC Oracle
Yes
Yes
Yes
Yes
ODBC PostgreSQL
Yes
Yes
Yes
Yes
OLE DB Oracle
Yes
Yes
Yes
Yes
OLE DB PostreSQL
Yes
Yes
Yes
Yes
Excel Network
Share
Yes
69
Upload a map
1.
2.
3.
4.
Removing a map
1. Navigate to the map via the folders if necessary.
2. Click the Delete icon for the map.
3. Click Delete in the presented dialog.
The map will now be removed from the system.
Moving a map
1. Navigate to the map via the folder if necessary.
2. Click the Move icon for the map.
3. Navigate to the destination folder in the presented dialog. Click Move when done.
The map will now appear in the new location.
70
Users listing.
71
2. Find the user(s) to be removed, either through paging the table or by searching for them via the Search Users
search box.
3. Click the Remove User icon next of the user(s).
4. Click Remove when prompted.
The user(s) will now be removed from the hub.
Assigning publishers
1. Navigate to the Users screen.
2. Find the user(s) to become a publisher, either through paging the table or by searching for them via the Search
Users search box.
3. Click on the Is Publisher checkbox for that user(s).
The user(s) will now be a publisher for the hub.
Creating a user
1. Click the Create User button on the home page.
2. Fill out the user details form. Username, Email and Full Name are required fields. The Username and Email must be
unique within the server instance.
Note: If the server is operating in Active Directory authentication mode, the username must match the users Active
Directory username.
73
Deleting a user
1. Navigate to the Server Users screen.
2. Find the user to be deleted, either through paging the table or by searching for them via the Search Users search
box. Click the Delete User icon next of the user.
3. Click Delete when prompted.
The user is now deleted from the system.
Log in as the user. Click the Account dropdown in the upper-right-hand corner.
Click Edit from the presented options.
Update text boxes as necessary.
Click Update My Account.
Email notifications
Control Panel uses SMTP e-mail to notify users when theyve been invited to the system, have been added to a hub, or
require a new password. These e-mails use templates which can be edited in Email Templates. The SMTP server settings
can be updated in Control Panels configuration.
74
Managing Permissions
The Control Panel Permissions page enables the hub owner to manage user and/or user group access permissions on:
Dashboards
Dashboard groups
Data connections
KPI groups
Activity
Permissions page.
75
Use the second dropdown to switch between user groups and users.
Changes are persisted immediately.
76
Branding listing.
Upload a branding
1.
2.
3.
4.
If uploading a brand for a hub, page to the hub using the paging controls.
Click on the Upload icon for the hub (or Server).
Click Browse to find and select the branding package on the local file system.
Click Upload; the dialog will close once the upload is complete.
The branding package will be applied to dashboards and clients connected to this hub/server.
Removing a branding
1. If deleting a brand for a hub, page to the hub using the paging controls.
2. Click the Remove icon for the hub (or Server).
3. Click Delete in the presented dialog.
The branding will now be removed from the system.
Download a branding
1. If downloading a brand for a hub, page to the hub using the paging controls.
2. Click the Download icon for the hub (or Server).
3. Accept the file from the browsers download dialog.
The branding package will now be downloaded to the local file system.
77
78
7. Click Update Templates when done. To cancel your changes navigate to another section of the Control Panel site.
The Invite User template has now been updated, and subsequent e-mails sent to invited users will use this version.
The Forgot Password template has now been updated, and subsequent e-mails sent to users will use this version.
79
Clicking the Upload button will display the upload dialog. Click Browse to and pick a new version of the Dashboard
Runtime zip file, then click Upload:
80
Version
Internet Explorer
FireFox
3.5
Chrome
Safari
Opera
10
On mobile devices running iOS, Android or Windows Phone, native apps are the optimal way to access Datazen
content.
Note: Cookies and JavaScript must be enabled.
Accessing Dashboards and KPIs
Configuring Public Access
Configuring Integrated Windows Authentication
Embedding Datazen Content Into Custom Apps
Embedding Datazen Content Into SharePoint
81
http://local.server.com/viewer/public/kpis?header=false
http://local.server.com/viewer/dashboards?
hub=Marketing&group=Regional%20Overviews
http://local.server.com/viewer/kpis?
hub=Sales&group=Salespeople&name=Julie%20Tam
http://local.server.com/viewer/dashboard?
hub=Marketing&group=Regional%20Overviews&name=Middle%20East
http://local.server.com/viewer/user/dashboards
82
83
84
85
Index views
To produce index views with tiles for each KPI and dashboard, use the url format:
Public access: [servername]/viewer/public/home
User Content: [servername]/viewer/user/home (via Integrated Windows authentication)
Optional url parameters:
Parameter
Values
Meaning
active
kpis/dashboards
group
group name
Only show content from the KPI or dashboard group with the specified name
header
true/false
hub
hub name
name
item name
bg
Dashboards
To directly include an interactive dashboard, use the url format:
Public access: [servername]/viewer/public/dashboard?name=[dashboard name]
User Content: [servername]/viewer/user/dashboard?name=[dashboard name] (via Integrated Windows authentication)
Optional url parameters:
Parameter
Values
Meaning
group
group name
The name of the dashboard group in which the dashboard is found (optional)
hub
hub name
86
87
7. In the embed code add an IFRAME of the desired size with the appropriate SRC attribute. For information on the
format of the SRC url, see Embedding Content into Custom Apps.
8. Click Insert.
88
Server Administration
This section contains the following documents:
Windows Services, IIS Sites and Application Pools
Configuration Settings
Core Service Settings
Data Acquisition Service Settings
Rendering Service Settings
Control Panel Settings
Web API Configuration
Batch Creating Users
Server Logs
Email Templates
Repository Backup and Restore
Repository Maintenance
89
90
Configuration of the Web API is located in the Datazen Web API web.config file.
91
Configuration Settings
Core Service Settings
Data Acquisition Service Settings
Rendering Service Settings
Data Acquisition Service Settings
Control Panel Settings
Web API Configuration
Web Viewer Configuration
92
Configuration settings
datapath
The location of the database folder. If this value is preceded with a tilde (~) the location is relative to the \service subfolder of the installation folder. This value should not be modified.
Location:
<configuration>
<appSettings>
<add key="datapath" value="[path]" />
dataport
The TCP port used for the data api.
Location:
<configuration>
<appSettings>
<add key="dataport" value="[port]" />
dataport_restrict
Restrict access to the core service data port to distributed components. This value should not be modified.
Location:
<configuration>
<appSettings>
<add key="dataport_restrict" value="[true|false]" />
apiport
93
apiport_cert_thumbprint
The thumbprint of the SSL certificate to use for distributed components to securely communicate with the core service
management api. This certificate is generated automatically during initial product installation.
Location:
<configuration>
<appSettings>
<add key="apiport_cert_thumbprint" value="[certificate thumbprint]" />
authtimeout
The duration (in seconds) to keep remote clients logged in before they must re-authenticate.
Location:
<configuration>
<appSettings>
<add key="authtimeout" value="[value]" />
authtype
The authentication mode to use for servicing Datazen Enterprise Server login requests. May have one of the following
values:
default - users are authenticated using their Datazen Enterprise Server credentials
ad - users are authenticated using Active Directory.
adfs - users are authenticated using an existing ADFS server.
external - users are authenticated using an existing external mechanism.
Location:
<configuration>
<appSettings>
<add key="authtype" value="[default|ad|adfs|external]" />
94
ad_server
In Active Directory authentication mode, the server name and port number of the LDAP service. Typically this will be the
host name of a domain controller, e.g. dc1.corp.myorg.com:389.
Location:
<configuration>
<appSettings>
<add key="ad_server" value="[server:port]" />
ad_domain
In Active Directory authentication mode, the fully qualified domain name, e.g. corp.myorg.com.
Location:
<configuration>
<appSettings>
<add key="ad_domain" value="[value]" />
ad_username
In Active Directory authentication mode, the username of an account that will perform the AD query.
Location:
<configuration>
<appSettings>
<add key="ad_username" value="[username]" />
ad_password
In Active Directory authentication mode, the password of the account specified in ad_username.
The ad_password property is not set in the configuration file like the other settings. To set ad_password you must run
the Datazen.Server.Service.exe in console mode:
1. Open a command window (as administrator).
2. Stop the datazen service: net stop datazen
95
3. Change directory to the \service sub-folder of the installation folder: cd "c:\Program Files\Datazen
Enterprise Server\service" for example.
4. Issue the following command: Datazen.Server.Service.exe /console /ad_password=[thepassword]
/shutdown where [thepassword] is the ad_user password.
5. Start the datazen service: net start datazen
This setting may be configured in the Control Panel.
external_auth_type
In external authentication mode whether to locate the authenticated users Datazen username in the incoming HTTP
header or cookie dictionary.
Location:
<configuration>
<appSettings>
<add key="external_auth_type" value="[header|cookie]" />
external_auth_key
In external authentication mode the dictionary key (of the container configured in external_auth_type) whose value is
the authenticated users Datazen username.
Location:
<configuration>
<appSettings>
<add key="external_auth_key" value="[key]" />
badloginthreshold
The number of consecutive password failures allowed within the configured badloginwindow time span before the
account is automatically locked.
Setting this to 0 disables the auto-lockout feature.
Location:
<configuration>
<appSettings>
<add key="badloginthreshold" value="[number of login failures]" />
Default value: 5
96
badloginwindow
The time span (in minutes) for tracking consecutive password failures. See badloginthreshold.
Location:
<configuration>
<appSettings>
<add key="badloginwindow" value="[minutes]" />
Default value: 5
can_hub_owners_create_users
When set to false, the server will run in Enterprise Mode and hub owners cannot directly add users; they may only invite
them. When set to true, the server will run in Demo Mode and hub owners can add users to a hub.
Location:
<configuration>
<appSettings>
<add key="can_hub_owners_create_users" value="[true|false]" />
dataviews.updatetimeout
The duration (in seconds) to successfully update (pre-fetch) a data view before aborting.
Location:
<configuration>
<appSettings>
<add key="dataviews.updatetimeout" value="[value]" />
Default value: 60
Note: This value can be set per connection type for the following connections types: SQL, SSAS, SharePoint, SQL Azure,
OData, Soap, ODBC, and Ole DB:
<configuration>
<appSettings>
<add key="dataviews.[sql|ssas|sharepoint|sqlazure|odata|soap|odbc|oledb].updatetimeo
ut" value="[value]" />
dataviews.realtimetimeout
The duration (in seconds) to successfully fetch a data view in real-time before aborting.
Location:
97
<configuration>
<appSettings>
<add key="dataviews.realtimetimeout" value="[value]" />
Default value: 30
Note: This value can be set per connection type for the following connections types: SQL, SSAS, SharePoint, SQL Azure,
OData, Soap, ODBC, and Ole DB:
<configuration>
<appSettings>
<add key="dataviews.[sql|ssas|sharepoint|sqlazure|odata|soap|odbc|oledb].realtimetim
eout" value="[value]" />
dataviews.locktimeout
The duration (in seconds) that data view locks can persist for before being removed. When the Data Acquisition Service
updates a data view, it first gets a lock to ensure other instances will not also try to update the view.
Location:
<configuration>
<appSettings>
<add key="dataviews.locktimeout" value="[value]" />
dataviews.maxrecords
The maximum number of records that for a data view. If the number of records returned from a data source exceeds
this value, the Data Acquisition Service (for pre-fetched data views) and the Core Service (for real-time data views) will
truncate the number of records to this value.
Location:
<configuration>
<appSettings>
<add key="dataviews.maxrecords" value="[value]" />
98
Configuration settings
Datazen Enterprise Server connectionString
The location of the REST service (data) of the Datazen Enterprise Server. This setting should not be modified unless the
address or port of the Datazen Enterprise Server Core Service machine is changed.
Location:
<configuration>
<connectionStrings>
<add name="datazenserver" connectionString="[value]"/>
maxconcurrentupdates
The maximum number of updates to process concurrently. A value of -1 will be mapped to the number of
processors/cores in the machine. Personalized data views are processed in sequence as a single update.
Location:
<configuration>
<appSettings>
<add key="maxconcurrentupdates" value="[value]" />
Default value: -1
sleepduration
A value in milliseconds indicating how long the Data Acquisition Service will sleep for before polling the database for a
new set of updates.
Location:
<configuration>
<appSettings>
<add key="sleepduration" value="[value]" />
waitduration
99
A value in milliseconds indicating how long the Data Acquisition Service will wait for before attempting to schedule an
update once maximum concurrency is reached.
Location:
<configuration>
<appSettings>
<add key="waitduration" value="[value]" />
Note
Some settings affecting the Data Acquisition Service are configurable in Core Service settings.
100
ProcessPoolSize
Number of DashboardViewer processes to maintain. Should be set to logical CPU count - 1.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ProcessPoolSize" serializeAs="String">
<value>[int]</value>
Default value: 1
ProcessTimeOut
Time afforded to DashboardViewer to complete a request.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ProcessTimeOut" serializeAs="String">
<value>[hh:mm:ss]</value>
KillZombiesAtStart
101
ProcessKillMemoryLimit
Size (in Mb) at which a DashboardViewer process will be killed and replaced.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ProcessKillMemoryLimit " serializeAs="String">
<value>[int]</value>
ResponseMemoryFileSize
Size (in Kb) for the response MemoryMappedFile (images and html).
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ResponseMemoryFileSize " serializeAs="String">
<value>[int]</value>
DashboardViewerProcessName
System name for the DashboardViewer process.
Location:
<configuration>
<applicationSettings>
102
<Datazen.Rendering.Service.Properties.Settings>
<setting name="DashboardViewerProcessName " serializeAs="String">
<value>[value]</value>
SocketPort
The UDP port the service listens on for incoming requests from the Rendering Web Application(s).
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="SocketPort " serializeAs="String">
<value>[int]</value>
SocketBufferSize
The size (in bytes) of the socket buffer.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="SocketBufferSize " serializeAs="String">
<value>[int]</value>
SocketMaxConnections
Maximum number of simultaneous connections the service supports.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="SocketMaxConnections " serializeAs="String">
<value>[int]</value>
103
RequestMemoryFileSize
Size (in Kb) for the request MemoryMappedFile.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="RequestMemoryFileSize " serializeAs="String">
<value>[int]</value>
DashboardViewerPath
Absolute path to the DashboardViewer executable.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="DashboardViewerPath " serializeAs="String">
<value>[path to viewer executable]</value>
ServiceTimerInterval
Milliseconds interval to check the Datazen Server Core Service for requests.
Location:
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ServiceTimerInterval " serializeAs="String">
<value>[int]</value>
Default value: 3
ConsoleTimerInterval
Interval to check the request queue for requests.
Location:
104
<configuration>
<applicationSettings>
<Datazen.Rendering.Service.Properties.Settings>
<setting name="ConsoleTimerInterval" serializeAs="String">
<value>[int]</value>
Default value: 3
renderer
Address of a Datazen.Rendering.Service. There can be multiple renderer values defined, each must start with the word
renderer. Requests are distributed in a round-robin fashion.
Changing these values in a running server causes the collection to be refreshed.
Location:
<configuration>
<appSettings>
<add key="renderer[id]" value="[address:port]" />
...
nojsimagesize
In the absence of either height or width parameters, use this size as the default for non-javascript enabled clients.
Location:
<configuration>
<appSettings>
<add key="nojsimagesize" value="[widthxheight]" />
ajaxverb
105
cache.enabled
Enables or disables caching. Note that even when caching is disabled, images are still written to cache so that they can
be retrieved via the ImageCacheHandler; they are deleted upon retrieval.
Location:
<configuration>
<appSettings>
<add key="cache.enabled" value="[true|false]" />
cache.optipng
When optipng.exe is in the /bin directory of the Datazen Rendering Web Application then PNG compression is enabled
for file-type caching. This setting is the command parameters passed to optipng.exe.
Please refer to the optipng documentation for more information.
Location:
<configuration>
<appSettings>
<add key="cache.optipng" value="[optipng parameters]" />
cache.type
The cache storage mechanism to use. Currently, only file is available.
Location:
<configuration>
<appSettings>
<add key="cache.type" value="[value]" />
106
cache.interval
The default cache interval in seconds. The default value when none is specified is 1200 (20 minutes).
Location:
<configuration>
<appSettings>
<add key="cache.interval" value="[seconds]" />
cache.maxsize
The maximum size (in megabytes) of the cache before older (and potentially unexpired) items are removed. A value of 0
will disable unexpired content from being removed as the cache grows. The default value when none is specified is 0
(disabled).
Location:
<configuration>
<appSettings>
<add key="cache.maxsize" value="[size in megabytes]" />
cache.virtualpath
The virtual path to the ImageCacheHandler. All images are requested via this path.
Location:
<configuration>
<appSettings>
<add key="cache.virtualpath" value="[value]" />
cache.file.path
The path where cached content is saved to disk. The path can be absolute or relative to the Datazen Rendering Web
107
108
109
cache.enabled
Enables or disables caching.
Location:
<configuration>
<appSettings>
<add key="cache.enabled" value="[true|false]" />
cache.type
The cache mechanism to use. May be one of memory, memcached, azure or redis
Location:
<configuration>
<appSettings>
<add key="cache.type" value="[value]" />
cache.interval
The default cache interval in seconds.
Location:
<configuration>
<appSettings>
<add key="cache.interval" value="[seconds]" />
110
Default value: 60
For additional cache-specific configuration options, see:
Configuring Caching with memcached
Configuring Caching with Redis
Configuring Caching with Azure Cache
111
Server Logs
Many of the server-side components of Datazen Enterprise Server log error, trace and debug events to log files. They
can be accessed directly on the server or, for some of them, viewed via the Control Panel.
Rendering Logs
Each element of the rendering system maintains its own set of logs. These can be found at:
\renderer\svc\logs for the Rendering Service
\renderer\viewer\logs for the Rendering Services viewer executable
\renderer\web\logs for the Rendering Web Application
112
Performing a backup
1. Enter a directory to write the backup files to.
2. Click Backup Now.
3. Click Backup when prompted to do so.
A backup request has now been sent to the Core Service. The status of the backup can be monitored on this screen, as
well as in the Log Viewer.
Scheduling a backup
1.
2.
3.
4.
5.
113
If you make some changes but want to start over, clicking Load Settings will reset the form to its last saved settings.
Restoring a backup
1. If the Core Service (datazen) is currently running, open a command prompt (as Administrator) and issue the
command: net stop datazen. Wait for the service to stop.
2. Navigate to the Core Service folder ([installation folder]\service): cd c:\Program Files\Datazen Enterprise
Server\service
3. If the Core Service data folder ([installation folder]\service\Data) exists, delete it: rmdir /S /Q Data
4. Create the Core Service data folder: mkdir Data
5. If this is not the original Core Service machine that the backup was created on, ensure that the
Datazen.Server.Service.config file contains the correct instanceid and db_encryption_key settings from the original
Core Service instance. See Advanced Installation Scenarios for more information.
6. Issue the restore command: Raven.Server.exe -restore -src [path to backup] -dest Data and wait for
the message Esent Restore: Restore Complete
7. If this is not the original Core Service machine that the backup was created on, perform a defragmentation
operation by issuing the command: esentutl /d Data\Data. Wait for the operation to complete.
8. Make sure the Core Service is correctly restored by issuing the command: Datazen.Server.Service /console
/shutdown. The service should start and then stop successfully.
9. Start the Core Service: net start datazen
IMPORTANT: Due to a limitation of the underlying storage mechanism, it is not possible to restore from a newer OS
environment to an older one. For example, restoring to Windows Server 2008 R2 from a backup made from Windows
Server 2012 is not permitted.
114
Repository Maintenance
Compacting
If the number of items (data views, dashboards, etc.) has been reduced over time through deletion, user count
reduction, or the transitioning from personalized data views to non-personalized, the Datazen Core Service Repository
may contain large amounts of unused space. This space can be reclaimed by performing an offline repository compact
operation:
1. If the Core Service (datazen) is currently running, open a command prompt (as Administrator) and issue the
command: net stop datazen. Wait for the service to stop.
2. Navigate to the Core Service folder ([installation folder]\service): cd c:\Program Files\Datazen Enterprise
Server\service
3. Issue the command: esentutl /d Data\Data. Wait for the operation to complete. Note: This operation may
take an extended period of time depending on the number of items in the repository.
4. Start the Core Service: net start datazen
Index reset
On rare occasions it is possible that the Datazen Core Service Repository indexes may become corrupt or nonresponsive, leading to incorrect results being returned from some repository queries. This can be remedied by resetting
the repository indexes from the command line:
1. If the Core Service (datazen) is currently running, open a command prompt (as Administrator) and issue the
command: net stop datazen. Wait for the service to stop.
2. Navigate to the Core Service folder ([installation folder]\service): cd c:\Program Files\Datazen Enterprise
Server\service
3. Issue the command: Datazen.Server.Service.exe /console /resetindexes /shutdown. Wait for the
operation to complete. Note: This operation may take an extended period of time depending on the number of
items in the repository.
4. Start the Core Service: net start datazen
115
116
Dashboard Designer
Datazen Designer enables quick creation of dashboards that scale well to any screen size. The design paradigm is based
on a design surface with adjustable grid rows and columns and flexible dashboard elements that adjust perfectly to any
amount of real estate. The following diagram shows all the components of the Datazen Designer layout view:
117
118
Dashboard Runtime
The purpose of the Datazen dashboard runtime is to instantiate a dashboard, load the required data and process user
actions. Processing user actions like filter or date/time selections involves aggregating the original data updating all
visual elements of the dashboard. The Datazen dashboard runtime can operate in three different modes:
1. Disconnected mode
2. Connected mode
3. Load on Demand mode
Disconnected Mode
In the disconnected mode, the device running Datazen is not connected to the server. The device may actually be
completely disconnected from the network, or running in airplane mode. In this mode, the runtime loads the
dashboard definition (containing offline data) instantiates the dashboard and processes user actions by performing
filtering and date/time aggregations on the client:
Connected Mode
In the connected mode, the device running Datazen is connected to the Datazen Enterprise Server. After instantiating a
dashboard, the runtime loads fresh data views from the server. From that point on, all user actions are handled on the
client, same as in the disconnected mode.
119
120
Data
Data Model
Preparing Dashboard Data
Working with Excel Data
Working with Live Data Sources
Working with Simulated Data
121
Data Model
Datazen data model is extremely simple. Data is imported into the Designer as a collection of data views. Formal
relationships between data views are not required. Lookups from one data view to another will work as long as the key
values match. Date/time aggregations are handled by the dashboard runtime and they will match between different
data views, even if the date/time data granularity is different between the data views.
There are two types of data views that can be imported:
1. Local Excel data: The user selects an Excel document and picks which worksheet(s) will be imported. Once
imported, the data is stored within the dashboard definition. To refresh the data from the original Excel file, the
Refresh Data command must be used in the designer data view;
2. Datazen Enterprise Server data: The user browses the list of data views that have been published on the server
and selects the ones to be added to the dashboard. Supported data types include: SQL queries, MDX queries,
SharePoint lists, web services, generic ODBC data sources and others. Dashboards published based on server data
will always stay connected to the original server data view(s) and reflect the latest state of the data on the server.
Once imported into the Designer, data views are data type agnostic: they are treated equally regardless of their origin.
The rest of the dashboard creation and design experience is the same regardless of where the data came from.
The dashboard runtime provides aggregated values for the gauge, based on user selections. Note that the Comparison
Value of the same Radial Gauge instance can be bound to a field from a different data view. The following example
shows how multiple chart series can be bound to a collection of fields in a data view:
122
123
Date- and time-based datasets can, in most cases, be described by one or more date/time intervals, such as hourly,
daily, monthly, quarterly, and yearly. Datazen is able to combine multiple tables of different granularity and display them
on a single dashboard however its good to keep in mind the relevant intervals from the original dataset(s) as this can
help when deciding what date/time filter options to present to the user in the final dashboard.
Datazen is able to filter data based on both date/time fields and key fields. While key fields can be numeric in most
cases they will be either an ID or a string value. In order to prepare a filter field for use with a navigator element such as
the Selection List the filter key should be contained within a single column of the desired data table. In this way the table
rows may be grouped according to the value in the filter column. Having multiple columns contain different filter keys,
or filter criteria, allows for dashboards with multiple filter navigators to be used together in a cascading fashion, or
individually applied.
Industry
Country
Region
Banks
AFGHANISTAN
ASIA
AFGHANISTAN
ASIA
AFGHANISTAN
ASIA
Media
AFGHANISTAN
ASIA
Pharmaceuticals
AFGHANISTAN
ASIA
ALBANIA
EUROPE
124
Key-based filters may also be hierarchically structured for use with a Selection List in a tree structure. To prepare data for
use in this type of scenario a look-up table should be created describing the hierarchical structure. This is easily
accomplished by using a table structure that includes a Key column and a Parent Key column to indicate where a node
belongs in the overall hierarchy.
ItemKey
ParentItemKey
Financial
Industrials
Consumer Staples
Consumer Discretionary
Health Care
Information Technology
Banks
Financials
Real Estate
Financials
Diversified Financials
Financials
Insurance
Financials
Industrials
Capital Goods
Industrials
Transportation
Industrials
Consumer Staples
Consumer Staples
Consumer Staples
Media
Consumer Discretionary
Consumer Discretionary
Consumer Discretionary
Consumer Services
Consumer Discretionary
Retailing
Consumer Discretionary
125
Pharmaceuticals
Health Care
Health Care
Information Technology
Information Technology
Telecommunication Services
Information Technology
126
Worksheets
When preparing an Excel file for use with a dashboard one should enforce a policy of having one dataset per
worksheet. Each individual worksheet will be imported into the dashboard designer as a separate table. Identically
named worksheets from multiple Excel sources will be renamed upon importing by appending incrementing numbers,
for example if three worksheets entitled MyWorksheet are imported the second and third will be renamed to
MyWorksheet0 and MyWorksheet1. The screenshot below illustrates the first few rows of an ideal Excel worksheet
ready for import.
column. Upon adding this worksheet to the designer, these column headers will be preserved for easy reference in
gallery element settings. Column headers are not required, however, and if missing will be auto-generated using the
Excel A,B,C,,AA,BB, convention.
Cells
It is important that cell data is consistent within each column of a worksheets dataset. Each column will be assigned a
data type upon importing. Data types will be automatically detected as either string, double (numeric), boolean
(true/false) or datetime. Mixing data types within the same column of a worksheet can cause this detection to be
inaccurate or fail completely. This detection accounts for possible column headers being of string type. Cells should be
formatted as the correct type in Excel to ensure that dashboard designer detects the desired types. In the above
example the six columns would be typed as a datetime column, a string column, and four double columns.
If a worksheet contains calculated cells or formulas, only the resulting display value will be imported into the dashboard
designer.
Column Headers
Worksheets may, or may not contain headers in the first row of the data. First-row headers are automatically detected
when importing Excel worksheets. This is done by comparing the data types of the first two cells in each column. If the
data types of the first two cells in any column do not match the first row is determined to be column headers. For this
reason it is sometimes important to prefix numeric column headers with a string so that they may be detected as
headers and imported into the dashboard designer as such.
Dates
Dates fields are essential to many dashboards thus it is important to ensure that cells are properly formatted as dates in
Excel. In some cases this means a conversion is necessary. This section describes some techniques for converting cells
from text to dates in Excel.
Week 24-2013=DATE(MID(A2,9,4),1,-2)-WEEKDAY(DATE(MID(A2,9,4),1,3))+MID(A2,6,2)*7
2013/03/21=DATEVALUE(A1)
2013-mar-12=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))
Once a conversion like this has been applied the cells must be formatted as dates by selecting them, or the entire
column, selecting Format Cells from the Context Menu, and Date from the Category list in the Format Cells dialog.
Excels text-to-columns wizard may also be used to convert text cells to properly formatted dates.
128
Unsupported
Worksheet data in formats other than those described above could cause undesired results when imported. It is a good
idea to restrict worksheets in an Excel document to only those which are in the correct format for use with a dashboard.
Custom objects embedded into Excel worksheets including pivot tables, visualizations, and images will not be imported
into the dashboard designer.
129
130
131
Configuring Navigators
Navigators & Filtering Concepts
Navigators are used to filter input data tables into smaller subsets. Time-based navigators filter tables by selecting rows
that fall into the desired time range. Selection-based navigators filter tables by selecting rows where a particular column
value matches the desired key value; or, in cases of hierarchical trees, where a particular column value belongs to the
sub-tree of the desired key value.
Navigators can be used to provide filter values in offline datasets, or for load-on-demand and parameterized queries in
connected scenarios. For more information on which functionality you should consider please refer to Data Access.
Time Navigator
As its name implies, the time navigator filter is used to select a range of data bounded by a time range. Any control that
is connected to time-based data can opt-in (default) to the time navigator filter. If a table contains more than one timebased column, only the first is used for filtering. The series table drives the embedded visualization and determines the
overall date range of the dashboard.
Selection List
The selection list filters input data by matching the selected key value of the filter to the value of a specified column for
each row of a filtered table. In the data properties panel, first select a table that will provides the keys to be filtered and
choose the key column, then select a column for the label that will be displayed. The key column and label column can
be the same.
132
Scorecard Grid
The scorecard grid filter functions very much like the selection list filter, but in addition, it also displays score indicators
and value columns. After selecting the key, label, and optional parent key columns, an input table and column must be
selected to provide the scorecard with data. The scorecard data column should be filterable by the key column.
133
134
Cascading Filters
Filters can also be cascaded together so that the selected value of one will filter the available values in a second. To
cascade filters, apply the filters to the Key column as you would a regular gallery element.
135
Configuring Visualizations
Gauges
Gauge visualizations.
Gauges are the most basic and most widely used visualization controls in Datazen. All gauges share at least one
common property, value. In order for a gauge to function with real data, its value property must be set to a numeric
field in one of the data tables available to the dashboard in which it resides. The value property can be set by selecting
the gauge visualization on the design surface, switching to the data view and using the drop-down lists in the data
properties panel to select a data table and a numeric field.
Some gauges, such as the delta number and delta indicator visualizations, are able to display a comparison value or the
delta relationship between the value and comparison value. The comparison value, when supported, may also be set by
selecting the gauge on the design surface and using the drop-down lists in the data properties panel to select the
desired data table and numeric field which represents the comparison value.
direction property relates only to Gauge elements which support a comparison value and the color of the delta gauge
will be determined by the sign of the delta integer and the value direction property setting.
The second gauge-specific non-data property is range stops. Range stops can be adjusted via a popup accessed below
the design surface once a gauge element has been selected. This property determines at what percentage of its
comparison value visualization should be presented as on-target (green), neutral (amber) and off-target (red) a
gauges comparison value being the target.
Another non-data property of gauge element, and one shared by many other elements, is number format. The number
format property can be accessed below the design surface when an element is selected. It determines how numbers
displayed in the element should be formatted standard versus currency, for instance. This property is not dashboardwide and should be set on each element.
Charts
Chart visualizations.
An essential part of dashboard design and data visualization, Datazen offers a variety of chart elements which can be
configured to cover a wide range of scenarios. Some properties apply to all chart elements, and others only to specific
chart elements.
The number format property can be accessed below the design surface when an element is selected; this property
determines how numbers displayed in the chart element should be formatted standard versus currency for instance.
This will apply to axis annotations, as well as data point popups. This property is not dashboard-wide and should be set
on each element.
A legend may be enabled for chart elements by toggling the show legend property on the layout view.
Each individual metric, or value, displayed on a chart element is referred to as a series; multiple series can, and do, share
both a common x-axis and a common y-axis. Series are defined in the data properties panel of the data view by
selecting one or more data tables and fields. Each field will result in an individual series of datapoints on the chart
visualization with its own color.
There are three basic types of chart types in Datazen: time, category, and totals. These three chart types have matching
comparison chart elements, which allow the charts visualization to show two distinct sets of series for comparison.
Time Chart
The time chart is the most basic chart element in Datazen and can be configured by setting its main series property to a
numeric field in a data table. The time (and date) axis of the chart will automatically be set to the first valid date/time
field in the data table.
137
Category Chart
The category chart, unlike the time chart, will allow an x-axis relating to a grouping rather than a date/time field. This
grouping is assigned through the category coordinate property accessible in the data properties panel of the data view.
Category coordinates are restricted to fields of string type. The data will be grouped by this field and displayed on the
resulting chart with the category coordinate field comprising the x-axis. The main series of category charts is set in the
same way as the time chart and is restricted to numeric values.
Totals Chart
The totals chart accomplishes two unique things: firstly, it does not present multiple series but rather only the sum, or
total, of the defined main series. Secondly, it has the option to use data table columns as a grouping when its data
structure property is set to ByColumns. This can be quite useful when dealing with flattened data. In the latter mode,
only the main series property is available as the category column is automatically determined by the number of fields
selected for the main series property.
Comparison Chart
Each of the three chart types are available as comparison charts. This allows the user to specify not only a main series,
but also a second comparison series which can be displayed in different ways by adjusting the series visualization to
one of the following: BarVsThinBar, LineVsBar, and BarVsStepArea. These visualization types describe how the
comparison series should be displayed in relation to the bars of the main series.
138
TreeMap
TreeMap
visualization.
The treemap element displays metrics by applying their values to the area and color of tiles within a rectangular grid. In
139
the data properties panel of the data view, a designer can select a numeric field to be represented by the tiles size and a
numeric field to be represented by the tiles color. In addition to these properties, the designer can also set which fields
should be displayed both in the popup of each tile and, when space permits, on the tile itself.
Maps
Map visualizations.
Maps are a fantastic way to visualize geographical data, and Datazen provides three types of map visualization along
with 10 maps. These three elements require a few key data properties be set in order to properly display real data.
The first is the keys property which will connect the data to specific map regions. Ensure that you have the correct map
selected USA, for instance, if the data is indexed by USA states; or WorldCountries if the data is indexed by country
name. The selected map may be changed in the visual properties panel in the layout view. Once the correct map has
been selected the keys property in the data properties panel of the data view should be set to the data table and field
which contains the region names, state or country for example.
140
View.
The range stop heat map element allows the user to visualize a values relation to a target. Because of this, the targets
property must be set on the data properties panel of the data view, in addition to both values and keys. The targets
property should be set to a numeric field in the same data table as both the values and keys. The range stop heat map
also supports the value direction property, which may be set to either HigherValuesAreBetter or LowerValuesAreBetter.
This determines whether positive values will be colored green, indicating a desirable change for the better, or red,
indicating an undesirable change for the worse. The color of the regions will be determined by the sign of the delta
between the value and the target as well as the value direction property setting.
DataGrids
DataGrid visualizations.
In cases when the best visualization is the data itself, Datazen includes three datagrid elements to accomplish this.
The most basic datagrid, the simple datagrid, is capable of displaying multiple columns of data with custom formatting
and headers. The simple datagrid can be connected to real data by selecting a data table in the data properties panel of
the data view. Once a data table has been selected, the fields to be included can be selected by checking them off on
the right hand side of the data properties panel. In addition to including column header text can be entered in the
textboxes adjacent to the field checkboxes, and, in the case of date/time fields and numeric, formatting options can be
specified.
The remaining two datagrid elements, the indicator datagrid and chart datagrid, allow the designer to integrate gauge
and chart columns, respectively. This can be accomplished by selecting the add gauge (or chart) column in the
columns panel of the data view.
Once a gauge column has been added to a datagrid some properties must be set in the options panel accessed by
clicking the options button beside the gauge column in question. First, select a gauge type from the first drop-down list
in the options panel, then continue to configure the gauge as normal. The datagrid will automatically feed the gauge
only the data specific to that row of the datagrid.
141
142
Publishing Dashboards
Publishing Steps
To publish a dashboard to a server, open the desired dashboard in the designer, swipe up from the bottom of the
screen (or right-click to activate the bottom menu) and click the publish button.
If there are no server connections configured, one must first be configured. Enter the appropriate connection credentials
and click Connect.
If the dashboard has been edited since it was last saved, the first step in publishing a dashboard is to save it to the local
folder. At this point, the title, filename, local group, culture, and fiscal start date can be modified. Make any desired
changes and click Save.
143
At this point the dashboard has been published and will be accessible from any dashboard viewer client.
144
Advanced Topics
This section contains the following documents:
Parameterized Queries & Load on Demand
Drill-throughs to Other Dashboards or Custom URLs
Hierarchical Selections
Cascading Selection Lists
Working with Custom Maps
145
Note that for the Product parameter we use the % symbol as a default value. This is a T-SQL wildcard that will match any
string, meaning that we want all values returned when nothing is specified in the parameter.
Click on Done to create our query.
The SQL query can now make use of parameters by enclosing them in a set of double braces such as {{ @ParamName
}}. Note that the Product WHERE clause has a special case for the empty string. The reason for this is that product
selection will come from a Selection List control in a dashboard that has the All option enabled. When the user selects
All the selection list will pass the empty string as a selection which we handle in our query to select all products.
Click on Next to finish creating our query.
146
screen.
147
OData
OData queries can be personalized by including the username token in the query url, illustrated below in a filter
parameter:
http://services.odata.org/Northwind/Northwind.svc/Customers?$filter=User%20eq%20%27{{ userna
me }}%27
148
SSAS
MDX queries can include the username token anywhere in the query, illustrated below by selecting a MEMBER by
username:
MEMBER [USERNAME] AS "{{ username }}"
The username token can also be used, for example, in a SET statement.
SSAS queries can also be personalized through the EffectiveUser method utilizing row-level security. This method can be
used in conjunction with the MDX method outlined above. For more information see Implementing Row-Level Security
for SSAS Data Views.
149
150
Every user that will have access to a personalized data connection must have access to the SSAS instance, either as an
administrator or defined in a role.
151
Roles can then be used to secure SSAS data appropriately. Securing cube data with roles is outside the scope of this
document.
152
When Datazen connects to Analysis Services, it will automatically append EffectiveUserName={{ username }} to the
connection string. When any data view that belongs to this data connection is executed, it will run in the context of the
specified user account.
Note: If you require more granularity over this setting in your connection string, you can manually set the
EffectiveUserName property:
Provider=MSOLAP; Data Source=10.0.0.86; Initial Catalog=Adventure Works DW 2008R2 SE;Effecti
veUserName=MYDOMAIN\{{ username }}
153
Implementing a user dimension in your cube is outside the scope of this document.
154
155
In the Custom URL Parameter dialog a URL can be combined with available parameters by pasting, or typing the URL as
well as touching or clicking on available parameter tokens listed to the right of the URL textbox. Parameters can also be
typed or pasted manually into the URL textbox. A preview of the Custom URL combined with sample resolved
parameters (if included) will be displayed in the panel below the input textbox.
156
Hierarchical Selections
Preparing Hierarchical Data
The best practice for implementing hierarchical selections is to prepare data in a normalized fashion, specifically in the
case of parent and child data relations.
Queries and tables should be structured to return data rows with a key, a parent key (or null) and a label. This data can
then be used to create a hierarchical user interface with a hierarchically structured Selection List.
157
158
159
Extending Datazen
This section contains the following documents:
Implementing Custom Branding
Implementing Custom Maps
160
Image assets
Each supported client uses a variety of specifically-sized and named image assets. Some of these files are shared
between clients, most of them exist solely for use in a discrete client.
As mentioned above, the majority of the images are logos of various sizes, while others are solid-color icons. These
icons can be easily modified to fit any custom brand by changing their color.
Important: Unless otherwise specified, all graphic files are assumed to be 32-bit PNG images.
Common
The following assets are shared between two or more different clients:
Filename
Dimensions
Description
Activity42x42.png
42x42
BlankAvatarImage80x80.png
80x80
Hub-Connected32x32.png
32x32
161
Hub-Disconnected32x32.png
32x32
Server-Connected64x64.png
64x64
Server-Default64x64.png
64x64
Server-Disconnected64x64.png
64x64
Android
The following unique files are required only by the Android client. Several different screen resolutions and
configurations are supported.
Filename
Dimensions
Description
Android-AddNewServerIcon30x30.png
30x30
Android-Background1200x1900.png
1200x1900
Android-Background768x1280.png
768x1280
Android-Logo320x64.png
320x64
Logo
iOS
The following unique files are required by only the iOS clients. The application is a universal binary that runs on both
iPhone and iPad. High-resolution (Retina) graphics are identified by the filename suffix @2x.
Filename
Dimensions
Description
iOS7-AddNewServerIcon42x42.png
42x42
84x84
iOS7-Background320x568.png
320x568
640x1136
iOS7-Background568x320.png
568x320
1136x640
iOS7-Background768x1024.png
768x1024
1536x2048
162
iOS7-Background1024x768.png
1024x768
2048x1536
iOS7-BackIcon42x42.png
42x42
84x84
iOS7-Logo225x45.png
225x45
550x90
iOS7-Menu32x32.png
32x32
64x64
iOS7-Search32x32.png
32x32
64x64
iOS7-Settings42x42.png
42x42
84x84
Windows 8
The following unique files are required only by the Windows 8 client. Note that in addition to the standard naming
convention, a resolution identifier (.100, .140, and .180) immediately precedes the file extension. These numbers
represent the size of each image as a percentage of the standard resolution image and each asset should therefore be
sized appropriately: 100%, 140%, and 180%. These images are then loaded automatically based on the clients display
capabilities.
Filename
Dimensions
Description
Windows8-Background
1366x768.100.png
1366x768
Windows8-Background
1366x768.140.png
1912x1075 (1366x768 *
140%)
Windows8-Background
1366x768.180.png
2459x1382 (1366x768 *
180%)
Windows8-Footer220x22.100.png
220x22
Windows8-Footer220x22.140.png
163
Windows8-Footer220x22.180.png
Windows8-Logo450x90.100.png
450x90
Windows8-Logo450x90.140.png
Windows8-Logo450x90.180.png
Windows8-SmallLogo
150x30.100.png
150x30
Windows8-SmallLogo
150x30.140.png
Windows8-SmallLogo
150x30.180.png
Windows8-Style120x110.100.png
120x110
Windows8-Style120x110.140.png
Windows8-Style120x110.180.png
Important If no custom dashboard style is required, ensure that all Window8-Style files are omitted from the final
brand package ZIP file. This includes the three PNGs as well as the Window8-Style.xaml config file.
Windows Phone
The following unique files are required only by the Windows Phone clients. Note that while high-resolution image
filenames are appended with the resolution identifier .150, this number does not reflect the images scale. And unlike
Windows 8 assets, standard resolution image filenames do not use a .100 identifier.
Filename
Dimensions
Description
WP-Background480x853.png
480x853
WP-Background480x853.150.png
1080x1920
WP-Logo280x40.png
280x40
WP-Logo280x40.150.png
560x80
HTML
Only three images are required for the two HTML pages: a standard resolution logo, a high resolution logo, and a
spinner image. For the sake of ease, the two required logos can be renamed copies of the similar iOS assets, iOS7-Logo
164
225x45.png and [email protected]. The spinner image, a 32-bit PNG, is animated using a CSS rotation
transform and is displayed very briefly, so a high resolution version of the asset is unnecessary. It is recommended that
the spinner image be kept as it is, but recolored as appropriate.
Filename
Dimensions
Description
Html-Logo225x45.png
225x45
550x90
Html-Spinner42x42.png
42x42
Configuration files
A brand package requires two text-based configuration files. A third optional file Windows8-Style.xaml is needed if a
custom dashboard style is desired.
Filename
Description
theme.json
A JSON file containing the name/value pairs for setting the colors of the client applications
main user interface.
Html-Style.css
A CSS file for styling the browser-based login and dashboard list pages.
Windows8Style.xaml
An optional XAML file for styling for creating custom dashboard styles and color palettes.
165
166
A globally unique, valid string id to represent the color palette, eg. PaletteName="MyCompanyGreen" or
PaletteName="MyCompanyBlue".
ChartingDataPoints
These collections of hexadecimal values represent the colors used by a chart when it contains a specific number of data
point series. If, for example, the control is given four series, it will draw the data points using the colors from the
ChartingDataPoints4 collection.
It is recommended to create the largest collection, ChartingDataPoints12, first and then remove color for the lesser
properties.
GaugeStops and MappingStops
These collections of three colors handle the colors for their respective controls.
GaugeStops contains the colors for the three different gauge sections in the following order:
Positive
Caution
Negative
These are generally green, yellow, and red respectively.
MappingStops contains the colors used by the map control to differentiate different data regions.
Using the same values found in ChartingDataPoints3 is recommended.
Dashboard panel styles
Due to the way the dashboard style parser is designed, four properties must be set to complete a dashboard style: two
each for the default dashboard panel style and the accent dashboard panel style. These properties handle the color of
the title and subtitle within an individual panel. These properties are set among the two template code blocks:
PanelHeaderTemplate and AccentPanelHeaderTemplate.
Title
To set the color of the title of a dashboard panel, locate and change the Foreground property of a TextBlock with the
property Text="{Binding Title}" found within the corresponding PanelHeaderTemplate block.
SubTitle
To set the color of the subtitle of a dashboard panel, locate and change the Foreground property of a TextBlock with the
167
168
169
id
170
The unique id of the data provider. If more than one schema definition file has the same id, the last one loaded will be
used (according to the alphanumerically sorted full path and file name of the schema definition file). It is recommended
that the format of the id start with the underlying data provider driver type and optionally include the driver name
and/or the intended audience (e.g. ODBC.SQLITE, or MSSQL.FINANCEDEPT). This element is required.
Location:
<dataproviderschema>
<id>[string]</id>
enabled
Determines whether the data provider is visible in the Control Panel. To disable a built-in data provider, use the id of the
built-in data provider (as listed in the table below) and set enabled to false. This element is required.
Location:
<dataproviderschema>
<enabled>[true|false]</enabled>
name
The name of the data provider as it appears in the Control Panel. This element is required when enabled is true.
Location:
<dataproviderschema>
<name>[string]</name>
type
The underlying driver type of the data provider. This element is required when enabled is true.
Location:
<dataproviderschema>
<type>[sql|sqlazure|ssas|odbc|oledb]</type>
properties
A collection of property nodes that define the components of the connection string. This element is required when
enabled is true.
Location:
<dataproviderschema>
<properties>
....
171
property name
The name of the property. Example: Data Source, or Server. This element is required.
Location:
<dataproviderschema>
<properties>
<property>
<name>[string]</name>
property aliases
A collection of alias nodes that define alternate names for the property. Example: Database.
Location:
<dataproviderschema>
<properties>
<property>
<aliases>
<alias>[string]</alias>
...
property value
The default value of the property. When readonly is true and optional is false this value becomes mandatory in the
data connection.
Location:
<dataproviderschema>
<properties>
<property>
<value>[string]</value>
property type
The data type of the property.
Location:
<dataproviderschema>
<properties>
<property>
<type>[boolean|number|string]</type>
172
property readonly
Marks this property as read-only.
Location:
<dataproviderschema>
<properties>
<property>
<readonly>[true|false]</readonly>
property optional
Optional properties can be added or removed when constructing a data connection.
Location:
<dataproviderschema>
<properties>
<property>
<optional>[true|false]</optional>
property masked
Whether the property will be masked in the Control Panel. Masked properties are protected as password-style inputs
only when type is string. Unless readonly is set to true, new values may still be set.
Location:
<dataproviderschema>
<properties>
<property>
<masked>[true|false]</masked>
property maskedForNonOwner
Whether the property will be masked in the Control Panel for users that are not a hub owner. Masked properties are
protected as password-style inputs only when type is string.
Location:
173
<dataproviderschema>
<properties>
<property>
<maskedForNonOwner>[true|false]</maskedForNonOwner>
property allowPathTraversal
When type is string, the property value is validated against potential path traversal attacks. When allowPathTraversal
is false, any value with ..\, or ../, will be rejected. It is strongly recommended that allowPathTraversal be set to
false.
Location:
<dataproviderschema>
<properties>
<property>
<allowPathTraversal>[true|false]</allowPathTraversal>
property startsWith
A string that the property value must start with. Any value that does not start with the specified string will be rejected.
For example, if the property is a location to store log files, a file path starting with c:\logs\ can be enforced.
Location:
<dataproviderschema>
<properties>
<property>
<startsWith>[string]</startsWith>
property pattern
A regular expression that the property value must match. Any value that does not match the specified pattern will be
rejected.
For example, if the property value must start with either c:\logs\ or \\logserver\logs\ and end with .log, pattern
would be ^(c:\\logs\\|\\\\logserver\\logs\\)\w+\.log$
Location:
<dataproviderschema>
<properties>
174
<property>
<pattern>[regular expression]</pattern>
property options
A collection of option elements that define acceptable values for the property. If set, the property value must match
one of the values in the collection, otherwise it will be rejected.
Location:
<dataproviderschema>
<properties>
<property>
<options>
<option>[string]</option>
...
Note: All other validation rules are still applied when options are specified.
Type
Description
MSSQL
sql
MSSQLAZURE
sqlazure
MSSSAS
ssas
ODBC.DSN
odbc
ODBC.MYSQL
odbc
ODBC.ORACLE
odbc
ODBC.POSTGRES
odbc
OLEDB.ORACLE.ORAOLEDB
oledb
OLEDB.POSTGRES.PGNP
oledb
176
<value>Pa$$w0rd</value>
<masked>true</masked>
<readonly>true</readonly>
</property>
<property>
<name>Encrypt</name>
<type>boolean</type>
<value>true</value>
<readonly>true</readonly>
</property>
</properties>
</dataproviderschema>
Because every property is masked and read-only, a data connection author will not be able to see or edit the property
values when creating a new connection with this provider.
177