[CryptographyServices]
; Name of the application using the data protection provider used for key discrimination.
ApplicationName=waveApps

; Timeout, in minutes, for cached user-specific data protection provider.
UserDataProtectionTimeout=[double]:5

[Diagnostics]
; Defines the maximum number of critical messages that can be logged in a burst.
CriticalBurstLimit=[int]:5000

; Defines the maximum expected rate at which critical messages are logged for rate limiting.
CriticalRate=[int]:100

; Defines the maximum number of debug messages that can be logged in a burst.
DebugBurstLimit=[int]:5000

; Defines the maximum expected rate at which debug messages are logged for rate limiting.
DebugRate=[int]:100

; Defines the maximum number of error messages that can be logged in a burst.
ErrorBurstLimit=[int]:5000

; Defines the maximum expected rate at which error messages are logged for rate limiting.
ErrorRate=[int]:100

; Defines the maximum number of first chance exception messages that can be logged in a burst.
FirstChanceExceptionBurstLimit=[int]:5000

; Defines the maximum expected rate at which first change exception messages are logged for rate limiting.
FirstChanceExceptionRate=[int]:100

; Defines the maximum number of information messages that can be logged in a burst.
InformationBurstLimit=[int]:5000

; Defines the maximum expected rate at which information messages are logged for rate limiting.
InformationRate=[int]:100

; Defines flag that determines if first chance exceptions are logged.
LogFirstChanceExceptions=[bool]:True

; Defines the path used to archive log files.
LogPath=H:\Projects\snapdb\openHistorian\build\Development\Applications\waveApps\net9.0\Logs\

; Defines the maximum number of log files to keep in the archive.
MaxLogFiles=[int]:300

; Defines the maximum number of swallowed exception messages that can be logged in a burst.
SwallowedExceptionBurstLimit=[int]:5000

; Defines the maximum expected rate at which swallowed exception messages are logged for rate limiting.
SwallowedExceptionRate=[int]:100

; Defines the verbosity level for logging.
Verbosity=[Gemstone.Diagnostics.VerboseLevel,Gemstone.Diagnostics]:Ultra

; Defines the maximum number of warning messages that can be logged in a burst.
WarningBurstLimit=[int]:5000

; Defines the maximum expected rate at which warning messages are logged for rate limiting.
WarningRate=[int]:100

[ExampleConnectionSettings]
; Example MySQL database connection string
MySQL_ConnectionString=Server=localhost; Database=DatabaseName; Uid=root; Pwd=password

; Example MySQL database ADO.NET provider string
MySQL_DataProviderString=AssemblyName=MySql.Data; ConnectionType=MySql.Data.MySqlClient.MySqlConnection

; Example ODBC database connection string
ODBC_ConnectionString=Driver={SQL Server}; Server=.\SQLEXPRESS; Database=DatabaseName; Trusted_Connection=yes

; Example ODBC database ADO.NET provider string
ODBC_DataProviderString=AssemblyName=System.Data; ConnectionType=System.Data.Odbc.OdbcConnection

; Example OleDB database connection string
OleDB_ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Example.mdb

; Example OleDB database ADO.NET provider string
OleDB_DataProviderString=AssemblyName=System.Data; ConnectionType=System.Data.OleDb.OleDbConnection

; Example Oracle database connection string
Oracle_ConnectionString=Data Source=//localhost:1521/DatabaseName; User Id=Username; Password=password

; Example Oracle database ADO.NET provider string
Oracle_DataProviderString=AssemblyName=Oracle.ManagedDataAccess; ConnectionType=Oracle.ManagedDataAccess.Client.OracleConnection

; Example PostgreSQL database connection string
PostgreSQL_ConnectionString=Host=localhost; Database=DatabaseName; Username=postgres; Password=password

; Example PostgreSQL database ADO.NET provider string
PostgreSQL_DataProviderString=AssemblyName=Npgsql; ConnectionType=Npgsql.NpgsqlConnection

; Example SQLite database connection string
SQLite_ConnectionString=Data Source=Example.db; Version=3; FailIfMissing=True; Foreign Keys=True

; Example SQLite database ADO.NET provider string
SQLite_DataProviderString=AssemblyName=Microsoft.Data.Sqlite; ConnectionType=Microsoft.Data.Sqlite.SqliteConnection

; Example SQL Server database connection string
SqlServer_ConnectionString=Data Source=.\SQLEXPRESS; Initial Catalog=DatabaseName; Integrated Security=SSPI; TrustServerCertificate=True; Connect Timeout=5

; Example SQL Server database ADO.NET provider string
SqlServer_DataProviderString=AssemblyName=Microsoft.Data.SqlClient; ConnectionType=Microsoft.Data.SqlClient.SqlConnection

[Failover]
; Defines the cluster secret used to identify and validate other nodes.
ClusterSecret=GPAClusterSecret

; Defines the time in hours, during which logs from other failover nodes are kept in the database.
LogRetention=[double]:0.01666666

; Defines the list of urls for other nodes in the cluster.
Nodes=[string[]]:localhost:8280;localhost:8280

; Defines the priority of this node. Nodes with highrt priority take precendece over lower priority. A value of 0 means Failover mode is disabled
Priority=[int]:0

; Defines the interval in ms after which the system will try to startup again.
RetryInterval=[int]:1000

; Defines the delay in ms during the system startup before the Failover logic will reach out to other nodes.
StartupDelay=[int]:500

[GeospatialDisplayServer]
; Defines the attribution displayed on maps in the user interfaces.
Attribution=&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <br>' + '&copy; <a href="http://cartodb.com/attributions">CartoDB</a>

; Defines the default center latitude on the maps in the user interfaces.
DefaultLatitude=[double]:35.0458

; Defines the default center longitude on the maps in the user interfaces.
DefaultLongitude=[double]:-85.3094

; Defines the default zoom level on the maps in the user interfaces.
DefaultZoom=[int]:5

; Defines the maximum zoom level on the maps in the user interfaces.
MaxZoom=[int]:19

; Defines the minimum zoom level on the maps in the user interfaces.
MinZoom=[int]:1

; Defines the northeast corner latitude of the default map bounds.
NorthEastLatitude=[double]:49.384358

; Defines the northeast corner longitude of the default map bounds.
NorthEastLongitude=[double]:-66.93457

; Defines the southwest corner latitude of the default map bounds.
SouthWestLatitude=[double]:24.396308

; Defines the southwest corner longitude of the default map bounds.
SouthWestLongitude=[double]:-125

; Defines the subdomains used for the Tile server used to display maps in the user interfaces.
Subdomains=abcd

; Defines the url for the Tile server used for maps in the user interfaces.
Url=https://tile.openstreetmap.org/{z}/{x}/{y}.png

; When true, uses the bounding box (SouthWest/NorthEast coordinates) to set the initial map view. When false, uses DefaultLatitude, DefaultLongitude, and DefaultZoom instead.
UseMapBounds=[bool]:False

[grafanaHosting]
; Defines the Grafana Administrator user required for managing configuration.
AdminUser=admin

; Defines the authorization header name used for Grafana user authentication.
AuthProxyHeaderName=X-WEBAUTH-USER

; Defines the relative URL to the 40x40px avatar image to use for Grafana users.
AvatarResource=Images/Icons/openHistorian.png

; Defines the password of the external Grafana user.
ExternalPassword=

; Defines the username of the external Grafana user, used by the OH Grafana data source.
ExternalUser=grafana-external

; Defines the local URL to the hosted Grafana server instance. Setting is for internal use, external access to Grafana instance will be proxied via WebHostURL.
HostedURL=http://localhost:8185

; Defines the session cookie name used to save the last visited Grafana dashboard.
LastDashboardCookieName=x-last-dashboard

; Defines the database ID of the target organization used for user synchronization.
OrganizationID=[int]:1

; Defines the path to the Grafana server to host - set to empty string to disable hosting.
ServerPath=Grafana\bin\grafana-server.exe

[HealthExporter]
; Total number of export files to produce.
ExportCount=[int]:0

; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\server\share) with no trailing slash for network shares.
ExportDestination1=C:\

; Boolean flag that determines whether to attempt network connection to share.
ExportDestination1_ConnectToShare=[bool]:False

; Domain used for authentication to network share (computer name for local accounts).
ExportDestination1_Domain=

; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
ExportDestination1_FileName=Path\FileName.txt

; Password used for authentication to network share. Value supports encryption in the format of "KeyName:EncodedValue".
ExportDestination1_Password=

; User name used for authentication to network share.
ExportDestination1_UserName=

; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\server\share) with no trailing slash for network shares.
ExportDestination2=\server\share

; Boolean flag that determines whether to attempt network connection to share.
ExportDestination2_ConnectToShare=[bool]:False

; Domain used for authentication to network share (computer name for local accounts).
ExportDestination2_Domain=domain

; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
ExportDestination2_FileName=\Path\FileName.txt

; Password used for authentication to network share. Value supports encryption in the format of "KeyName:EncodedValue".
ExportDestination2_Password=config-cipher:base64-encoded-password

; User name used for authentication to network share.
ExportDestination2_UserName=username

; Total allowed time for each export to execute, in milliseconds. Set to -1 for no specific timeout.
ExportTimeout=[int]:-1

; Maximum number of retries that will be attempted during an export if the export fails. Set to zero to only attempt export once.
MaximumRetryAttempts=[int]:4

; Interval to wait, in milliseconds, before retrying an export if the export fails.
RetryDelayInterval=[int]:1000

[Security.OpenIDConnect]
; Defines the authority URL of the OpenID Connect provider.
Authority=https://auth.gridprotectionalliance.org/realms/Test

; Defines the client ID of the application.
ClientId=ClientID

; Defines the secret used to autheticate the client with the OpenID Connect provider.
ClientSecret=ClientSecret

; Defines a flag to enable the OAuth authentication provider.
Enabled=[bool]:False

; Defines the scopes requested from the OpenID Connect provider in a comma sepperated list.
Scopes=profile

; Defines the claim used to identify the user.
UserIdClaim=sub

[StatusExporter]
; Total number of export files to produce.
ExportCount=[int]:0

; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\server\share) with no trailing slash for network shares.
ExportDestination1=C:\

; Boolean flag that determines whether to attempt network connection to share.
ExportDestination1_ConnectToShare=[bool]:False

; Domain used for authentication to network share (computer name for local accounts).
ExportDestination1_Domain=

; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
ExportDestination1_FileName=Path\FileName.txt

; Password used for authentication to network share. Value supports encryption in the format of "KeyName:EncodedValue".
ExportDestination1_Password=

; User name used for authentication to network share.
ExportDestination1_UserName=

; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\server\share) with no trailing slash for network shares.
ExportDestination2=\server\share

; Boolean flag that determines whether to attempt network connection to share.
ExportDestination2_ConnectToShare=[bool]:False

; Domain used for authentication to network share (computer name for local accounts).
ExportDestination2_Domain=domain

; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
ExportDestination2_FileName=\Path\FileName.txt

; Password used for authentication to network share. Value supports encryption in the format of "KeyName:EncodedValue".
ExportDestination2_Password=config-cipher:base64-encoded-password

; User name used for authentication to network share.
ExportDestination2_UserName=username

; Total allowed time for each export to execute, in milliseconds. Set to -1 for no specific timeout.
ExportTimeout=[int]:-1

; Maximum number of retries that will be attempted during an export if the export fails. Set to zero to only attempt export once.
MaximumRetryAttempts=[int]:4

; Interval to wait, in milliseconds, before retrying an export if the export fails.
RetryDelayInterval=[int]:1000

[System]
; Controls ability to remotely restart the host service
AllowRemoteRestart=True

; Defines the application name for the hosted Iaon instance
ApplicationName=WaveApps

; File name for last known good system configuration (only cached for a Database or WebService connection)
CachedConfigurationFile=SystemConfiguration.xml

; Defines the company acronym for the system
CompanyAcronym=GPA

; Defines the company name for the system
CompanyName=Grid Protection Alliance

; Defines the total number of older backup configurations to maintain
ConfigurationBackups=[int]:5

; Defines the path used to cache serialized configurations
ConfigurationCachePath=H:\Projects\snapdb\openHistorian\build\Development\Applications\waveApps\net9.0\ConfigurationCache\

; Specifies type of configuration: Database, WebService, BinaryFile or XmlFile
ConfigurationType=[Gemstone.Timeseries.ConfigurationType,Gemstone.Timeseries]:Database

; Configuration database connection string
ConnectionString=Data Source=.\SQLEXPRESS; Initial Catalog=DatabaseName; Integrated Security=SSPI; Connect Timeout=5

; Configuration database ADO.NET data provider assembly type creation string
DataProviderString=AssemblyName=Microsoft.Data.SqlClient; ConnectionType=Microsoft.Data.SqlClient.SqlConnection

; Default culture to use for language, country/region and calendar formats
DefaultCulture=en-US

; Defines the default frame rate used for adapters in frames per second.
DefaultFrameRate=[int]:30

; Defines the default lag time used for adapters in seconds.
DefaultLagTime=[double]:10

; Defines the default lead time used for adapters in seconds.
DefaultLeadTime=[double]:10

; The bootstrap theme file to be used if no theme is specified by the user
DefaultTheme=bootstrap.min.css

; Defines the directory where Export Profile records will be stored.
ExportProfilesDirectory=C:\ProgramData\openHistorian\ExportProfiles

; Defines flag that determines if statistics should be published as SNMP trap messages
ForwardStatisticsToSnmp=[bool]:False

; Defines if the instance of WaveApps is used as central platform or local substation platform.
IsCentral=[bool]:False

; Path to the local certificate used by this server for authentication
LocalCertificate=WaveApps.cer

; Defines the maximum number of allowed thread pool I/O completion port threads (used by socket layer)
MaxThreadPoolIOPortThreads=[int]:1000

; Defines the maximum number of allowed thread pool worker threads
MaxThreadPoolWorkerThreads=[int]:32767

; Defines the number of unarchived measurements allowed in any output adapter queue before taking evasive action and dumping data
MeasurementDumpingThreshold=[int]:500000

; Defines the number of unarchived measurements allowed in any output adapter queue before displaying a warning message
MeasurementWarningThreshold=[int]:100000

; Defines the maximum allowed deviation from median timestamp, in seconds, for consideration in average timestamp calculation
MedianTimestampDeviation=[double]:30

; Defines the minimum number of allowed thread pool I/O completion port threads (used by socket layer)
MinThreadPoolIOPortThreads=[int]:1

; Defines the minimum number of allowed thread pool worker threads
MinThreadPoolWorkerThreads=[int]:32

; Defines the expression used for point tag naming.
PointTagNameExpression={Company.Acronym}_{DeviceAcronym}[?{SignalType.Source}=Phasor[-{SignalType.Suffix}{SignalIndex}]]:{Vendor.Acronym}{SignalType.Abbreviation}[?{SignalType.Source}!=Phasor[?{SignalIndex}!=-1[{SignalIndex}]]]

; Set to true to try the cached configuration first, before loading database configuration - typically used when cache is updated by external process
PreferCachedConfiguration=[bool]:False

; Sets desired process priority: Normal, AboveNormal, High, RealTime
ProcessPriority=[System.Diagnostics.ProcessPriorityClass,System.Diagnostics.Process]:High

; Defines flag that determines if statistics should be processed during operation
ProcessStatistics=[bool]:True

; Path to the directory where remote certificates are stored
RemoteCertificatesPath=Certs\Remotes

; Defines the default number of unpublished samples (in seconds) allowed in any action adapter queue before displaying a warning message
SampleSizeWarningThreshold=[int]:10

; Defines the System frequency in Hz
SystemFrequency=[double]:60

; Defines the system name for the application instance
SystemName=

; Set to true if all runtime adapter ID's will be unique to allow for easier adapter specification
UniqueAdaptersIDs=True

[UserSettings]
; Defines a JSON file used to load the user specific settings if the user has not changed them.
ConfigFile=UserDefaultSettings.json

[WebHosting]
; Expiration of the user's session relative to the last time it was accessed, in minutes
AuthenticationSessionTimeout=[double]:15

; Expiration of the authentication ticket relative to its creation time, in hours
AuthenticationTicketTimeout=[double]:24

; Certificate used to host the service.
HostCertificate=

; URLs the hosted service will listen on.
HostURLs=http://localhost:8180

; Root directory for the web server.
WebRoot=H:\Projects\snapdb\openHistorian\build\Development\Applications\waveApps\net9.0\..\..\..\..\..\src\Applications\openHistorian.WebUI\wwwroot