/vscode

Confluent for Visual Studio Code

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Confluent for VS Code

The Confluent extension makes it easy for developers to build stream processing applications using Confluent technology. This extension provides a robust, delightful experience for Confluent Cloud products from within the Visual Studio Code (VS Code) editor desktop environment.

Visit the Confluent Developer site for more about developing with Confluent, and read the docs at the Confluent documentation site.

Features

Confluent for VS Code provides a number of features for working with your Kafka clusters, topics and schemas.

Confluent for VS Code is available for Early Access, and some Confluent features may not be available. Consider installing the Confluent CLI to access all features of Confluent Cloud.

Command Palette

Most of the Confluent extension features are available in the VS Code Command Palette. Press Cmd+Shift+P/Ctrl+Shift+P and type "confluent" to show the Confluent extension commands.

Some commands are associated with view actions, which are the simple buttons (usually icons) next to items in the Sidebar. For example, play (open Message Viewer and start consuming messages), sync (refresh), and ellipsis (extra actions) are all view actions associated with commands available in the command palette.

Sidebar

In the Sidebar, click the Confluent logo to open the extension and show the following sections.

Connect to your streams

Confluent for VS Code supports accessing your Apache Kafka® clusters locally or on Confluent Cloud.

  • To start a local Kafka cluster, install the Confluent CLI and run the confluent local kafka start command.

  • If you're working on Confluent Cloud, open the Confluent extension and click Connect to Confluent Cloud or go to the VS Code Accounts menu and click "Sign in with Confluent Cloud to use Confluent".

Resources

The Resources view lists Confluent Cloud environments and associated Kafka and Schema Registry clusters, as well as local Kafka clusters.

  • Click a Kafka cluster to load the topics created in that cluster in the Topics view.
  • Click a Schema Registry to load the associated schemas for that registry in the Schemas view.

Topics

Click the play icon next to the topic name to open the Message Viewer, which enables searching and exploring messages in a topic. Within Message Viewer, you can:

  • page through and search for specific values within the list of all the messages
  • double-click a single message to explore its entire payload encoded into JSON
  • pause and resume consuming at any time
  • see aggregate counts of messages over time from the histogram view and brush to filter messages by timestamp
  • toggle partitions on/off to show/hide messages from specific partitions

Schemas

The Schemas view displays all the schemas available for the current Confluent Cloud environment's Schema Registry. Schemas are also shown in the Topics view by expanding a topic item if they match using either TopicNameStrategy or TopicRecordNameStrategy schema naming strategies and the user has the appropriate permissions.

Schema definitions can be viewed by expanding the schema subject to see a specific schema version, then clicking the View Schema icon.

Support

The Support panel provides links to the extension walkthrough, issue reporting, general feedback, and options to generate Kafka projects using a template.

Installation

From the Visual Studio Code Extension Marketplace

In your browser, go to the VS Code Marketplace to view, download, and install the Confluent for VS Code extension.

From within VS Code

  1. Open VS Code.

  2. In the VS Code sidebar, click Extensions (Cmd+Shift+X/Ctrl+Shift+X).

  3. In the Extensions view, search for "Confluent".

  4. Click Install.

From a .vsix file

Note: This doc refers to the extension version as x.x.x. Ensure you replace this with the actual version number you want to use, without the v prefix.

Confluent provides these VSIX files:

  • MacOS with Apple Silicon: vscode-confluent-darwin-arm64-x.x.x.vsix
  • MacOS with Intel processors: vscode-confluent-darwin-x64-x.x.x.vsix
  • Linux on ARM-64 processors: vscode-confluent-linux-arm64-x.x.x.vsix
  • Linux on x64 processors: vscode-confluent-linux-x64-x.x.x.vsix
  • Windows on x64 processors: vscode-confluent-windows-x64-x.x.x.vsix

Additionally, for Windows ARM-64, you may use Windows Subsystem for Linux WSL with the Linux ARM-64 .vsix file.

You can install the Confluent extension by using the VS Code UI or by using the code --install-extension command in the terminal.

To install by using the UI, follow these steps:

  1. Download the VSIX file appropriate for your machine.

  2. Open VS Code, and in the Sidebar, click Extensions.

  3. At the top of the Extensions view, click ..., and in the context menu, click Install from VSIX…

  4. Navigate to your downloaded vscode-confluent-vX.X.X.vsix file and click Install.

To install in the terminal, run the following command:

code --install-extension /path/to/vscode-confluent-vX.X.X.vsix

Outputs

Once the Confluent extension is activated, you can view extension logs in two separate Output Channels:

  • Confluent: logs for the VS Code extension itself
  • Confluent (Sidecar): logs from the Sidecar process

Telemetry

Gathering usage and error data helps Confluent develop a more resilient and user friendly application. Confluent enables telemetry only in official production releases. Confluent respect users' preferences for sending telemetry data -- if you have turned off telemetry in your VS Code settings, the extension doesn't send any events or data.

Segment for user actions

The extension uses Segment to log extension usage. See telemetry.ts for implementation and how it is used in the codebase. The extension sends events when you perform major actions in the extension, such as using any of the registerd commands. This helps Confluent see what commands are popular and helps to answer other questions about how the extension is used, so Confluent can make it even more useful.

Sentry for error tracing

The extension uses Sentry to capture and analyze errors, which enables more robust and friendly error debugging. It is the first item initialized in extension.ts, so that it can send any uncaught exceptions globally, and it's invoked in certain catch blocks to send specific errors. The @sentry/rollup-plugin is used to upload source maps.

Additional References

Known Limitations

  • Confluent Cloud connections require reauthenticating after 4 hours, and you will be prompted to reauthenticate.
    • Signing out of Confluent Cloud through the browser will also sign you out of the Confluent extension.
  • Preview links for non-default organizations work only after switching to the non-default organization in the Confluent Cloud UI in your browser.
  • When using multiple users on a single machine, only one user can run the extension at a time.

Support

If you have any questions, comments, or you run into any issues, feel free to post a message in a GitHub discussion or create an issue.

For general feedback, fill out and submit the survey.

Contributing

Follow CONTRIBUTING.md for information on setting up your development environment, proposing bugfixes and improvements, and building and testing your changes.

See the Code of Conduct for guidelines on what Confluent expects from participants, and what actions will and will not be tolerated.

License

This project is licensed under the Apache License, Version 2.0. See LICENSE.txt for the full license text.

The LICENSE.txt and NOTICE.txt covers the source code distributions of this project. The LICENSE.txt and NOTICE-vsix.txt covers the VSIX archive distribution of this project (the VS Code Extension). The THIRD_PARTY_NOTICES.txt file contains the list of third-party software that is included in the VSIX archive distribution of this project, along with the full text of applicable licenses.