A command line client for Kafka Connect

Overview

kcctl -- A CLI for Apache Kafka Connect

This project is a command-line client for Kafka Connect. Relying on the idioms and semantics of kubectl, it allows you to register and examine connectors, delete them, restart them, etc.

Usage

Display the help to learn about using kcctl:

kcctl help
Usage: kcctl [COMMAND]
A command-line interface for Kafka Connect
Commands:
  info      Displays information about the Kafka Connect cluster
  config    Sets or retrieves the configuration of this client
  get       Displays information about connector plug-ins and connectors
  delete    Deletes the specified connector
  restart   Restarts the specified connector or task
  describe  Displays detailed information about the specified resource
  apply     Applies the given file for registering or updating a connector
  help      Displays help information about the specified command

It is recommended to install the bash/zsh completion script kcctl_completion:

. kcctl_completion

Development

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./mvnw compile quarkus:dev

Packaging and running the application

The application can be packaged using:

./mvnw package

It produces the quarkus-run.jar file in the target/quarkus-app/ directory. Be aware that itโ€™s not an รผber-jar as the dependencies are copied into the target/quarkus-app/lib/ directory.

The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar. You should define an alias kcctl:

alias kcctl="java -jar target/quarkus-app/quarkus-run.jar"

Creating a native executable

You can create a native executable using:

./mvnw package -Pnative

You can then execute your native executable with: ./target/code-with-quarkus-1.0.0-SNAPSHOT-runner

As above, either define an alias kcctl or rename the resulting executable accordingly.

Updating the Completion Script

Grep for usages of DummyCompletions and uncomment them (they are used as placeholders in the generated completion script).

Build the application in JVM mode.

Recreate the completion script:

java -cp "target/quarkus-app/app/*:target/quarkus-app/lib/main/*:target/quarkus-app/quarkus-run.jar" picoclutoutoComplete -n kcctl --force dev.morling.kccli.command.KcCtlCommand

Edit the completion scrpt kcctl_completion, replace all the dummy completion placeholders with invocations of one of the (hidden) completion candidate commands, e.g. like so:

--- local CONNECTOR_NAME_pos_param_args="connector-1 connector-2 connector-3" # 0-0 values
+++ local CONNECTOR_NAME_pos_param_args=`kcctl connector-name-completions` # 0-0 values

Related Quarkus Guides

  • Picocli (guide): Develop command line applications with Picocli
  • Quarkus native apps (guide): Develop native applications with Quarkus and GraalVM

License

This code base is available ander the Apache License, version 2.

Comments
  • Allow to manage multiple connectors when it apply

    Allow to manage multiple connectors when it apply

    Fixes #107

    This is a base of discussion about the best way to manage multiples connectors in one command For example, I choose to add a --all option to process all connectors. But it could be a good idea to allow regexp or wildcard pattern instead (or both) For apply, I choose to not allow -n with multiple -f because it can be tricky to use otherwise. It might be too restrictive. Just let me know if it's going the good way. I can adapt the implementation following recommendations. And then apply the changes on all the other commands where it applies.

    opened by jvenant 17
  • Expand notion of configuration context

    Expand notion of configuration context

    In order to support display (#2) and reset (#8) of connector offsets, the concept of the configuration context should be expanded. We need to have the information about the Kafka bootstrap server(s) as well as the name of the offset topic. The suggestion is to introduce a notion of named context which take all the required configuration and allowing the the user to switch between them (#19).

    # local is the name of the context
    $ kcctl config set-context local --cluster=my-connect:8083 --bootstrap-servers=my-kafka:9092 --offset-topic=my-offsets
    Using context local
    

    The information about all the configured contexts would be stored in JSON format in the ~/.kcctl configuration file. Commands that don't need the additional attributes, should gracefully handle the current format of ~/.kcctl (solely containing the KC URL). Commands which do need the additional attributes, should raise an error when encountering a file in the legacy format, indicating how to use set-context for updating it.

    opened by gunnarmorling 15
  • Add support for multiple configuration contexts

    Add support for multiple configuration contexts

    Hi @gunnarmorling,

    here comes the PR! I hope I've got the the requirements right ๐Ÿ˜„.

    One thing I would like to challenge is supporting the old, properties-like config format. Because we are still pre 1.0.0, I guess it would be acceptable to not support the current (properties-like) configuration format anymore. Wdyt?

    The current, context-aware format is very flexible, except for the context-name and cluster URL, every other property is optional.

    So both

    {
        "currentContext": "local",
        "local": {
            "cluster": "http://localhost:8083"
        }
    }
    

    and

    {
        "currentContext": "local",
        "local": {
            "cluster": "http://localhost:8083",
            "boostrapServers": "localhost:9092",
            "offsetTopic": "connect-offsets"
        }
    }
    

    are valid.

    Fixes #24.

    opened by helpermethod 13
  • Support for Basic Authentication

    Support for Basic Authentication

    Added a simple implementation for basic authentication.

    This implementation follows roughly how kubectl formerly handled basic auth (I believe basic auth is now deprecated in Kubernetes, but don't quote me on that). Credentials may be added directly to a context in .kcctl or set using the set-context command.

    Documentation was added to README and tests added for some relevant areas.

    I chose to keep this implementation very simple. Additional items should be able to be added via KafkaConnectClientHeadersFactory in the future.

    opened by tonyfosterdev 12
  • Feature/broker auth

    Feature/broker auth

    With this PR, kafka client configuration will not be stored with the context in .kcctl via kcctl config

    The following is what the new config set-context usage would be:

    Usage: kcctl config set-context [--bootstrap-servers=<bootstrapServers>]
                                    [--cluster=<cluster>] [-f=<clientConfigFile>]
                                    [--offset-topic=<offsetTopic>]
                                    [--password=<password>] [--username=<username>]
                                    [-o=<clientConfigs>]... <contextName>
    Configures the specified context with the provided arguments
          <contextName>         Context name
          --bootstrap-servers=<bootstrapServers>
                                Comma-separated list of Kafka broker URLs
          --cluster=<cluster>   URL of the Kafka Connect cluster to connect to
      -f, --client-config-file=<clientConfigFile>
                                Configuration file for client
      -o, --client-config=<clientConfigs>
                                Configuration for client
          --offset-topic=<offsetTopic>
                                Name of the offset topic
          --password=<password> Password for basic authentication
          --username=<username> Username for basic authentication
    

    Note the new options:

      -f, --client-config-file=<clientConfigFile>
                                Configuration file for client
      -o, --client-config=<clientConfigs>
                                Configuration for client
    

    For this, you may pass in a -f/--client-config-file parameter to pass in a properties file, or the -o/--client-config which is a comma delimited list of configs (I chose -o as I figured -c and -s would likely be for cluster and bootstrap server at some point). The --client-config flag may be passed multiple times, i.e. --client-config="sasl.username=myuser" --client-config="sasl.password=mypassword".

    --client-config values will override and values passed via --client-config-files, and --client-config values that appear later in the command will override prior values.

    Note: I didn't put this in the README.md yet as I'd like some clarification on the best way to document all that behavior. Also, there's no feature that actually uses this yet, so documentation may just be confusing at this point. Thoughts? @gunnarmorling

    opened by tonyfosterdev 11
  • Provide option to filter output of kcctl describe plugin

    Provide option to filter output of kcctl describe plugin

    Via kcctl describe plugin one can list all the options of a connector (or any other plug-in like SMTs). For connectors with a large config surface, such as Debezium's, the output can be a bit overwhelming though. It could be useful to be able to filter the output, e.g. when knowing the name of one option, or some word from its description. I thought of supporting kcctl describe plugin --grep <some search string>, but am open for other proposals too.

    opened by gunnarmorling 9
  • Move repo to kcctl organization

    Move repo to kcctl organization

    Having a separate org is nicer in terms of collaboration.

    @aalmiray, I've already created the org https://github.com/kcctl and am planning to move this repo over there. I assume this will require some changes to the release infra as well? Should I first do the move and you then do the required updates? Or the other way around? Thx a lot!

    opened by gunnarmorling 9
  • Add support for Authentication

    Add support for Authentication

    Allow to configure authentication method for the Kafka Connect cluster. I've done a quick test (clumpsy, I know) and works adding the ClientHeaderParam anotation at interface level. The values should be obtained from the configuration, obviously.

    I'm not an expert in this REST Client library, and probably there is a better way to implement this solution.

    Also, this is only covering BasicAuth and other authentication methods could be included as well.

    If this is out of scope, don't hesitate to close this one ;)

    /*
     *  Copyright 2021 The original authors
     *
     *  Licensed under the Apache License, Version 2.0 (the "License");
     *  you may not use this file except in compliance with the License.
     *  You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     *  Unless required by applicable law or agreed to in writing, software
     *  distributed under the License is distributed on an "AS IS" BASIS,
     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     *  See the License for the specific language governing permissions and
     *  limitations under the License.
     */
    package dev.morling.kccli.service;
    
    import java.util.Base64;
    import java.util.List;
    import java.util.Map;
    
    import javax.ws.rs.DELETE;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.PUT;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    
    import org.eclipse.microprofile.rest.client.annotation.ClientHeaderParam;
    import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
    
    @Path("/")
    @RegisterRestClient
    @ClientHeaderParam(name = "Authorization", value = "{getBasicAuth}")
    public interface KafkaConnectApi {
    
        @GET
        KafkaConnectInfo getWorkerInfo();
    
        @GET
        @Path("/connector-plugins")
        List<ConnectorPlugin> getConnectorPlugins();
    
        @GET
        @Path("/connectors/")
        List<String> getConnectors();
    
        @POST
        @Path("/connectors/")
        ConnectorStatusInfo createConnector(String config);
    
        @GET
        @Path("/connectors/{name}")
        ConnectorInfo getConnector(@PathParam("name") String name);
    
        @POST
        @Path("/connectors/{name}/restart")
        void restartConnector(@PathParam("name") String name);
    
        @DELETE
        @Path("/connectors/{name}")
        void deleteConnector(@PathParam("name") String name);
    
        @GET
        @Path("/connectors/{name}/status")
        ConnectorStatusInfo getConnectorStatus(@PathParam("name") String name);
    
        @GET
        @Path("/connectors/{name}/topics")
        Map<String, TopicsInfo> getConnectorTopics(@PathParam("name") String name);
    
        @GET
        @Path("/connectors/{name}/config")
        Map<String, String> getConnectorConfig(@PathParam("name") String name);
    
        @PUT
        @Path("/connectors/{name}/config")
        ConnectorStatusInfo updateConnector(@PathParam("name") String name, String config);
    
        @POST
        @Path("/connectors/{name}/tasks/{id}/restart")
        ConnectorInfo restartTask(@PathParam("name") String name, @PathParam("id") String id);
    
        default String getBasicAuth() {
            return "Basic " +
                    Base64.getEncoder().encodeToString("username:password".getBytes());
        }
    }
    
    opened by jmcristobal 9
  • [WIP] #44 Integration tests setup

    [WIP] #44 Integration tests setup

    Hey there ๐Ÿ‘‹ I am working on a setup for integration tests with testcontainers. The first test runs w/o problems (on my machine ๐Ÿ˜)

    However, this is a WIP right now because I wanted to ping-pong some details here:

    • One way to test the commands is to assert the return codes and their outputs. Using the @Spec CommandSpec from picocli allows for easier testing. See the changes in the InfoCommand in this PR. Basically a CommandSpec can be injected vie the @Spec annotation and then used for writing the output. In the test we can then set the output stream of the CommandLine like this and then assert on it:
    CommandLine commandLine = new CommandLine(infoCommand);
    StringWriter output = new StringWriter();
    commandLine.setOut(new PrintWriter(output));
    
    • A better way would be to assert on the JSON (#98) instead of the "human" format. So maybe I could focus the efforts there before finishing this one.

    • The commands should use constructor injection instead of field injection for them to be testable. i.e.

    @Inject
    public InfoCommand(ConfigurationContext context) {
         this.context = context;
    }
    
    • Better yet, the whole RestClient should be somehow injectable. That way we could write unit and integration tests. Right now only blackbox testing is easily doable (I think), because the client is initialised when the command runs. Maybe someone with more quarks experience could chime in here ๐Ÿ˜‰

    • Do we have some guidelines/conventions for the status codes and the output streams? i.e. out vs err? I am asking, because for example what would be the better approach for #83? Status 0 and stdout? or some non-zero status with stderr? or status 0 but stderr?

    • I've used a @Tag for the integration test, in order to be able to run them selectively:

    # run all tests
    mvn test
    
    # run only integration tests
    mvn test -Dgroups=integration-test
    
    # run all except integration tests
    mvn test -Dgroups=!integration-test
    

    What do you think?

    opened by iabudiab 8
  • Have tests for kcctl

    Have tests for kcctl

    Currently, no tests exist for kcctl at all. We should add tests for the different commands, so to avoid regressions down the road. As part of this task, we need to

    • Understand how PicoCLI applications are tested; is their any guidance in their docs?
    • Set up the infrastructure for integration tests via Testcontainers; we'll need to start up ZooKeeper, Kafka, and Kafka Connect for testing kcctl; as inspiration or starting point, here's a Docker Compose file which shows the required components; as a test connector, the built-in file connector could probably be used
    opened by gunnarmorling 8
  • Boostrapping Patch command

    Boostrapping Patch command

    https://github.com/gunnarmorling/kcctl/issues/15

    Notes:

    • Added API, helper class and patch command.
    • Tested this locally:
      • mvn compile quarkus:dev -Dquarkus.args='patch logger com.snowflake.kafka.connector -l INFO' -Dsuspend
    • Can add more comments and actual logic in next commits.
    • API for reference: Link
    opened by sfc-gh-japatel 8
  • Bump jreleaser-maven-plugin from 1.3.1 to 1.4.0

    Bump jreleaser-maven-plugin from 1.3.1 to 1.4.0

    Bumps jreleaser-maven-plugin from 1.3.1 to 1.4.0.

    Release notes

    Sourced from jreleaser-maven-plugin's releases.

    Release v1.4.0

    Changelog

    ๐Ÿš€ Features

    • 29e24c9 gradle: Use BuildServices for displaying the banner
    • 5158b09 core: Support FLAT_BINARY distribution type, closes #1115
    • d46c04e Add init & json-schema commands to Ant, Maven, and Gradle., closes #1123
    • 0e3bc7d changelog: Skip username resolution when running in dry-run mode., closes #1116
    • 84d9ae2 core: Support Zstd compression in archive assemblers. Resolves #1106, closes #1106
    • ddc4d35 changelog: Reference closed issues. Resolves #806, closes #806
    • 5569a22 changelog: Handle BREAKING CHANGE from footer. Resolves #809, closes #809
    • a0ea282 core: Add Java properties to output.properties. Resolves #1085, closes #1085
    • 2cac1a2 core: Display Java version in version banner. Resolves #1084, closes #1084
    • 04cd78a announce: Let Mattermost and Webhook post non structured messages. Resolves #1080, closes #1080
    • 038db63 deploy: Improve error message when credentials are invalid. Fixes #1078, closes #1078
    • 1d45eba core: Add release branch to output.properties
    • eb073ce announce: Automatically mark Mastodon follow ups as unlisted. Resolves #1057, closes #1057
    • 4dd2abf announce: Support threaded statuses in Mastodon. Resolves #1001, closes #1001
    • 9b5f416 changelog: Append to an existing changelog file. Resolves #461, closes #461
    • 5da68d3 docker: Support multi-arch images via buildx. Resolves #1046, closes #1046
    • a8aaa83 docker: Publish all related docker tags in a single push. Resolves #1050, closes #1050
    • 8b36765 docker: Enabled docker.io as default registry. Resolves #1049, closes #1049
    • 444c438 package: Support AppImage for SINGLE_JAR distributions. Resolves #1048, closes #1048
    • f2b0037 core: Add an option to exclude platforms. Resolves #1040, closes #1040
    • 0929ef9 core: Allow context properties to be defined with env vars. Resolves #1039, closes #1039
    • ce0e359 core: Allow context properties to be defined with env vars. Resolves #1039, closes #1039
    • 0ce00b3 core: Add a strict mode for validation. Resolves #1033, closes #1033
    • 4d107f3 release: Update assets on release to Gitlab. Resolves #897, closes #897
    • 48a3ecb deploy: REfine rules for publication to Maven Central. Fixes #1031, closes #1031
    • a356f22 template: Insert creation timestamp into files generated by init. Fixes #1023, closes #1023
    • 36f1540 deploy: Do not require a git repository by default. Resolves #1030, closes #1030
    • ed63ec8 template: Support assembler templates. Resolves #1028, closes #1028
    • dbfa56c Assemble: Add a Java archive assembler. Resolves #1009, closes #1009
    • 7a81ad2 deploy: Support deploying snapshots to Nexus2. Resolves #1002, closes #1002

    ๐Ÿ› Fixes

    • 94bbac7 Init command must replace inceptionYear placeholder
    • 94edfd7 release: Rethrow exception if there's noo match, closes #1124
    • 2c04a7c release: Warn when stream is closed when uploading assets to GitHub, closes #1124
    • 15a2bf1 packager: Use intel binary if arm is not available in a multi-platform brew formula, closes #1122
    • 0170257 github: Consider user may have a private email, closes #1112
    • 6d5b0bc upload: Honor dryrun in all downloaders
    • 2b5b71e upload: Honor dryrun when querying S3 bucket exists
    • f4a28f8 upload: Check if ssh client is null before using it. Fixes #1110, closes #1110
    • a009e06 deploy: Honor dry-run settings before querying Gitlab packages. Fixes #1109, closes #1109
    • efe9a90 core: Check if path exists before walking it. Fixes #1108, closes #1108
    • e2bdf81 Remediate many errors reported by errorprone
    • f569708 packager: Snapshot template selection requires a prefix. Related to #1086, closes #1086
    • 25179d0 package: Update brew templates with correct tap placeholders. Fixes #1089, closes #1089
    • 956f468 core: Jbang catalog publication enabled by default. Fixes #1086, closes #1086

    ... (truncated)

    Commits
    • b977b66 Releasing version 1.4.0
    • 97c47ab build: Fix permissions in release workflow [skip ci]
    • eb96b5f build: Update noticeable announcement [skip ci]
    • 82dd7ee build: Store deploy artifacts during release
    • 29e24c9 feat(gradle): Use BuildServices for displaying the banner
    • fd38afe build: Use wildcard in launcher classpath
    • 5158b09 feat(core): Support FLAT_BINARY distribution type
    • b448a97 build: Update release announcements
    • 94bbac7 fix: Init command must replace inceptionYear placeholder
    • 7a0d6c1 build: Fixs assembler-name parameter in template commands
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Test with Debezium's

    Test with Debezium's "connect-base" image rather than "connect"

    This should speed up things a bit, as scanning the plug-in path takes quite some time for the Debezium image with all its connectors and SMTs. This will require adjustment of a small number of tests though which expect the Debezium connector plug-ins to be available.

    opened by gunnarmorling 3
  • Status should be colored for kcctl get connectors

    Status should be colored for kcctl get connectors

    PAUSED should be rendered yellow instead of white:

    kcctl get connectors
    
     NAME        TYPE     STATE    TASKS
     etcd-test   source   PAUSED   0: PAUSED, 1: PAUSED, 2: PAUSED
    
    opened by gunnarmorling 0
  • Tab completion for `kcctl config get-context` is broken

    Tab completion for `kcctl config get-context` is broken

    When tabbing at kcctl config get<TAB>, it doesn't complete to kcctl config get-context, but rather to kcctl config target/ (there is a target folder in the current working directory in this case).

    opened by gunnarmorling 0
  • NPE when trying to register a connector of an unknown type

    NPE when trying to register a connector of an unknown type

    Specified class isn't a valid connector type. The following connector type(s) are available:
    java.lang.NullPointerException
    	at org.kcctl.command.GetPluginsCommand.call(GetPluginsCommand.java:84)
    	at org.kcctl.command.ApplyCommand.createOrUpdateConnector(ApplyCommand.java:200)
    	at org.kcctl.command.ApplyCommand.applyOrValidateConnector(ApplyCommand.java:159)
    	at org.kcctl.command.ApplyCommand.call(ApplyCommand.java:140)
    	at org.kcctl.command.ApplyCommand.call(ApplyCommand.java:43)
    	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
    	at picocli.CommandLine.access$1300(CommandLine.java:145)
    	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
    	at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
    	at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
    	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
    	at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
    	at io.quarkus.picocli.runtime.PicocliRunner$EventExecutionStrategy.execute(PicocliRunner.java:26)
    	at picocli.CommandLine.execute(CommandLine.java:2078)
    	at io.quarkus.picocli.runtime.PicocliRunner.run(PicocliRunner.java:40)
    	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:131)
    	at io.quarkus.runtime.Quarkus.run(Quarkus.java:67)
    	at io.quarkus.runtime.Quarkus.run(Quarkus.java:41)
    	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
    
    opened by gunnarmorling 0
Releases(1.0.0-early-access)
  • 1.0.0-early-access(Dec 28, 2022)

    Changelog

    ๐Ÿ”„ Changes

    • 5cff18e #295 Fix configuration context for listing plugins when apply fails (Chris Egerton)

    โš™๏ธ Dependencies

    • efd1bac Bump actions/cache from 3.2.1 to 3.2.2 (dependabot[bot])

    Contributors

    We'd like to thank the following people for their contributions: Chris Egerton, Gunnar Morling, dependabot[bot]

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(435 bytes)
    kcctl-1.0.0-early-access-linux-x86_64.tar.gz(14.08 MB)
    kcctl-1.0.0-early-access-linux-x86_64.zip(14.08 MB)
    kcctl-1.0.0-early-access-osx-x86_64.zip(13.98 MB)
    kcctl-1.0.0-early-access-windows-x86_64.zip(14.14 MB)
  • v1.0.0.Beta1(Dec 12, 2022)

    Changelog

    33d4d68 ๐Ÿ Releasing version 1.0.0.Beta1 69bb647 #250 Allow multiple file names with 'apply -f' 7f09be4 Bump impsort-maven-plugin from 1.7.0 to 1.8.0 df6ae25 Bump quarkus.platform.version from 2.14.1.Final to 2.14.2.Final 4dd2369 #265 replace 'delete' with 'delete connector' 2af235b Updating GraalVM version used on CI 0e67e1b Updating GraalVM version used on CI 429f5c3 Bump jreleaser-maven-plugin from 1.2.0 to 1.3.1 01f128c Bump os-maven-plugin from 1.7.0 to 1.7.1 f05137a Bump formatter-maven-plugin from 2.20.0 to 2.21.0 f1bc57b Bump quarkus.platform.version from 2.13.3.Final to 2.14.1.Final c56d49b Bump maven-install-plugin from 3.0.1 to 3.1.0 ebd59a2 Bump quarkus.platform.version from 2.13.2.Final to 2.13.3.Final 7f2ce9b Bump debezium-testing-testcontainers from 1.9.6.Final to 2.0.0.Final 9f09760 Bump actions/cache from 3.0.10 to 3.0.11 3786680 Bump quarkus.platform.version from 2.13.1.Final to 2.13.2.Final 2883c6f โœจ #261 Adding search filter API for plugin descriptions; 54eb892 Bump quarkus.platform.version from 2.13.0.Final to 2.13.1.Final (#259) 8bddde5 Bump json-unit-assertj from 2.35.0 to 2.36.0 (#258) edaddca Bump actions/cache from 3.0.8 to 3.0.10 (#257) 40ff181 Bump ascii-table from 1.7.0 to 1.8.0 (#255) 2d85a70 Bump quarkus.platform.version from 2.12.3.Final to 2.13.0.Final (#252) b37ca34 Bump debezium-testing-testcontainers from 1.9.5.Final to 1.9.6.Final (#251) 8909ea5 Bump ascii-table from 1.6.0 to 1.7.0 (#249) f3c6d1c Bump quarkus.platform.version from 2.12.1.Final to 2.12.3.Final (#248) 2409c0f Bump maven-jar-plugin from 3.2.2 to 3.3.0 (#247) a7879f7 ๐Ÿ” #207 Showing plugin config options as a list instead of a table 000bfd4 ๐Ÿ” #207 Adding plug-in name completion 0bca439 ๐Ÿ” #207 Addressing review remarks 6df9a3f ๐Ÿ” #207 Adding support for KIP-769 features 591a2a4 Bump quarkus.platform.version from 2.11.3.Final to 2.12.1.Final (#244) 20edda6 Bump ascii-table from 1.5.0 to 1.6.0 (#242) 842511e Bump jreleaser-maven-plugin from 1.1.0 to 1.2.0 (#241) 576bce9 Bump quarkus.platform.version from 2.11.2.Final to 2.11.3.Final (#238) 3a9f6c4 Bump ascii-table from 1.3.0 to 1.5.0 (#240) 7ef737c Bump actions/cache from 3.0.7 to 3.0.8 (#237) 8cfe09d Bump maven-site-plugin from 3.12.0 to 3.12.1 07a752f Bump ascii-table from 1.2.0 to 1.3.0 f73b874 Bump quarkus.platform.version from 2.11.1.Final to 2.11.2.Final 1b19d7c Bump actions/cache from 3.0.5 to 3.0.7 (#236) efbcc7f Bump quarkus.platform.version from 2.10.3.Final to 2.11.1.Final 0e56434 Bump maven-install-plugin from 3.0.0-M1 to 3.0.1 3168bbf Bump maven-assembly-plugin from 3.4.0 to 3.4.2 1b577c4 Bump maven-deploy-plugin from 3.0.0-M2 to 3.0.0 7126b90 Bump maven-resources-plugin from 3.2.0 to 3.3.0 b3e6bc1 Bump formatter-maven-plugin from 2.19.0 to 2.20.0 1ff86ac Bump quarkus.platform.version from 2.10.1.Final to 2.10.3.Final d40b3a2 Bump actions/cache from 3.0.4 to 3.0.5 594c16f โคด๏ธ Fixes to Connect 3.2 b065faf Bump maven-assembly-plugin from 3.3.0 to 3.4.0 b86c580 โšก๏ธ #184 Using "Expand" API to request all connectors status and config info at once 4c2e5ec โฌ†๏ธ Upgrading GraalVM 4fff77d โฌ†๏ธ Upgrading GraalVM 2628df2 โ™ป๏ธ Using record type 8b97b9f โฌ†๏ธ Upgrading Debezium version 1cbde5d Bump jreleaser-maven-plugin from 1.0.0 to 1.1.0 2bd1f83 Bump okhttp from 4.9.3 to 4.10.0 20f357b Bump okhttp-urlconnection from 4.9.3 to 4.10.0 529c12d Bump maven-enforcer-plugin from 3.0.0-M3 to 3.1.0 9564811 Bump quarkus.platform.version from 2.9.2.Final to 2.10.1.Final 0b99a7b Bump okio from 2.8.0 to 3.2.0 0e1d547 Bump formatter-maven-plugin from 2.18.0 to 2.19.0 dcd4fd8 Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7 82207b1 Bump actions/cache from 3.0.2 to 3.0.4 28d98a4 Bump maven-failsafe-plugin from 3.0.0-M5 to 3.0.0-M7 f2e4aab Bump debezium-api from 1.9.2.Final to 1.9.4.Final 633a4a8 Bump debezium-testing-testcontainers from 1.9.2.Final to 1.9.4.Final f60a341 ๐Ÿ› #204 Avoid NPE when invoking describe command for non-existing connector ffcf005 Bump debezium-testing-testcontainers from 1.8.1.Final to 1.9.2.Final d1d13c8 Bump impsort-maven-plugin from 1.6.2 to 1.7.0 1e17949 Bump formatter-maven-plugin from 2.17.1 to 2.18.0 1373604 Bump jreleaser-maven-plugin from 0.10.0 to 1.0.0 2152dd4 Bump quarkus.platform.version from 2.7.1.Final to 2.9.2.Final 81426ca Bump maven-clean-plugin from 3.1.0 to 3.2.0 f41cc35 Bump debezium-api from 1.8.1.Final to 1.9.2.Final a52164b Bump maven-surefire-plugin from 3.0.0-M5 to 3.0.0-M6 ee0a839 ๐Ÿ’„ #182 Sort the connector config info when executing the describe command 6a82ece Bump quarkus.platform.version from 2.7.1.Final to 2.7.2.Final 296e822 Bump actions/checkout from 2 to 3 8a572dd Bump maven-compiler-plugin from 3.9.0 to 3.10.1 5d621c2 Bump actions/setup-java from 2 to 3 cfc8129 Bump actions/download-artifact from 2 to 3 e71c5c0 Bump actions/upload-artifact from 2 to 3 f727c3e Bump json-unit-assertj from 2.31.0 to 2.35.0 23cefe2 Bump actions/cache from 2.1.7 to 3.0.2 8ad3eaa Bump maven-site-plugin from 3.10.0 to 3.12.0 2e8980a โœจ #167 allow multiple connector names and regexp 00453ef ๐Ÿ“ README update f1c55fe Bump debezium-testing-testcontainers from 1.8.0.Final to 1.8.1.Final 3cdd45a Bump debezium-api from 1.8.0.Final to 1.8.1.Final 0681802 ๐Ÿ‘ทโ€โ™€๏ธ #161 Upgrading to latest GraalVM GH Action ec4b12e ๐Ÿ‘ทโ€โ™€๏ธ #147 Upgrading to latest GraalVM GH Action ce604d6 Bump json-unit-assertj from 2.29.0 to 2.31.0 0832fa2 Bump quarkus.platform.version from 2.7.0.Final to 2.7.1.Final 9914c3a Bump okhttp-urlconnection from 4.9.1 to 4.9.3 048adf1 Bump okhttp from 4.9.1 to 4.9.3 b0b78ca Bump quarkus.platform.version from 2.6.3.Final to 2.7.0.Final f41a902 Bump json-unit-assertj from 2.28.0 to 2.29.0 784f857 ๐Ÿ‘ทโ€โ™€๏ธ #147 Using official GraalVM GitHub Action 9c18226 ๐Ÿšง Fixed version for failsafe plug-in 9e0c9ce ๐Ÿงช #146 Skipping integration tests on GH Actions for Windows; 0984289 ๐Ÿงช #146 Skipping integration tests on GH Actions for Windows; 1e18caf ๐Ÿงช #146 Skipping integration tests on GH Actions for Windows; 46fb9e3 ๐Ÿงช #146 Skipping integration tests on GH Actions for Windows; 95b674a ๐Ÿงช #146 Skipping integration tests on GH Actions for macOS; f43ff0c ?? #146 Skipping integration tests on GH Actions for macOS; 1322ea2 ๐Ÿงช #44 Misc. clean-up after rebase 1f73cd3 ๐Ÿงช #44 Add integration test for PauseConnectorCommand 71f7dbe ๐Ÿงช #44 Add integration test for LoggerNamesCompletionCandidateCommand fe22569 ๐Ÿงช #44 Add integration test for GetPluginsCommand f379823 ๐Ÿงช #44 Add integration test for GetLoggersCommand 704ae1d ๐Ÿงช #44 Add integration test for GetLoggerCommand 3bd48a1 ๐Ÿงช #44 Add integration test for GetConnectorCommand d9af412 ๐Ÿงช #44 Add integration test for DeleteConnectorCommand 5473c6a ๐Ÿงช #44 Add integration test for GetConnectorNamesCommand 3f1d6b8 ๐Ÿงช #44 Add integration test for ApplyCommand bf4aeda ๐Ÿณ #44 Provide helper utilities for integration tests dfe7fa6 ๐Ÿณ #44 Add initial testcontainers setup for integration testing c82d02e Bump quarkus.platform.version from 2.6.1.Final to 2.6.3.Final ca692eb Bump maven-jar-plugin from 3.2.0 to 3.2.2 4abee72 Bump maven-compiler-plugin from 3.8.1 to 3.9.0 98723f3 Bump maven-deploy-plugin from 3.0.0-M1 to 3.0.0-M2 eeba7fb Bump jreleaser-maven-plugin from 0.9.1 to 0.10.0 3d7d4be Bump maven-site-plugin from 3.9.1 to 3.10.0 837e577 Bump quarkus.platform.version from 2.6.0.Final to 2.6.1.Final 9c821c0 Bump quarkus.platform.version from 2.5.4.Final to 2.6.0.Final c0c6e47 โฌ†๏ธ Next version 1.0.0-SNAPSHOT

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(407 bytes)
    kcctl-1.0.0.Beta1-linux-x86_64.tar.gz(13.99 MB)
    kcctl-1.0.0.Beta1-linux-x86_64.zip(13.98 MB)
    kcctl-1.0.0.Beta1-osx-x86_64.zip(13.88 MB)
    kcctl-1.0.0.Beta1-windows-x86_64.zip(14.03 MB)
  • v1.0.0.Alpha5(Dec 22, 2021)

    Changelog

    5fbb9d8 ๐Ÿ Releasing version 1.0.0.Alpha5 98b0ac2 โšก๏ธ Setting up Homebrew release bbef37a โฌ†๏ธ Next version 1.0.0-SNAPSHOT 8ae7e6e ๐Ÿ Releasing version 1.0.0.Alpha4 bd8cb5d ๐Ÿ‘ท Continuing after failures during artifact deployment d430bdc ๐Ÿ Releasing version 1.0.0.Alpha3 3fd78ec ๐Ÿบ Add Homebrew packager ad181fd Bump quarkus.platform.version from 2.5.3.Final to 2.5.4.Final 2c49ee4 ๐Ÿ’„ Consistent output of profile name 93b9eae ๐Ÿฅ… #124 Gracefully handling non-available KC REST API 5981d49 ๐Ÿ“ README update e911d83 ๐Ÿ“ README update after first stable release fb98c7c โฌ†๏ธ Next version 1.0.0-SNAPSHOT 4a31809 ๐Ÿ Releasing version 1.0.0.Alpha2 d71ea10 ๐Ÿ“ฆ Sdkman requires all input archives to be Zip files f1320b1 ๐Ÿ“ Store release logs 661b215 ๐Ÿ™ˆ Sdkman publication should only be active on release 520cfaa โฌ†๏ธ Next version 1.0.0-SNAPSHOT

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(411 bytes)
    kcctl-1.0.0.Alpha5-linux-x86_64.tar.gz(15.21 MB)
    kcctl-1.0.0.Alpha5-linux-x86_64.zip(15.21 MB)
    kcctl-1.0.0.Alpha5-osx-x86_64.zip(15.09 MB)
    kcctl-1.0.0.Alpha5-windows-x86_64.zip(15.26 MB)
  • v1.0.0.Alpha4(Dec 22, 2021)

    Changelog

    8ae7e6e ๐Ÿ Releasing version 1.0.0.Alpha4 bd8cb5d ๐Ÿ‘ท Continuing after failures during artifact deployment d430bdc ๐Ÿ Releasing version 1.0.0.Alpha3 3fd78ec ๐Ÿบ Add Homebrew packager ad181fd Bump quarkus.platform.version from 2.5.3.Final to 2.5.4.Final 2c49ee4 ๐Ÿ’„ Consistent output of profile name 93b9eae ๐Ÿฅ… #124 Gracefully handling non-available KC REST API 5981d49 ๐Ÿ“ README update e911d83 ๐Ÿ“ README update after first stable release fb98c7c โฌ†๏ธ Next version 1.0.0-SNAPSHOT 4a31809 ๐Ÿ Releasing version 1.0.0.Alpha2 d71ea10 ๐Ÿ“ฆ Sdkman requires all input archives to be Zip files f1320b1 ๐Ÿ“ Store release logs 661b215 ๐Ÿ™ˆ Sdkman publication should only be active on release 520cfaa โฌ†๏ธ Next version 1.0.0-SNAPSHOT

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(411 bytes)
    kcctl-1.0.0.Alpha4-linux-x86_64.tar.gz(15.22 MB)
    kcctl-1.0.0.Alpha4-linux-x86_64.zip(15.22 MB)
    kcctl-1.0.0.Alpha4-osx-x86_64.zip(15.09 MB)
    kcctl-1.0.0.Alpha4-windows-x86_64.zip(15.26 MB)
  • v1.0.0.Alpha3(Dec 22, 2021)

    Changelog

    d430bdc ๐Ÿ Releasing version 1.0.0.Alpha3 3fd78ec ๐Ÿบ Add Homebrew packager ad181fd Bump quarkus.platform.version from 2.5.3.Final to 2.5.4.Final 2c49ee4 ๐Ÿ’„ Consistent output of profile name 93b9eae ๐Ÿฅ… #124 Gracefully handling non-available KC REST API 5981d49 ๐Ÿ“ README update e911d83 ๐Ÿ“ README update after first stable release fb98c7c โฌ†๏ธ Next version 1.0.0-SNAPSHOT 4a31809 ๐Ÿ Releasing version 1.0.0.Alpha2 d71ea10 ๐Ÿ“ฆ Sdkman requires all input archives to be Zip files f1320b1 ๐Ÿ“ Store release logs 661b215 ๐Ÿ™ˆ Sdkman publication should only be active on release 520cfaa โฌ†๏ธ Next version 1.0.0-SNAPSHOT

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(411 bytes)
    kcctl-1.0.0.Alpha3-linux-x86_64.tar.gz(15.21 MB)
    kcctl-1.0.0.Alpha3-linux-x86_64.zip(15.21 MB)
    kcctl-1.0.0.Alpha3-osx-x86_64.zip(15.10 MB)
    kcctl-1.0.0.Alpha3-windows-x86_64.zip(15.26 MB)
  • v1.0.0.Alpha2(Dec 19, 2021)

    Changelog

    4a31809 ๐Ÿ Releasing version 1.0.0.Alpha2 d71ea10 ๐Ÿ“ฆ Sdkman requires all input archives to be Zip files f1320b1 ๐Ÿ“ Store release logs 661b215 ๐Ÿ™ˆ Sdkman publication should only be active on release 520cfaa โฌ†๏ธ Next version 1.0.0-SNAPSHOT

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(411 bytes)
    kcctl-1.0.0.Alpha2-linux-x86_64.tar.gz(15.21 MB)
    kcctl-1.0.0.Alpha2-linux-x86_64.zip(15.21 MB)
    kcctl-1.0.0.Alpha2-osx-x86_64.zip(15.09 MB)
    kcctl-1.0.0.Alpha2-windows-x86_64.zip(15.24 MB)
  • v1.0.0.Alpha1(Dec 19, 2021)

    Changelog

    ed6b41b ๐Ÿ Releasing version 1.0.0.Alpha1 493e173 ๐Ÿšง Workaround for publishing to Sdkman b6b7260 โšก๏ธ Add Sdkman publication settings 66eb371 Bump quarkus.platform.version from 2.5.2.Final to 2.5.3.Final 94d998b Bump quarkus.platform.version from 2.5.1.Final to 2.5.2.Final 6da5411 โ†ช๏ธ Follow redirects when calling Kafka Connect API 4fd4396 Bump jreleaser-maven-plugin from 0.9.0 to 0.9.1 7f3a41a Bump formatter-maven-plugin from 2.17.0 to 2.17.1 6a851fd Bump quarkus.platform.version from 2.5.0.Final to 2.5.1.Final 97b1326 feat: kcctl apply - Read from stdin 467ddfd โฌ†๏ธ #113 Updating to Java 17 1fd9d95 Bump jreleaser-maven-plugin from 0.8.0 to 0.9.0 62ec8a5 โœจ #83 Handle attempt to delete non-existing connector gracefully 0ddd19c ๐Ÿ“ README update 68d4656 ๐Ÿ‘ฃ #105 Fix file paths to match package declarations ce8ff29 Bump actions/cache from 2.1.6 to 2.1.7 13a44fc Bump quarkus.platform.version from 2.4.2.Final to 2.5.0.Final 5839388 ๐Ÿ‘ฎ #99 Renamed org.moditect to org.kcctl e463e41 Bump quarkus.platform.version from 2.4.1.Final to 2.4.2.Final 4e1a758 ๐Ÿ‘ฎ #95 Updated completion, fixed README reference to old kcctl namespace 12e2249 ๐Ÿ‘ฎ #95 Fixed path call expansion, removed debug code, added null check to client configs arg 09d75a1 ๐Ÿ’ก#95 Added client-config property file support, multiple arguments e6a10c5 ๐Ÿ‘ฎ #95 Renamed admin client config references to just client config ee42b19 ๐Ÿ’ก#95 Added --admin-client-config context flag, serialization/deserialization, and corresponding tests 9f5e6c2 ๐Ÿงช #95 Added test docker-compose files f271701 Bump quarkus.platform.version from 2.4.0.Final to 2.4.1.Final e78c7f5 Bump quarkus.platform.version from 2.3.0.Final to 2.4.0.Final c986f22 Bump jreleaser-maven-plugin from 0.7.0 to 0.8.0 f02c9b7 Bump formatter-maven-plugin from 2.16.0 to 2.17.0 bbba5fd ๐ŸŽ๏ธ #89 Upgrading to Java 17 and GraalVM 21.3.0 7088bfd ๐Ÿ–Š๏ธ #25 Correct name of kcctl in README.md 30f1811 ๐Ÿงธ #25 Adjusting artifact id and package name 1cfb79e ๐Ÿ—ƒ๏ธ #19 Reworking context design; ab8fcdf ๐Ÿ—ƒ๏ธ #19 get-contexts and current-context commands added 6b2738f ๐Ÿ”„ #81 Setting current context upon kcctl config set-context 9f7b383 Bump quarkus.platform.version from 2.1.4.Final to 2.3.0.Final 725de4c Bump DeLaGuardo/setup-graalvm from 4.0 to 5.0 9522a5d ๐Ÿงš #17 Adjusting error message 5cc18da ๐Ÿš— #17 Updated kcctl_completion c478282 ๐Ÿ‘ฎ #17 Removed IOException import fd182ab ๐Ÿ‘ฎ #17 Fixed typo in test name 21d71ae ๐Ÿ’ฅ #17 Allow non 401 KafkaConnectExceptions to bubble up 5100aa7 ๐Ÿ’ฅ #17 Added global execution exception handler to handle KafkaConnectExceptions aa2dcef ๐Ÿ‘ฎ #17 Misc. clean-up; 098b1b4 ๐Ÿงช #17 Added basic auth testing files 340d29b ๐Ÿ“– #17 Added README docs cfeefa0 ๐ŸŽ #17 Added username and password arguments to set-context 32b192c ๐ŸŽ #17 Added ability to parse and use username and password context properties for basic auth e801874 โœ๏ธ Fix a few infelicities in README.md 5d189a5 Bump jreleaser-maven-plugin from 0.6.0 to 0.7.0 93e60e9 ๐Ÿ’ฅ #61 Handled exception for invalid connector config 650b427 ๐Ÿ” #65 Added version check for topics API 44791eb Fixed references to "kcctl set-context" 2089c6d ๐ŸŽ #23 Add ability to validate a connector config; 8b19c07 Bump quarkus.platform.version from 2.1.3.Final to 2.1.4.Final e5e9ce1 ๐Ÿšง Fixing command to create a configuration context f731d0b Bump json-unit-assertj from 2.27.0 to 2.28.0 acfc54c ๐Ÿ”ง #24 Adding support for multiple configuration contexts 127f250 Bump maven-assembly-plugin from 3.2.0 to 3.3.0 4299efc Bump actions/cache from 1 to 2.1.6 5dec996 Bump formatter-maven-plugin from 2.15.0 to 2.16.0 e10f5df Bump impsort-maven-plugin from 1.6.0 to 1.6.2 58c162f Bump license-maven-plugin from 4.0 to 4.1 2ff6220 Bump quarkus.platform.version from 2.1.1.Final to 2.1.3.Final 5e3a838 ๐Ÿค– #51 Add Dependabot ca861db ๐Ÿฉน #36 Retry loop for status retrieval after patch 3dee3e5 ๐ŸŽจ #5 Paused and unassigned states in yellow color b1bd25c ๐Ÿฉน #36 Add a command to patch connector parameters 0564ea9 #37 Simplifying updates to completion script c7e64ab ๐Ÿ“– Update README.md 0de5f60 โ–ถ๏ธAdd resume connector command cdc5d74 โธ Add pause connector command fc845a2 ๐Ÿ’ฅ #32 Misc clean-up; 794e2f6 ๐Ÿ’ฅ #32 Gracefully handling exceptions in apply and describe dad39e7 โ„น๏ธ #37 help, version, get context added in completion f912040 ๐Ÿ”€ #3 added config get-context command and description in set-context 0e89f96 โญ #7 Added version and help options f75807a ๐Ÿš€ Upgrading to Quarkus 2.1.1.Final 5e8a794 ๐Ÿงน Renaming test file d624dc6 ๐Ÿงน #4 Re-arranging task config display 0fa0134 ๐Ÿคญ #4 Message fix 8bfccae ๐Ÿ #4 Updating completion script 794f3b7 โญ #4 Add option to display tasks config 32117e0 ๐Ÿท Update Graal to 21.2.0 936db78 ๐Ÿฆ‰ Configure JReleaser via its Maven plugin 65a0c15 ๐Ÿค Use tar.gz for linux distribution instead of .zip b4359f8 ๐Ÿ’ฅ Use a property as conditional for the filename extension. a4172c9 ๐Ÿงธ README update 03f3896 ๐Ÿ’ฃ Gracefully handling error response upon connector creation f3c458e ๐Ÿ’ฃ Gracefully handling error response upon connector creation 78f0094 ๐Ÿ‘ฃ #15 More consistent command ordering 87afe6f ๐Ÿ‘ฃ #15 Tab completion for logger commands ee5454d ๐Ÿ“ Adding intro video to README b21c67e ๐Ÿ“ README update d5dd74d ๐Ÿฉน Fix early-access release workflow b34d3e6 ๐Ÿ’ซ #15 Misc. clean-up 910f80d ๐Ÿ‘ฃ #15 Implementing patch logger and get logger commands 91b15c6 โš—๏ธ Simplify JReleaser configuration e42243b #21 Re-enabling dev mode 9598e8c ๐Ÿ›  Trigger build on PR and push to main a4fd68a ๐ŸŒŸ Configure release workflow 5885d1d ๐Ÿš€ Configure rolling releases with JReleaser 5ca3a65 ๐Ÿ›  Update build workflow with platform specific runners 7ae2359 ๐Ÿ›  Add distribution assembly 8fe2951 โ†ช๏ธ Splitting up restart command 7ba446e ๐Ÿงน Sorting plug-ins cf77f1d ๐Ÿšจ Displaying trace in case of failure 40ea82e ๐ŸŒˆ Adding some color 2281a22 ๐Ÿ’ซ Nicer info output 71692dc ๐Ÿ“ญ Adding topics to kcctl describe connector b54d65f ๐Ÿ“ README fixes 97b82a2 ๐Ÿ“ Completion updates; README update 4c09481 ๐Ÿ—‘๏ธ Deletion and restart support 7e689fd ๐Ÿงน Using API named and configured consistently 6fe62d5 ๐Ÿ‘ท CI set-up 8a38493 ๐Ÿ† Initial import

    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(309 bytes)
    kcctl-1.0.0.Alpha1-linux-x86_64.tar.gz(15.21 MB)
    kcctl-1.0.0.Alpha1-osx-x86_64.zip(15.09 MB)
    kcctl-1.0.0.Alpha1-windows-x86_64.zip(15.24 MB)
Owner
Gunnar Morling
Open source software engineer @ Red Hat, working on Debezium and Hibernate; Spec lead of Bean Validation 2.0; Founder of MapStruct and ModiTect
Gunnar Morling
Evgeniy Khyst 54 Dec 28, 2022
Arduino-Bluetooth-Connect - This is an Arduino Bluetooth Connect App that works as a Serial Monitor.

Arduino-Bluetooth-Connect An app that works as a Serial Monitor. This app can connect to Arduino through Bluetooth HC-05 Module. Commands can be sent

Aritra Mandal 2 Aug 6, 2022
Kryptonite is a turn-key ready transformation (SMT) for Apache Kafkaยฎ Connect to do field-level ๐Ÿ”’ encryption/decryption ๐Ÿ”“ of records. It's an UNOFFICIAL community project.

Kryptonite - An SMT for Kafka Connect Kryptonite is a turn-key ready transformation (SMT) for Apache Kafkaยฎ to do field-level encryption/decryption of

Hans-Peter Grahsl 53 Jan 3, 2023
A template and introduction for the first kafka stream application. The readme file contains all the required commands to run the Kafka cluster from Scrach

Kafka Streams Template Maven Project This project will be used to create the followings: A Kafka Producer Application that will start producing random

null 2 Jan 10, 2022
Demo project for Kafka Ignite streamer, Kafka as source and Ignite cache as sink

ignite-kafka-streamer **Description : Demo project for Kafka Ignite streamer, Kafka as source and Ignite cache as sink Step-1) Run both Zookeeper and

null 1 Feb 1, 2022
Kafka example - a simple producer and consumer for kafka using spring boot + java

Kafka example - a simple producer and consumer for kafka using spring boot + java

arturcampos 1 Feb 18, 2022
A distributed event bus that implements a RESTful API abstraction on top of Kafka-like queues

Nakadi Event Broker Nakadi is a distributed event bus broker that implements a RESTful API abstraction on top of Kafka-like queues, which can be used

Zalando SE 866 Dec 21, 2022
Mirror of Apache Kafka

Apache Kafka See our web site for details on the project. You need to have Java installed. We build and test Apache Kafka with Java 8, 11 and 15. We s

The Apache Software Foundation 23.9k Jan 5, 2023
Fast and reliable message broker built on top of Kafka.

Hermes Hermes is an asynchronous message broker built on top of Kafka. We provide reliable, fault tolerant REST interface for message publishing and a

Allegro Tech 742 Jan 3, 2023
Dataflow template which read data from Kafka (Support SSL), transform, and outputs the resulting records to BigQuery

Kafka to BigQuery Dataflow Template The pipeline template read data from Kafka (Support SSL), transform the data and outputs the resulting records to

DoiT International 12 Jun 1, 2021
Publish Kafka messages from HTTP

Kafka Bridge Publish Kafka messages from HTTP Configuration Example configuration for commonly used user + password authentication: kafka-bridge: ka

neuland - Bรผro fรผr Informatik 4 Nov 9, 2021
Implementaรงรฃo de teste com Kafka

TesteKafka01 Implementaรงรฃo de teste com Kafka Projeto criado para estudo e testes com Kafka Recursos que estarรฃo disponiveis: -Envio de msg -Recebe Ms

null 3 Sep 17, 2021
Firehose is an extensible, no-code, and cloud-native service to load real-time streaming data from Kafka to data stores, data lakes, and analytical storage systems.

Firehose - Firehose is an extensible, no-code, and cloud-native service to load real-time streaming data from Kafka to data stores, data lakes, and analytical storage systems.

Open DataOps Foundation 279 Dec 22, 2022
MemQ is a new PubSub system that augments Kafka

MemQ: An efficient, scalable cloud native PubSub system MemQ is a new PubSub system that augments Kafka at Pinterest. It uses a decoupled storage and

Pinterest 56 Dec 30, 2022
KC4Streams - a simple Java library that provides utility classes and standard implementations for most of the Kafka Streams pluggable interfaces

KC4Streams (which stands for Kafka Commons for Streams) is a simple Java library that provides utility classes and standard implementations for most of the Kafka Streams pluggable interfaces.

StreamThoughts 2 Mar 2, 2022
Output Keycloak Events and Admin Events to a Kafka topic.

keycloak-kafka-eventlistener Output Keycloak Events and Admin Events to a Kafka topic. Based on Keycloak 15.0.2+ / RH-SSO 7.5.0+ How to use the plugin

Dwayne Du 4 Oct 10, 2022
Aula sobre seguranรงa no kafka usando SSL

Kafka4Devs - Seguranรงa no Kafka com SSL Vocรช sabe o que acontece por debaixo dos panos de uma aplicaรงรฃo segura? Sabe como empresas grandes que utiliza

Rocketseat Experts Club 4 Feb 28, 2022
RabbitMQ Java client

RabbitMQ Java Client This repository contains source code of the RabbitMQ Java client. The client is maintained by the RabbitMQ team at Pivotal. Depen

RabbitMQ 1.1k Jan 7, 2023
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. A pure

Ignite Realtime 2.3k Dec 28, 2022