Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUIProjectAudit: declaration reference

0.57.0-dev · beta source documentation. Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See validation and limits.

Pinned source (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h) · integration recipe · practical guide

FQuartzUIStagedFile

Editor type. One exact project-owned file admitted to the UFS package payload.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectAudit recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: QuartzUIValidate -Mode=Shipping; inspect audit result. Current output is validated without Node/build side effects.

Avoid: Confusing audit manifest with per-app build manifest. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h#L9)

FQuartzUIAuditedApp

Editor type. Resolved identity and freshness evidence for one registered production app.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectAudit recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: QuartzUIValidate -Mode=Shipping; inspect audit result. Current output is validated without Node/build side effects.

Avoid: Confusing audit manifest with per-app build manifest. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h#L20)

FQuartzUIProjectAuditOptions

Editor type. Shared invocation options for Editor UI, commandlets, CI, tests, and cook.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectAudit recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: QuartzUIValidate -Mode=Shipping; inspect audit result. Current output is validated without Node/build side effects.

Avoid: Confusing audit manifest with per-app build manifest. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h#L33)

FQuartzUIProjectAuditResult

Editor type. Canonical package manifest plus a machine-readable audit result.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectAudit recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: QuartzUIValidate -Mode=Shipping; inspect audit result. Current output is validated without Node/build side effects.

Avoid: Confusing audit manifest with per-app build manifest. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h#L52)

FQuartzUIProjectAuditService

Editor type. Deterministic production-output policy shared by every non-interactive path. It validates already-built project output and never invokes Node, copies an app, installs dependencies, or writes below the installed plugin.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectAudit recipe in the host module QuartzUIEditor.

Minimal example / lifecycle: QuartzUIValidate -Mode=Shipping; inspect audit result. Current output is validated without Node/build side effects.

Avoid: Confusing audit manifest with per-app build manifest. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIEditor/Public/QuartzUIProjectAudit.h#L71)

Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

#pragma once

#include "CoreMinimal.h"
#include "QuartzUIProjectValidation.h"

class UQuartzUIProjectSettings;

/** One exact project-owned file admitted to the UFS package payload. */
struct QUARTZUIEDITOR_API FQuartzUIStagedFile
{
	FName AppId;
	FString ProjectRelativePath;
	FString AppRelativePath;
	int64 Size = 0;
	FString Sha256;
	FString Reason;
};

/** Resolved identity and freshness evidence for one registered production app. */
struct QUARTZUIEDITOR_API FQuartzUIAuditedApp
{
	FName AppId;
	FString SourceRoot;
	FString BuildRoot;
	FString CookedRoot;
	FString EntryPage;
	FString Origin;
	FString ContractFingerprint;
	FString LocalizationFingerprint;
};

/** Shared invocation options for Editor UI, commandlets, CI, tests, and cook. */
struct QUARTZUIEDITOR_API FQuartzUIProjectAuditOptions
{
	EQuartzUIValidationTarget Target = EQuartzUIValidationTarget::CommandLine;

	/** Absolute project-directory override used only by isolated automation fixtures. */
	FString ProjectDirectory;

	/** Optional command-line evidence destinations. Empty values use project settings. */
	FString ManifestPath;
	FString AuditReportPath;

	/** Product entry points reject any conflicting loose NonUFS staging policy. */
	bool bCheckStagingConfiguration = true;

	/** Tests can inspect canonical bytes without changing the filesystem. */
	bool bWriteArtifacts = true;
};

/** Canonical package manifest plus a machine-readable audit result. */
struct QUARTZUIEDITOR_API FQuartzUIProjectAuditResult
{
	bool bValid = false;
	FString BuildIdentity;
	FString ManifestSha256;
	FString ManifestPath;
	FString AuditReportPath;
	FString ManifestJson;
	FString AuditJson;
	TArray<FQuartzUIAuditedApp> Apps;
	TArray<FQuartzUIStagedFile> Files;
	TArray<FQuartzUIValidationIssue> Issues;
};

/**
 * Deterministic production-output policy shared by every non-interactive path.
 * It validates already-built project output and never invokes Node, copies an
 * app, installs dependencies, or writes below the installed plugin.
 */
class QUARTZUIEDITOR_API FQuartzUIProjectAuditService final
{
public:
	static constexpr int32 SchemaVersion = 1;
	static constexpr int32 PolicyVersion = 1;
	/** JSON payload with a stageable suffix; Unreal UAT intentionally drops cooked .json files. */
	static constexpr const TCHAR* BuildMetadataFilename = TEXT("quartzui.build.manifest");

	static bool AuditProject(
		const UQuartzUIProjectSettings& Settings,
		const FQuartzUIProjectAuditOptions& Options,
		FQuartzUIProjectAuditResult& OutResult);

	/** Canonical per-app build metadata emitted by an external frontend build. */
	static bool BuildCanonicalAppMetadata(
		FName AppId,
		const FString& EntryPage,
		const FString& ContractFingerprint,
		const FString& LocalizationFingerprint,
		FString& OutJson);

	/** Fingerprint of the configured generated localization authority. */
	static bool ComputeLocalizationFingerprint(
		const UQuartzUIProjectSettings& Settings,
		const FString& ProjectDirectory,
		FString& OutFingerprint,
		TArray<FQuartzUIValidationIssue>& OutIssues);
};