@@ -94,6 +94,13 @@ export class Configuration implements IConfigurationSettings {
9494 */
9595 private _serverUrl : string = 'https://collector.exceptionless.io' ;
9696
97+ /**
98+ * The config server url that all configuration will be retrieved from.
99+ * @type {string }
100+ * @private
101+ */
102+ private _configServerUrl : string = 'https://config.exceptionless.io' ;
103+
97104 /**
98105 * The heartbeat server url that all heartbeats will be sent to.
99106 * @type {string }
@@ -115,6 +122,14 @@ export class Configuration implements IConfigurationSettings {
115122 */
116123 private _dataExclusions : string [ ] = [ ] ;
117124
125+ private _includePrivateInformation : boolean ;
126+ private _includeUserName : boolean ;
127+ private _includeMachineName : boolean ;
128+ private _includeIpAddress : boolean ;
129+ private _includeCookies : boolean ;
130+ private _includePostData : boolean ;
131+ private _includeQueryString : boolean ;
132+
118133 /**
119134 * A list of user agent patterns.
120135 * @type {Array }
@@ -146,8 +161,10 @@ export class Configuration implements IConfigurationSettings {
146161 this . log = inject ( configSettings . log ) || new NullLog ( ) ;
147162 this . apiKey = configSettings . apiKey ;
148163 this . serverUrl = configSettings . serverUrl ;
164+ this . configServerUrl = configSettings . configServerUrl ;
149165 this . heartbeatServerUrl = configSettings . heartbeatServerUrl ;
150166 this . updateSettingsWhenIdleInterval = configSettings . updateSettingsWhenIdleInterval ;
167+ this . includePrivateInformation = configSettings . includePrivateInformation ;
151168
152169 this . environmentInfoCollector = inject ( configSettings . environmentInfoCollector ) ;
153170 this . errorParser = inject ( configSettings . errorParser ) ;
@@ -205,12 +222,33 @@ export class Configuration implements IConfigurationSettings {
205222 public set serverUrl ( value : string ) {
206223 if ( ! ! value ) {
207224 this . _serverUrl = value ;
225+ this . _configServerUrl = value ;
208226 this . _heartbeatServerUrl = value ;
209227 this . log . info ( `serverUrl: ${ value } ` ) ;
210228 this . changed ( ) ;
211229 }
212230 }
213231
232+ /**
233+ * The config server url that all configuration will be retrieved from.
234+ * @returns {string }
235+ */
236+ public get configServerUrl ( ) : string {
237+ return this . _configServerUrl ;
238+ }
239+
240+ /**
241+ * The config server url that all configuration will be retrieved from.
242+ * @param value
243+ */
244+ public set configServerUrl ( value : string ) {
245+ if ( ! ! value ) {
246+ this . _configServerUrl = value ;
247+ this . log . info ( `configServerUrl: ${ value } ` ) ;
248+ this . changed ( ) ;
249+ }
250+ }
251+
214252 /**
215253 * The heartbeat server url that all heartbeats will be sent to.
216254 * @returns {string }
@@ -286,6 +324,138 @@ export class Configuration implements IConfigurationSettings {
286324 this . _dataExclusions = Utils . addRange < string > ( this . _dataExclusions , ...exclusions ) ;
287325 }
288326
327+ /**
328+ * Gets a value indicating whether to include private information about the local machine.
329+ * @returns {boolean }
330+ */
331+ public get includePrivateInformation ( ) : boolean {
332+ return this . _includePrivateInformation ;
333+ }
334+
335+ /**
336+ * Sets a value indicating whether to include private information about the local machine
337+ * @param value
338+ */
339+ public set includePrivateInformation ( value : boolean ) {
340+ const val = value || false ;
341+ this . _includePrivateInformation = val ;
342+ this . includeUserName = val ;
343+ this . _includeMachineName = val ;
344+ this . includeIpAddress = val ;
345+ this . includeCookies = val ;
346+ this . includePostData = val ;
347+ this . includeQueryString = val ;
348+ this . changed ( ) ;
349+ }
350+
351+ /**
352+ * Gets a value indicating whether to include User Name.
353+ * @returns {boolean }
354+ */
355+ public get includeUserName ( ) : boolean {
356+ return this . _includeUserName ;
357+ }
358+
359+ /**
360+ * Sets a value indicating whether to include User Name.
361+ * @param value
362+ */
363+ public set includeUserName ( value : boolean ) {
364+ this . _includeUserName = value || false ;
365+ this . changed ( ) ;
366+ }
367+
368+ /**
369+ * Gets a value indicating whether to include MachineName in MachineInfo.
370+ * @returns {boolean }
371+ */
372+ public get includeMachineName ( ) : boolean {
373+ return this . _includeMachineName ;
374+ }
375+
376+ /**
377+ * Sets a value indicating whether to include MachineName in MachineInfo.
378+ * @param value
379+ */
380+ public set includeMachineName ( value : boolean ) {
381+ this . _includeMachineName = value || false ;
382+ this . changed ( ) ;
383+ }
384+
385+ /**
386+ * Gets a value indicating whether to include Ip Addresses in MachineInfo and RequestInfo.
387+ * @returns {boolean }
388+ */
389+ public get includeIpAddress ( ) : boolean {
390+ return this . _includeIpAddress ;
391+ }
392+
393+ /**
394+ * Sets a value indicating whether to include Ip Addresses in MachineInfo and RequestInfo.
395+ * @param value
396+ */
397+ public set includeIpAddress ( value : boolean ) {
398+ this . _includeIpAddress = value || false ;
399+ this . changed ( ) ;
400+ }
401+
402+ /**
403+ * Gets a value indicating whether to include Cookies.
404+ * NOTE: DataExclusions are applied to all Cookie keys when enabled.
405+ * @returns {boolean }
406+ */
407+ public get includeCookies ( ) : boolean {
408+ return this . _includeCookies ;
409+ }
410+
411+ /**
412+ * Sets a value indicating whether to include Cookies.
413+ * NOTE: DataExclusions are applied to all Cookie keys when enabled.
414+ * @param value
415+ */
416+ public set includeCookies ( value : boolean ) {
417+ this . _includeCookies = value || false ;
418+ this . changed ( ) ;
419+ }
420+
421+ /**
422+ * Gets a value indicating whether to include Form/POST Data.
423+ * NOTE: DataExclusions are only applied to Form data keys when enabled.
424+ * @returns {boolean }
425+ */
426+ public get includePostData ( ) : boolean {
427+ return this . _includePostData ;
428+ }
429+
430+ /**
431+ * Sets a value indicating whether to include Form/POST Data.
432+ * NOTE: DataExclusions are only applied to Form data keys when enabled.
433+ * @param value
434+ */
435+ public set includePostData ( value : boolean ) {
436+ this . _includePostData = value || false ;
437+ this . changed ( ) ;
438+ }
439+
440+ /**
441+ * Gets a value indicating whether to include query string information.
442+ * NOTE: DataExclusions are applied to all Query String keys when enabled.
443+ * @returns {boolean }
444+ */
445+ public get includeQueryString ( ) : boolean {
446+ return this . _includeQueryString ;
447+ }
448+
449+ /**
450+ * Sets a value indicating whether to include query string information.
451+ * NOTE: DataExclusions are applied to all Query String keys when enabled.
452+ * @param value
453+ */
454+ public set includeQueryString ( value : boolean ) {
455+ this . _includeQueryString = value || false ;
456+ this . changed ( ) ;
457+ }
458+
289459 /**
290460 * A list of user agent patterns that will cause any event with a matching user agent to not be submitted.
291461 *
@@ -333,7 +503,7 @@ export class Configuration implements IConfigurationSettings {
333503 */
334504 public addPlugin ( name : string , priority : number , pluginAction : ( context : EventPluginContext , next ?: ( ) => void ) => void ) : void ;
335505 public addPlugin ( pluginOrName : IEventPlugin | string , priority ?: number , pluginAction ?: ( context : EventPluginContext , next ?: ( ) => void ) => void ) : void {
336- const plugin : IEventPlugin = ! ! pluginAction ? { name : pluginOrName as string , priority, run : pluginAction } : pluginOrName as IEventPlugin ;
506+ const plugin : IEventPlugin = ! ! pluginAction ? { name : pluginOrName as string , priority, run : pluginAction } : pluginOrName as IEventPlugin ;
337507 if ( ! plugin || ! plugin . run ) {
338508 this . log . error ( 'Add plugin failed: Run method not defined' ) ;
339509 return ;
@@ -468,7 +638,7 @@ export class Configuration implements IConfigurationSettings {
468638 */
469639 public static get defaults ( ) {
470640 if ( Configuration . _defaultSettings === null ) {
471- Configuration . _defaultSettings = { } ;
641+ Configuration . _defaultSettings = { includePrivateInformation : true } ;
472642 }
473643
474644 return Configuration . _defaultSettings ;
0 commit comments