All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
LocalDateTimeWire
schema.LocalDateTimeWire
schema.LocalDateTimeWire
and UuidWire
schema extensions.:http-request-in-handle-timing-v2
(summary) Prometheus component metric to measure the time spent while
handling http requests.:http-request-in-handle-timing
Prometheus component metric to measure the time spent while handling http
requests.:http-request-in-handle-timing
Prometheus component metric to measure the time spent while handling http
requests.porteiro
related code.PostgreSQL
component (Integrant).src/common_clj/porteiro
namespace to hold customer authentication features.common-clj.io.interceptors.customer
namespace to hold customer identification specific interceptors.AWS SQS Consumer component (Integrant)
validation, now we are logging that info at DEBUG level.AWS SQS Consumer
component
(Integrant).AWS SQS Consumer
component (Integrant) while handling each message.AWS SQS Consumer component (Integrant)
.AWS SQS Consumer component (Integrant)
.AWS SQS Consumer component (Integrant)
.AWS SQS Consumer component (Integrant)
, now we are
logging that info at DEBUG level.AWS SQS Producer component (Integrant)
. The component was trying to create queues on AWS SQS servers
while executing tests.queues
on common-clj.integrant-components.sqs-consumer/create-sqs-queues!
.AWS SQS Producer component (Integrant)
. The component wasn't sending the params for the message produce
operation properly.#p
. This should be used only on debugging process.AWS SQS Producer component (Integrant)
.common-clj.integrant-components.datomic/mocked-datomic
to avoid point to the same in-memory database
path between tests.common-clj.integrant-components.datomic/transact-and-lookup-entity!
function to make easier to transact and
lookup entities in the database.common-clj.integrant-components.datomic
namespace.common-clj.integrant-components.routes
namespace.AWS SQS Consumer component (Integrant)
. The component wasn't consuming messages properly (Test and Prod).AWS SQS Producer component (Integrant)
. The component wasn't sending the messages passing the right
params.Cronjob component (Integrant)
. The component wasn't able to access the defined tasks properly.org.clojure/core.async
version to "1.6.681"
AWS SQS Consumer component (Integrant)
that was trying to create a queue on AWS (prod) while executing
tests. Also reduce the that sleep between each message consumption cycle for test env.com.datomic/datomic-free
and com.datomic/local
by com.datomic/peer
.DatomicLocal
Component in favor of main Datomic
component.com.datomic/peer
dependency to the project.common-clj.test.helper.schema/generate
.New Relic
component. The component wasn't sending the logs payload properly.common-clj.test.helper.schema/generate
) to help with fixture definition on tests.Containers
component. Now you can use it to start and stop docker containers in your integration tests.LocalDateWire
schema extension.TelegramConsumer
component.TelegramProducer
component.TelegramConsumer
in order to define command interceptors in a way that allows a more reusable and
extendable code.RateLimiter
component, and now you can use it with interceptors in oder to apply rate limit on service
endpoints.Prometheus
component to TelegramConsumer
possible dependencies.Prometheus
component in order to expose metrics to agentless monitoring for Prometheus in Grafana Cloud.DatomicLocal
component while running integration tests, the database was not being cleaned after
each test execution.#p
. This should be used only on debugging process.common-clj.keyword.core/un-namespaced
function in oder to be able to convert namespaced keywords.common-clj.schema.core/un-namespaced
function in oder to be able to convert namespaced schemas.common-clj.time.core/date->local-date
function in oder to be able to convert Date
to LocalDate
TelegramConsumer
to stop sending Telegram Bot messages for not found commands if the message received was not
a command.TelegramConsumer
component.TelegramWebhookConsumer
component, now you should use TelegramConsumer
.TelegramConsumer
in order to be able to scale new features more easily.DatomicLocal
component.:jobs
component placeholder for telegram component. Now you can depend on the jobs
component from telegram.common-clj.time.core
in order to deal with LocalDateTime
.get-connection
function for PostgreSQL component.database-uri
config is properly provided.org.apache.kafka/kafka-clients
dependency version from 2.8.0
to 3.4.0
.nubank/state-flow
dependency version from 5.14.3
to 5.14.4
.telegrambot-lib
dependency version from 1.4.0
to 2.5.0
.prismatic/schema-generators
dependency version from 0.1.4
to 0.1.5
.datalevin
dependency version from 0.6.22
to 0.8.16
.component.telegram.consumer/consume-update-via-webhook
function, so you can easily mock Telegram Bot command
messages update consumption via webhook http endpoint.fn
component.telegram.consumer/telegram-bot-webhook-endpoint-handler-fn
.TelegramWebhookConsumer
to have one more way of integrating with telegram bot api.chat-id
from the update.TelegramConsumer
was breaking while consuming updates for edited messages. Now it's fixed.(morse-api/send-text token chat-id message-text)
to send
telegram messages.TelegramConsumer
is more resilient to errors wire consuming updates from Telegram API. Before that the Thread
was dying when facing a error, but now the Thread is treating and logging the error.MockTelegramConsumer
component along with some helpers functions so you can easily write integration tests for
telegram bots.:http-client
component, so we can have more flexibility on integration tests assertions. Like having the
possibility of assert that an HTTP request was made to a service/URI.common-clj.component.kafka.consumer/consumed-messages
).http
component responsible for service authentication, so we can expect authenticated http requests between
microservices.common-clj.io.interceptors.auth/recaptcha-validation-interceptor
to the list of interceptors while handling
requests for http endpoints and add the :recaptcha-secret-token
to the config file. Tested
with reCAPTCHA v3.::http/allowed-origins
from the system map
as (constantly true)
like "*"
.X-Correlation-Id
header for tracking http requests made between microservices. To use it
wrap the http-handler function with common-clj.traceability/with-correlation-id
.:dead-letter-queue-service-integration-enabled
(true
|false
) config option to toggle the integration
with a DLQ service (aka Wraith-King).MockKafkaConsumer
component throws an exception if not set up correctly. Make debug process easier while testing.common-clj.time.parser.core/date->wire
function to convert Date object to ISO-8601 string.common-clj.time.parser.core/wire->date
function to convert ISO-8601 string into Date object.common-clj.test.helper.time/valid-iso-8601?
function to validate iso-8601 strings.detail
expected param type for common-clj.error.core/http-friendly-exception
function.common-clj.money.converter/->cents
function expected output type from BigInteger to BigInt.common-clj.io.interceptors.datomic/resource-existence-check-interceptor
Datomic interceptor.common-clj.kafka.consumer/kafka-record->clj-message
to support more flexible Kafka message content in the
future.common-clj.auth.core/->token
function that we can use to convert Clojure maps containing authentication
related information to a JWToken.common-clj.test.helper/uuid
function was moved to another place due to better code organization, instead use the
one from common-clj.test.helper.core/uuid
.schema-body-in-interceptor
that make so much simpler to set up schema validation for the json
body content entering the service endpoint.http-friendly-exception
to easily throw exceptions that are compatible with the global error
catcher exception, returning a http response that follows best practices for REST API error handling.ProducerRecord
the same way as in production
environment.now-datetime
that enables us to mock the usage of the java.util.Date class. Make
integration tests easier to write.stop-and-reset-pool!
instead of shutdown-pool-gracefully!
(this is a private function).consumer
component.producer
component to service
component, so you can access producer
component inside endpoint controllers.:current-env
from the config component, case other components need this information.datomic
entity instead of a more generic database
.mocked-datomic
function so you can do unit test for datomic queries and insertions.uuid
test helper function to generate random Uuids to be use for mocked values in tests.routes
and service
components.local-date->str
function was not returning the date in the chosen string format.Added support to multiples environments on config component.
Added a datomic component that we can use to transact on datomic databases. Compatible with Component framework by Stuart Sierra.
Added get-component-content
a component helper function used to get component core content. To be able to use this
function you must follow some conventions, like assoc in the component map with the core content using the same
component name as key. Compatible with Component framework by Stuart Sierra.
Added str->keyword-kebab-case
that we can use to convert json encoded camelCased keys to clojure kebab case.
Added a config component that we can use to load settings on our system map. Compatible with Component framework by Stuart Sierra.
->cents
function were you can use to convert money amounts to cents.Added str->local-date
function were you can use to convert String
to LocalDate
.
Added local-date->str
function were you can use to convert LocalDate
to String
.
loose-schema
function to a schema with inner schemas, also make theirs inner schemas loose.loose-schema
function.Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close