397 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			397 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								// Copyright (c) 2022 Sentry. All Rights Reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "CoreMinimal.h"
							 | 
						||
| 
								 | 
							
								#include "UObject/NoExportTypes.h"
							 | 
						||
| 
								 | 
							
								#include "Engine/EngineTypes.h"
							 | 
						||
| 
								 | 
							
								#include "SentrySettings.generated.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class USentryBeforeSendHandler;
							 | 
						||
| 
								 | 
							
								class USentryTraceSampler;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								UENUM(BlueprintType)
							 | 
						||
| 
								 | 
							
								enum class ESentryTracesSamplingType : uint8
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									// Use uniform sample rate for all transactions
							 | 
						||
| 
								 | 
							
									UniformSampleRate,
							 | 
						||
| 
								 | 
							
									// Control the sample rate based on the transaction itself and the context in which it's captured (not implemented)
							 | 
						||
| 
								 | 
							
									TracesSampler
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								UENUM(BlueprintType)
							 | 
						||
| 
								 | 
							
								enum class ESentryCliLogLevel : uint8
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									Trace,
							 | 
						||
| 
								 | 
							
									Debug,
							 | 
						||
| 
								 | 
							
									Info,
							 | 
						||
| 
								 | 
							
									Warn,
							 | 
						||
| 
								 | 
							
									Error
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								UENUM(BlueprintType)
							 | 
						||
| 
								 | 
							
								enum class ESentryDatabaseLocation : uint8
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									// Root directory of the current project - `FPaths::ProjectDir()`
							 | 
						||
| 
								 | 
							
									ProjectDirectory,
							 | 
						||
| 
								 | 
							
									// Root directory for user-specific game files - `FPaths::ProjectUserDir()`
							 | 
						||
| 
								 | 
							
									ProjectUserDirectory
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FAutomaticBreadcrumbs
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Map loading started", ToolTip = "Flag indicating whether to automatically add breadcrumb when map loading starts."))
							 | 
						||
| 
								 | 
							
									bool bOnMapLoadingStarted = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Map loaded", ToolTip = "Flag indicating whether to automatically add breadcrumb after map was loaded."))
							 | 
						||
| 
								 | 
							
									bool bOnMapLoaded = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Game state class changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes game state."))
							 | 
						||
| 
								 | 
							
									bool bOnGameStateClassChanged = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Game session ID changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes the currently active game session."))
							 | 
						||
| 
								 | 
							
									bool bOnGameSessionIDChanged = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "User activity string changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes the user activity hint string for analytics, crash reports, etc."))
							 | 
						||
| 
								 | 
							
									bool bOnUserActivityStringChanged = false;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FAutomaticBreadcrumbsForLogs
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Fatal", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Fatal verbosity level."))
							 | 
						||
| 
								 | 
							
									bool bOnFatalLog = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Error", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Error verbosity level."))
							 | 
						||
| 
								 | 
							
									bool bOnErrorLog = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Warning", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Warning verbosity level."))
							 | 
						||
| 
								 | 
							
									bool bOnWarningLog = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Display/Log", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Display/Log verbosity level."))
							 | 
						||
| 
								 | 
							
									bool bOnInfoLog = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Verbose/VeryVerbose", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Verbose/VeryVerbose verbosity level."))
							 | 
						||
| 
								 | 
							
									bool bOnDebugLog = false;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FTagsPromotion
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Build configuration", ToolTip = "Flag indicating whether the build configuration should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteBuildConfiguration = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Target type", ToolTip = "Flag indicating whether the target type should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteTargetType = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Engine mode", ToolTip = "Flag indicating whether the engine mode should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteEngineMode = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Is game", ToolTip = "Flag indicating whether the `IsGame` parameter should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteIsGame = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Is standalone", ToolTip = "Flag indicating whether the `IsStandalone` parameter should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteIsStandalone = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Is unattended", ToolTip = "Flag indicating whether the `IsUnattended` parameter should be promoted to a captured event's tag."))
							 | 
						||
| 
								 | 
							
									bool bPromoteIsUnattended = true;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FEnableBuildConfigurations
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Debug", ToolTip = "Flag indicating whether event capturing should be enabled for the Debug build configuration."))
							 | 
						||
| 
								 | 
							
									bool bEnableDebug = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "DebugGame", ToolTip = "Flag indicating whether event capturing should be enabled for the DebugGame build configuration."))
							 | 
						||
| 
								 | 
							
									bool bEnableDebugGame = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Development", ToolTip = "Flag indicating whether event capturing should be enabled for the Development build configuration."))
							 | 
						||
| 
								 | 
							
									bool bEnableDevelopment = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Test", ToolTip = "Flag indicating whether event capturing should be enabled for the Test build configuration."))
							 | 
						||
| 
								 | 
							
									bool bEnableTest = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Shipping", ToolTip = "Flag indicating whether event capturing should be enabled for the Shipping build configuration."))
							 | 
						||
| 
								 | 
							
									bool bEnableShipping = true;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FEnableBuildTargets
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Client", ToolTip = "Flag indicating whether event capturing should be enabled for the Client target type."))
							 | 
						||
| 
								 | 
							
									bool bEnableClient = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Game", ToolTip = "Flag indicating whether event capturing should be enabled for the Game target type."))
							 | 
						||
| 
								 | 
							
									bool bEnableGame = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Editor", ToolTip = "Flag indicating whether event capturing should be enabled for the Editor target type."))
							 | 
						||
| 
								 | 
							
									bool bEnableEditor = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Server", ToolTip = "Flag indicating whether event capturing should be enabled for the Server target type."))
							 | 
						||
| 
								 | 
							
									bool bEnableServer = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Program", ToolTip = "Flag indicating whether event capturing should be enabled for the Program target type."))
							 | 
						||
| 
								 | 
							
									bool bEnableProgram = true;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USTRUCT(BlueprintType)
							 | 
						||
| 
								 | 
							
								struct FEnableBuildPlatforms
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Linux", ToolTip = "Flag indicating whether event capturing should be enabled for the Linux platform type."))
							 | 
						||
| 
								 | 
							
									bool bEnableLinux = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Windows", ToolTip = "Flag indicating whether event capturing should be enabled for the Windows platform type."))
							 | 
						||
| 
								 | 
							
									bool bEnableWindows = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "IOS", ToolTip = "Flag indicating whether event capturing should be enabled for the IOS platform type."))
							 | 
						||
| 
								 | 
							
									bool bEnableIOS = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Android", ToolTip = "Flag indicating whether event capturing should be enabled for the Android platform type."))
							 | 
						||
| 
								 | 
							
									bool bEnableAndroid = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Mac", ToolTip = "Flag indicating whether event capturing should be enabled for the Mac platform type."))
							 | 
						||
| 
								 | 
							
									bool bEnableMac = true;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Sentry settings used for plugin configuration.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								UCLASS(Config = Engine, defaultconfig)
							 | 
						||
| 
								 | 
							
								class SENTRY_API USentrySettings : public UObject
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									GENERATED_UCLASS_BODY()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Initialize SDK automatically", ToolTip = "Flag indicating whether to automatically initialize the SDK when the app starts.", ConfigRestartRequired = true))
							 | 
						||
| 
								 | 
							
									bool InitAutomatically;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "DSN", ToolTip = "The DSN (Data Source Name) tells the SDK where to send the events to. Get your DSN in the Sentry dashboard."))
							 | 
						||
| 
								 | 
							
									FString Dsn;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable verbose logging", ToolTip = "Flag indicating whether to enable verbose logging on desktop."))
							 | 
						||
| 
								 | 
							
									bool Debug;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Environment", ToolTip = "Environment which will be used for enriching events."))
							 | 
						||
| 
								 | 
							
									FString Environment;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Sample rate", ToolTip = "Configures the sample rate for error events in the range of 0.0 to 1.0. The default is 1.0 which means that 100% of error events are sent. If set to 0.1 only 10% of error events will be sent. Events are picked randomly.", ClampMin = 0.0f, ClampMax = 1.0f))
							 | 
						||
| 
								 | 
							
									float SampleRate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Attach game log to captured events", ToolTip = "Flag indicating whether to attach game log automatically to captured events. Not available in shipping builds."))
							 | 
						||
| 
								 | 
							
									bool EnableAutoLogAttachment;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Attach stack trace to captured events", ToolTip = "Flag indicating whether to attach stack trace automatically to captured events."))
							 | 
						||
| 
								 | 
							
									bool AttachStacktrace;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Attach personally identifiable information", ToolTip = "Flag indicating whether to attach personally identifiable information (PII) to captured events."))
							 | 
						||
| 
								 | 
							
									bool SendDefaultPii;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Attach screenshots", ToolTip = "Flag indicating whether to attach screenshot of the application when an error occurs. Currently this feature is supported for Windows and Linux only."))
							 | 
						||
| 
								 | 
							
									bool AttachScreenshot;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Attach GPU dump", ToolTip = "Flag indicating whether to attach GPU crash dump when an error occurs. Currently this feature is supported for Nvidia graphics only."))
							 | 
						||
| 
								 | 
							
									bool AttachGpuDump;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Max breadcrumbs", Tooltip = "Total amount of breadcrumbs that should be captured."))
							 | 
						||
| 
								 | 
							
									int32 MaxBreadcrumbs;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Automatically add breadcrumbs for events"))
							 | 
						||
| 
								 | 
							
									FAutomaticBreadcrumbs AutomaticBreadcrumbs;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Automatically add breadcrumbs for log messages with verbosity level"))
							 | 
						||
| 
								 | 
							
									FAutomaticBreadcrumbsForLogs AutomaticBreadcrumbsForLogs;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable automatic session tracking ", ToolTip = "Flag indicating whether the SDK should automatically start a new session when it is initialized."))
							 | 
						||
| 
								 | 
							
									bool EnableAutoSessionTracking;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Session timeout, milliseconds (for Android/Apple only)", ToolTip = "Time interval after which session will be terminated if application is in background mode."))
							 | 
						||
| 
								 | 
							
									int32 SessionTimeout;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
							 | 
						||
| 
								 | 
							
										Meta = (InlineEditConditionToggle))
							 | 
						||
| 
								 | 
							
									bool OverrideReleaseName;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Release & Health",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Override release name", ToolTip = "Release name which will be used for enriching events.", EditCondition = "OverrideReleaseName"))
							 | 
						||
| 
								 | 
							
									FString Release;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Transport",
							 | 
						||
| 
								 | 
							
										Meta = (InlineEditConditionToggle))
							 | 
						||
| 
								 | 
							
									bool UseProxy;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Transport",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "HTTP proxy (for Windows/Linux only)", ToolTip = "HTTP proxy through which requests can be tunneled to Sentry.", EditCondition = "UseProxy"))
							 | 
						||
| 
								 | 
							
									FString ProxyUrl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Hooks",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Custom `beforeSend` event hanler", ToolTip = "Custom hanler for processing events before sending them to Sentry."))
							 | 
						||
| 
								 | 
							
									TSubclassOf<USentryBeforeSendHandler> BeforeSendHandler;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Desktop",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Override Windows default crash capturing mechanism (UE 5.2+)", ToolTip = "Flag indicating whether to capture crashes automatically on Windows as an alternative to Crash Reporter."))
							 | 
						||
| 
								 | 
							
									bool EnableAutoCrashCapturing;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Desktop",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Sentry database location (for Windows/Linux only)", ToolTip = "Location where Sentry stores its internal/temporary files."))
							 | 
						||
| 
								 | 
							
									ESentryDatabaseLocation DatabaseLocation;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "In-app includes (for Android/Apple only)", Tooltip = "A list of string prefixes of module names that belong to the app."))
							 | 
						||
| 
								 | 
							
									TArray<FString> InAppInclude;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "In-app exludes (for Android/Apple only)", Tooltip = "A list of string prefixes of module names that don't belong to the app."))
							 | 
						||
| 
								 | 
							
									TArray<FString> InAppExclude;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable ANR error tracking", Tooltip = "Flag indicating whether to enable tracking of ANR (app not responding) errors."))
							 | 
						||
| 
								 | 
							
									bool EnableAppNotRespondingTracking;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable tracing", ToolTip = "Flag indicating whether to enable tracing for performance monitoring."))
							 | 
						||
| 
								 | 
							
									bool EnableTracing;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Sampling type", ToolTip = "Method of controlling the sample rate for transactions.", EditCondition = "EnableTracing"))
							 | 
						||
| 
								 | 
							
									ESentryTracesSamplingType SamplingType;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Traces sample rate", ToolTip = "Setting a uniform sample rate for all transactions to a number between 0.0 and 1.0. (For example, to send 20% of transactions, set TracesSampleRate to 0.2).",
							 | 
						||
| 
								 | 
							
											EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::UniformSampleRate", EditConditionHides))
							 | 
						||
| 
								 | 
							
									float TracesSampleRate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Traces sampler", ToolTip = "Custom hanler for determining traces sample rate based on the sampling context.",
							 | 
						||
| 
								 | 
							
											EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::TracesSampler", EditConditionHides))
							 | 
						||
| 
								 | 
							
									TSubclassOf<USentryTraceSampler> TracesSampler;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Promote values to tags"))
							 | 
						||
| 
								 | 
							
									FTagsPromotion TagsPromotion;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable for Build Configurations"))
							 | 
						||
| 
								 | 
							
									FEnableBuildConfigurations EnableBuildConfigurations;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable for Build Target Types"))
							 | 
						||
| 
								 | 
							
									FEnableBuildTargets EnableBuildTargets;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable for Build Platform Types"))
							 | 
						||
| 
								 | 
							
									FEnableBuildPlatforms EnableBuildPlatforms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "General|Misc",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Enable for promoted builds only", ToolTip = "Flag indicating whether to enable for promoted builds only."))
							 | 
						||
| 
								 | 
							
									bool EnableForPromotedBuildsOnly;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Upload debug symbols automatically", ToolTip = "Flag indicating whether to automatically upload debug symbols to Sentry when packaging the app."))
							 | 
						||
| 
								 | 
							
									bool UploadSymbolsAutomatically;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Project Name", ToolTip = "Name of the project for which debug symbols should be uploaded.", EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									FString ProjectName;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Organization Name", ToolTip = "Name of the organisation associated with the project.", EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									FString OrgName;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Authentication token", ToolTip = "Authentication token for performing actions against Sentry API.", EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									FString AuthToken;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Upload sources", ToolTip = "Flag indicating whether to automatically scan the debug files for references to source code files and upload them if any.", EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									bool IncludeSources;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Diagnostic Level", ToolTip = "Logs verbosity level during symbol uploading.", EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									ESentryCliLogLevel DiagnosticLevel;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Use legacy Sentry Gradle plugin (for Android only)", ToolTip = "Flag indicating whether to use legacy Sentry Gradle plugin for debug symbol upload. No engine's Gradle version bump is required if enabled. This can be used as a fallback if the newer Gradle 7.5 causing compatibility issues with other third-party plugins.",
							 | 
						||
| 
								 | 
							
											EditCondition = "UploadSymbolsAutomatically"))
							 | 
						||
| 
								 | 
							
									bool UseLegacyGradlePlugin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UPROPERTY(Config, EditAnywhere, Category = "Crash Reporter",
							 | 
						||
| 
								 | 
							
										Meta = (DisplayName = "Crash Reporter Endpoint", ToolTip = "Endpoint that Unreal Engine Crah Reporter should use in order to upload crash data to Sentry."))
							 | 
						||
| 
								 | 
							
									FString CrashReporterUrl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if WITH_EDITOR
							 | 
						||
| 
								 | 
							
									virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static FString GetFormattedReleaseName();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									bool IsDirty() const;
							 | 
						||
| 
								 | 
							
									void ClearDirtyFlag();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
									FString GetDefaultEnvironmentName();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void LoadDebugSymbolsProperties();
							 | 
						||
| 
								 | 
							
									void CheckLegacySettings();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									bool bIsDirty;
							 | 
						||
| 
								 | 
							
								};
							 |