Configuração de eventos
@frozen
public struct EventConfiguration : Sendable
Parâmetros de configuração para gravação de eventos do Realm.
A ativação da gravação de eventos do Realm é feita com a configuração de Realm.Configuration.eventConfiguration
para qualquer EventConfiguration
não nulo. Uma configuração inicializada por padrão é válida, mas algumas propriedades podem precisar ser personalizadas.
O uso da gravação de evento do Realm requer a inclusão da collection AuditEvent
em seu esquema definido no servidor do aplicativo para o qual você gravará evento. O esquema deve conter os seguintes campos:
_id
:ObjectId
activity
:String
event
:String?
data
:String?
timestamp
:Date
Além disso, deve haver um campoString?
para cada chave de metadados utilizada.
-
Metadados anexados a cada evento gerado. Cada chave no dicionário de metadados é armazenada em uma coluna com esse nome no evento Realm e, portanto, o esquema configurado no servidor para a coleção AuditEvent deve incluir todos os campos de metadados que serão usados. Os campos de metadados devem ser do tipo
String?
no esquema do lado do servidor.Declaração
Swift
public var metadata: [String : String]?
-
O usuário de sincronização com o qual escrever dados de evento . Se não for fornecido, o usuário do Realm que está sendo rastreado será usado. Pode ser um
User
associado a umApp
diferente do Realm que está sendo rastreado, se desejado.O usuário deve estar associado a um aplicativo de sincronização baseado em partição. Se o Realm rastreado estiver usando a Flexible Sync, a configuração desse campo para um usuário de PBS será obrigatória.
Declaração
Swift
public var syncUser: User?
-
Uma string anexada aos valores de partição gerados aleatoriamente usados para carregar dados de evento no servidor. Isso pode ser personalizado para garantir que você possa distinguir as partições de evento das partições usadas pelo seu aplicação.
Declaração
Swift
public var partitionPrefix: String
-
Uma função de retorno de chamada de registrador. Esta função deve ser segura para threads, pois pode ser chamada de várias threads simultaneamente.
Declaração
Swift
public typealias LoggerFunction = @Sendable (SyncLogLevel, String) -> Void
-
Um logger que será chamado para relatar informações sobre o trabalho feito no thread do evento de background. Se
nil
, isso é relatado ao registrador doSyncManager
.Declaração
Swift
@preconcurrency public var logger: LoggerFunction?
-
O manipulador de erros que será chamado se ocorrer um erro de sincronização ao fazer o upload de dados de evento . Se
nil
, o erro será registrado e, em seguida,abort()
será chamado. O uso de produção deve sempre definir um manipulador de erros personalizado, a menos que o cancelamento do erro seja desejado.Declaração
Swift
@preconcurrency public var errorHandler: (@Sendable (Swift.Error) -> Void)?
-
Cria um
EventConfiguration
que habilita a gravação de evento do Realm .Declaração
Swift
@preconcurrency public init(metadata: [String: String]? = nil, syncUser: User? = nil, partitionPrefix: String = "events", logger: LoggerFunction? = nil, errorHandler: (@Sendable (Swift.Error) -> Void)? = nil)