Github: https://github.com/SafiBank/SaFiMono/tree/main/common/utils

Overview

Common library to help working with

  • Logging

  • InitContiner

  • Kafka serializer & deserializer configuration

  • AuditLog

To get a good understanding of InitContainer, please refer to Init container

Structure

  • Kakfa serializer & deserializer configuration

https://github.com/SafiBank/SaFiMono/tree/main/common/utils/src/main/kotlin/ph/safibank/common/utils/kafka

  • Logging utility

https://github.com/SafiBank/SaFiMono/tree/main/common/utils/src/main/kotlin/ph/safibank/common/utils/log

  • AuditLog utitlities

https://github.com/SafiBank/SaFiMono/tree/main/common/utils/src/main/kotlin/ph/safibank/common/utils/model and https://github.com/SafiBank/SaFiMono/tree/main/common/utils/src/main/kotlin/ph/safibank/common/utils/service

  • Expiring credential generation utility

https://github.com/SafiBank/SaFiMono/tree/main/common/utils/src/main/kotlin/ph/safibank/common/utils/webhook/expiring/credential

Usage

  • add the following dependency to build.gradle.kts

    implementation("ph.safibank.common:utils:8.20221122-140453")
  • logging example

val logger = getLogger()
logger.info("this is a info log")
  • AuditLog example

val eventAvro = AuditLogService.buildAuditLogCommandAvro(
            source = AuditLogCommandSource(
                sourceId = "",
                sourceType = EventSourceTypeV4Enum.SYSTEM,
                attributes = mapOf(
                    AuditAttributeKeyEnum.SYSTEM_NAME to "Backoffice backend"
                )
            ),
            action = change.status.toEventActionType(),
            target = createAuditLogEventTarget(change),
            detail = if (additionalDetail != null) change.toMap() + additionalDetail else change.toMap()
        )
        auditLogProducer.send(null, change.id, eventAvro)