Skip to content

Releases: 42atomys/webhooked

v0.8

08 Mar 01:19
eac6a23
Compare
Choose a tag to compare

Release v0.8 : 📤✨ Response With Style!

We are excited to unveil our latest version 0.8 update, which brings advanced customization capabilities to your responses. Now, you can tailor your responses with specific formatting options, HTTP status codes, and content types. Additionally, the update introduces a flexible formatting feature that is consistent across the application, allowing you to use either templateString or templatePath for defining response templates.

This enhancement is particularly beneficial for webhook providers requiring the inclusion of specific fields in their responses to confirm the identity of the requester.

Configuration exemple :

  response:
    formatting:
      templateString: |
        {
          "deliveryID": "{{ .Request.Header | getHeader "X-Delivery" | default "unknown" }}"
        }
    httpCode: 200
    contentType: application/json

🚀 Features

Full Changelog: GitHub

v0.7.1

30 Jun 13:55
7a8dc9f
Compare
Choose a tag to compare

Bug Fix - Viper Case-Sensitive Key Issue

We have addressed a bug related to case-sensitive keys in Viper configuration. Previously, Viper did not support using arguments with uppercase letters, which caused issues when loading YAML files. To resolve this, we have made changes to the configuration loader.

🐛 Bug Fix

  • Viper Case-Sensitive Key Issue: Fixed an issue where Viper did not support case-sensitive keys and arguments with uppercase letters. A rework has been done to use the YAML loader instead.

We recommend using lowercase keys and arguments to ensure compatibility with Viper configuration.

Note: If you were previously using uppercase keys or arguments, please update your configuration accordingly to use lowercase letters.

Thank you for your understanding and cooperation.

Full Changelog: View on GitHub

v0.7

30 Jun 12:46
e2cbb72
Compare
Choose a tag to compare

Release v0.7 : 🐘Postgres Formatting Unleashed!

Get ready to revolutionize your Postgres storage experience with our latest update! We are thrilled to introduce a groundbreaking feature that will supercharge your query capabilities. Say hello to Postgres Formatting!

With this cutting-edge functionality, you now have the power to execute any request imaginable. No more limitations or constraints holding you back! Whether you're a data enthusiast, a database guru, or a developer seeking ultimate flexibility, this update is designed to meet your needs.

But that's not all - we've taken things to the next level by introducing named arguments in custom requests. Imagine the possibilities! With this new feature, crafting queries becomes a breeze, allowing you to express your intent clearly and concisely.

Don't wait any longer. Embrace the future of Postgres storage and unlock a world of possibilities with our latest update. Upgrade now and experience the magic of Postgres Formatting!

Configuration exemple :

  storage:
  - type: postgres
    specs:
      databaseUrl: 'postgresql://postgres:postgres@postgres:5432/postgres'
      useFormattingToPerformQuery: true
      query: INSERT INTO webhooks (payload, delivery_id) VALUES (:payload, :delivery_id)
      args:
        payload: '{{ .Payload }}'
        delivery_id: "{{ .Request.Header | getHeader "X-Delivery" | default "unknown" }}"

⚠️ DEPRECATION NOTICE: Starting from version 1.0, the previous method of using table_name and field_name for formatting will no longer be supported due to the introduction of a new formatting feature.

🚀 Features

  • Add devcontainer: Added devcontainer for the project. @42atomys
  • Add new templating functions: Added new templating functions with integration tests. @42atomys
  • Formatting feature for PostgreSQL query: Implemented a formatting feature for PostgreSQL queries. @42atomys

🐛 Bug Fixes

  • RabbitMQ reconnection: Fixed an issue where RabbitMQ would not reconnect if the channel is closed. @42atomys

Full Changelog: View on GitHub

v0.7+rc.1

30 Jun 12:38
e2cbb72
Compare
Choose a tag to compare
v0.7+rc.1 Pre-release
Pre-release

We are excited to present the pre-release version, which will be followed by the final release.

The full release note will be available only in the final release.

We would like to express our heartfelt gratitude to all the contributors who have participated in this pre-release by sharing their ideas, feedback, and valuable contributions.

We value and appreciate your input at all times. 💜

0.6.4

10 Sep 12:39
c0ae470
Compare
Choose a tag to compare

What's Changed

  • fix: rabbitmq will reconnect if the channel is closed by @42atomys in #99
  • chore(deps): bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 by @dependabot in #96
  • chore(deps): bump github.com/rs/zerolog from 1.27.0 to 1.28.0 by @dependabot in #97

Full Changelog: 0.6.3...0.6.4

0.6.3

09 Jul 20:27
91ca6dc
Compare
Choose a tag to compare

What's Changed

  • perf: improuve the performance of the app of +600%
  • fix: memory leaks and mutex usage to have isolation of concurrent pipeline by @42atomys in #93

Full Changelog: 0.6.2...0.6.3

0.6.2

09 Jul 00:25
805accf
Compare
Choose a tag to compare

What's Changed

  • fix(security): panic due to concurrent map write on handled go routine by @42atomys in #92
  • chore(deps): bump wangyoucao577/go-release-action from 1.28 to 1.29 by @dependabot in #87
  • chore(deps): bump github.com/spf13/cobra from 1.4.0 to 1.5.0 by @dependabot in #89
  • chore(deps): bump github.com/stretchr/testify from 1.7.5 to 1.8.0 by @dependabot in #90

Full Changelog: 0.6.1...0.6.2

0.6.1

12 Jun 22:03
dbf27d1
Compare
Choose a tag to compare

What's Changed

  • feat(storage): add the possibility to customize the rabbitmq content-type by @42atomys in #83
  • fix(configuration): mapstructure decode on factory cannot resolve data correctly by @42atomys in #84
  • fix(storage): mapstructure and json tag colocation by @42atomys in #85
  • chore(storage): remove gob encoding on rabbitmq by @42atomys in #86
  • build(go): Bump docker version image to 1.18 by @42atomys in #75
  • test(handler): HTTP Server handler and pull requests title linter by @42atomys in #77
  • test: Improve tests suite by @42atomys in #76
  • chore(github): Bump codecov/codecov-action from 2 to 3 by @dependabot in #78
  • chore(deps): bump github.com/lib/pq from 1.10.5 to 1.10.6 by @dependabot in #69
  • chore(github): update commitlint configuration by @42atomys in #81

Full Changelog: 0.6...0.6.1

0.6

07 Jun 13:25
a06b045
Compare
Choose a tag to compare
0.6

New: Formatting Module

Do you need to (re)format the received data before storing it? IT'S NOW POSSIBLE ! 🎉

One of the most useful bricks of Webhooked is perhaps this one. Formatting allows you to define the entire format of the data you will send to your storage. Globally or by storage.

Formatting use internally the go-template.

⚠ This is an advanced feature ⚠

Be careful when using this feature, the slightest error in format can result in DEFINITIVE loss of the collected data. Make sure your template is correct before applying it in production.

Beautiful example

apiVersion: v1alpha1
specs:
- name: demo
  entrypointUrl: /demo
  formatting:
    templateString: |
      {
        "specName": "{{ .Spec.Name }}",
        "metadata": {
          "contentType": "{{ .Request.Header | getHeader "Content-Type" }}",
          "deliveryID": "{{ .Request.Header | getHeader "X-Delivery" | default "unknown" }}"
        },
        "payload": {{ .Payload }}
      }
  storage: # { ... } Define your storage

Information is always available here: https://github.com/42Atomys/webhooked/wiki/Formatting

What's Changed

  • feat: Formating Module by @42atomys in #71

  • fix(storage): Possible CWE-89 on Postgres storage by @42atomys in #73

  • chore(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 by @dependabot in #55

  • chore(deps): bump github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5 by @dependabot in #56

  • chore(deps): bump github.com/lib/pq from 1.10.4 to 1.10.5 by @dependabot in #59

  • chore(deps): bump github.com/spf13/viper from 1.10.1 to 1.11.0 by @dependabot in #61

  • chore(deps): bump github.com/mitchellh/mapstructure from 1.4.3 to 1.5.0 by @dependabot in #62

  • chore(deps): bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2 by @dependabot in #68

Full Changelog: v0.5...0.6

0.5

13 Mar 23:59
84d93fc
Compare
Choose a tag to compare
0.5

New : Observability with Prometheus

If you want to track your webhooks and monitor their reception, you can do so with the Observability module.

You can activate the Prometheus module which will activate the /metrics endpoint and bring up the webhooked information.

To activate / desactivate the Prometheus module, on your configuration file set metricsEnabled to true or false

apiVersion: v1alpha1
observability:
  metricsEnabled: true
specs: []

Informations is always available here : https://github.com/42Atomys/webhooked/wiki/Observability

What's Changed

  • feat(logging): Add prometheus metrics & structure logs by @42atomys in #45
  • fix(security/pipeline): Factory failed when multiple specs is used by @42atomys in #47
  • fix(configuration): Validate the valuable object when decode it to lookup env variable by @42atomys in #54
  • chore(goreport): Fix go report results by @42atomys in #52

Full Changelog: 0.4.1...v0.5