https://github.com/lsd-consulting/lsd-distributed-interceptors
A set of interceptors gathering information from distributed services for the LSD library.
https://github.com/lsd-consulting/lsd-distributed-interceptors
diagrams lsd yatspec
Last synced: 4 months ago
JSON representation
A set of interceptors gathering information from distributed services for the LSD library.
- Host: GitHub
- URL: https://github.com/lsd-consulting/lsd-distributed-interceptors
- Owner: lsd-consulting
- License: apache-2.0
- Created: 2020-09-13T16:22:16.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2026-02-22T17:03:08.000Z (4 months ago)
- Last Synced: 2026-02-22T21:56:54.222Z (4 months ago)
- Topics: diagrams, lsd, yatspec
- Language: Kotlin
- Homepage: https://github.com/integreety/lsd-distributed-interceptor-library
- Size: 1.48 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/semantic-release/semantic-release)
# lsd-distributed-interceptors


[](https://github.com/lsd-consulting/lsd-distributed-interceptors/actions/workflows/ci.yml)
[](https://github.com/lsd-consulting/lsd-distributed-interceptors/actions/workflows/nightly.yml)
[](https://github.com/lsd-consulting/lsd-distributed-interceptors/releases)

A set of interceptors gathering information from distributed sources for the LSD library.

Here is a sample of an LSD that this library can generate:

along with the source for the LSD:

It also generates a component diagram:

# Usage
To use the `lsd-distributed-interceptors` library just add one or more of the available modules
(depending on the technology used by the project) to the production dependencies:
```groovy
implementation "io.github.lsd-consulting:lsd-distributed-interceptors-feign:"
implementation "io.github.lsd-consulting:lsd-distributed-interceptors-rabbitmq:"
implementation "io.github.lsd-consulting:lsd-distributed-interceptors-spring-messaging:"
implementation "io.github.lsd-consulting:lsd-distributed-interceptors-spring-web:"
```
and one of the storage dependencies:
```groovy
implementation "io.github.lsd-consulting:lsd-distributed-http-connector:"
```
or
```groovy
implementation "io.github.lsd-consulting:lsd-distributed-mongodb-connector:"
```
or
```groovy
implementation "io.github.lsd-consulting:lsd-distributed-postgres-connector:"
```
and then configure through the available properties.
## Properties
The following properties can be overridden by setting System or Environment properties.
| Property Name | Default | Required | Description |
| ----------- |---------| ------------ |------------------------------------------------------------------------------------------------------------------------------------------------|
| lsd.dist.obfuscator.sensitiveHeaders | None | NO | A comma delimited list of header names that will be removed before storing in the database, eg. Authorization, JWT |
| lsd.dist.threadPool.size | 16 | NO | `corePoolSize` of the `ThreadPoolExecutor` for enqueueuing intercepted interactions. `maximumPoolSize` is set as `corePoolSize` * 10 |
## Obfuscation
If there is need to obfuscate sensitive information sent through HTTP headers, it's possible to set the headers to be
obfuscated through a property:
```properties
lsd.dist.obfuscator.sensitiveHeaders=Authorization, SomeOtherHeaderName
```
If the value is not set or empty, there will be no obfuscation applied.