EventConfiguration

@frozen
public struct EventConfiguration : Sendable

Realm イベント記録の構成パラメーター。

Realm イベント記録を有効にするには、 Realm.Configuration.eventConfigurationを nil 以外のEventConfigurationに設定します。 デフォルトの初期化構成は有効ですが、一部のプロパティをカスタマイズする必要がある場合があります。

Realm イベント記録を使用するには、イベントを書き込むアプリのサーバーに定義されたスキーマにコレクションAuditEventを含める必要があります。 スキーマには、次のフィールドが含まれている必要があります。

  • _id: ObjectId
  • activity: String
  • event: String?
  • data: String?
  • timestamp: Dateさらに、使用されるメタデータ キーごとにString?フィールドが必要です。
  • 生成された各イベントに添付されるメタデータ。 メタデータ 辞書内の各キーは、イベント Realm 内のその名前の列に保存されるため、監査イベント コレクション用にサーバー上で構成されたスキーマには、使用されるすべてのメタデータ フィールドを含める必要があります。 サーバー側スキーマでは、メタデータ フィールドは タイプString?である必要があります。

    宣言

    Swift

    public var metadata: [String : String]?
  • イベント データを書き込む同期ユーザー。 指定しない場合、トレース対象の Realm のユーザーが使用されます。 これは、必要に応じて、トレースされている Realm とは別のAppに関連付けられたUserでもあります。

    ユーザーは、パーティションベースの同期アプリに関連付けられている必要があります。 トレースされた Realm がフレキシブルな同期を使用している場合は、このフィールドを PBS ユーザーに設定する必要があります。

    宣言

    Swift

    public var syncUser: User?
  • イベント データをサーバーにアップロードするために使用される、ランダムに生成されたパーティション値の先頭にある string 。 これをカスタマイズして、イベント パーティションとアプリケーションで使用されるパーティションを区別できるようにします。

    宣言

    Swift

    public var partitionPrefix: String
  • ロガー コールバック関数。 この関数は、複数のスレッドから同時に呼び出される可能性があるため、スレッドセーフである必要があります。

    宣言

    Swift

    public typealias LoggerFunction = @Sendable (SyncLogLevel, String) -> Void
  • バックグラウンド イベント スレッドで行われた作業に関する情報を報告するために呼び出されるロガー。 nilの場合、これは代わりにSyncManagerのロガーに報告されます。

    宣言

    Swift

    @preconcurrency
    public var logger: LoggerFunction?
  • イベント データのアップロード中に同期エラーが発生した場合に呼び出されるエラー ハンドラー。 nilの場合、エラーがログに記録され、 abort()が呼び出されます。 本番環境での使用では、エラーが発生した場合に中止が必要な場合を除き、常にカスタムエラーハンドラーを定義する必要があります。

    宣言

    Swift

    @preconcurrency
    public var errorHandler: (@Sendable (Swift.Error) -> Void)?
  • Realm イベントの記録を有効にするEventConfigurationを作成します。

    宣言

    Swift

    @preconcurrency
    public init(metadata: [String: String]? = nil, syncUser: User? = nil,
                partitionPrefix: String = "events", logger: LoggerFunction? = nil,
                errorHandler: (@Sendable (Swift.Error) -> Void)? = nil)