README
¶
Felice & Franz
A generic, web-based producer and consumer for Apache Kafka.
Contents
Requirements
-
Go version 1.16 or higher. You can probably install it through your system's package manager (
apt,brew, etc.). For general instructions, go here --no pun intended. -
Any web browser with decent support for ES2020 (e.g., Mozilla Firefox or any Chromium-based browser).
Installation
To install, open a terminal and execute the following
go get -u github.com/jwmwalrus/felice-n-franz
The same command can be used for subsequent updates.
Usage
Assuming $GOBIN is in your PATH, open a terminal and execute the following
felice-n-franz
Then click on the displayed URL (which by default should be http://localhost:9191).
The web interface is pretty self-explanatory (select environment, consume or produce messages by topic, filter, etc.).
Logging Flags
Passing -h upon executing the felice-n-franz command, will display options related to logging.
The application's logs can be found at ${XDG_DATA_HOME}/felice-n-franz/.
Configuration
In order to operate properly (or at all), a config.json file is required.
Upon first run, one is generated at ${XDG_CONFIG_HOME}/felice-n-franz/. The expected contents are as follows:
- version
-
- type
- int
- description
- Configuration file version
- default
1- required/optional
- required
- firstRun
-
- type
- bool
- description
- If true, overwrite the
${XDG_CONFIG_HOME}/felice-n-franz/config.jsonfile with in-memory values - default
false- required/optional
- optional
- port
-
- type
- int
- description
- Application's port
- default
9191- required/optional
- required
- maxTailOffset
-
- type
- int
- description
- Keep only the last
nmessages per consumer, withngiven by this value - default
100- required/optional
- required
- envs
-
- type
- array
- description
- Configured environments
- default
[]- required/optional
- required
- env.name
-
- type
- string
- description
- Environment's name
- default
- required/optional
- required
- env.active
-
- type
- bool
- description
- If false, this environent's configuration will be ignored
- default
- false
- required/optional
- optional
- env.configuration
-
- type
- object
- description
- librdkafka configuration for this environment. See [here](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md) for further details
- default
- {}
- required/optional
- required
- env.vars
-
- type
- object
- description
- Environment variables used for topic values
- example
{"env": ""}- default
{}- required/optional
- optional
- env.headerPrefix
-
- type
- string
- description
- Common prefix for topic's headers
- default
- required/optional
- optional
- env.topicsFrom
-
- type
- string
- description
- Copy
env.schemas,env.topicsandenv.groupsfrom the given environment - default
- required/optional
- optional
- env.schemas
-
- type
- object
- description
- TBD
- default
- {}
- required/optional
- optional
- env.topics
-
- type
- array
- description
- Configured topics for this environment
- default
[]- required/optional
- required
- env.topic.name
-
- type
- string
- description
- Topic name
- default
- required/optional
- optional
- env.topic.description
-
- type
- string
- description
- Topic description
- default
- required/optional
- optional
- env.topic.key
-
- type
- string
- description
- Topic key. Must be a unique identifier for this environment
- default
- required/optional
- required
- env.topic.value
-
- type
- string
- description
- Topic value. Actual topic definition. Shall be unique for this environment.
- default
- required/optional
- required
- env.topic.headers
-
- type
- array
- description
- Array of key-value objects defining the headers associated to this topic
- example
[{"key": "Content-Type","value": "application/json"}]- default
[]- required/optional
- optional
- env.topic.schema
-
- type
- object
- description
- TBD
- default
{}- required/optional
- optional
- env.groups
-
- type
- array
- description
- Groups of topics
- default
[]- required/optional
- optional
- env.group.name
-
- type
- string
- description
- Group's display name
- default
- required/optional
- optional
- env.group.description
-
- type
- array
- description
- Group'ss description
- default
- required/optional
- optional
- env.group.category
-
- type
- string
- description
- TBD
- default
- required/optional
- optional
- env.group.id
-
- type
- string
- description
- Group's identifier. Must be unique for this environment and not to collide with topic keys
- default
- required/optional
- required
- env.group.keys
-
- type
- array
- description
- List of topic keys that belong to this group. Must not be empty
- default
- required/optional
- required
TODO
- Add a way of reordering consumer cards.
- Add topic schema validation.
Documentation
¶
There is no documentation for this package.