This is an automated email from the ASF dual-hosted git repository. hubcio pushed a commit to branch docs/align-with-topic-durability in repository https://gitbox.apache.org/repos/asf/iggy-website.git
commit 7e3a1adf018e3b7a2eb2e82b47b554461bb5886c Author: hubcio <[email protected]> AuthorDate: Fri Sep 11 05:30:51 2026 +0200 fix(docs): align Web UI setup and features --- content/docs/introduction/about.mdx | 4 ++-- content/docs/server/configuration.mdx | 2 +- content/docs/web_ui/start.mdx | 34 ++++++++++++++++++++++++---------- public/img/iggy_web_ui.png | Bin 145001 -> 49250 bytes 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/content/docs/introduction/about.mdx b/content/docs/introduction/about.mdx index 9c8129b4..f2d6b620 100644 --- a/content/docs/introduction/about.mdx +++ b/content/docs/introduction/about.mdx @@ -81,10 +81,10 @@ Iggy CLI can be installed with `cargo install iggy-cli --version 0.14.0-edge.7 - The Web UI provides a comprehensive dashboard for the Iggy server, built with SvelteKit and TypeScript. It can run in two modes: -- **Embedded** - compiled into the server binary (with `iggy-web` feature flag), served at the `/ui` endpoint when `http.web_ui = true` +- **Embedded** - compiled into the server binary (with the `iggy-web` feature and [built static assets](/docs/web_ui/start)), served at the `/ui` endpoint when `http.web_ui = true` - **Standalone** - as a separate container via `docker pull apache/iggy-web-ui:edge` -Features include stream/topic/partition management, a message browser with JSON/string/XML decoders, and user management. The logs and terminal pages are placeholders, and the server settings page has a disabled Save action rather than an operational configuration editor. +Features include stream/topic/partition management, a message browser with JSON/string/XML decoders, and user listing and creation with initial permissions. Editing or deleting existing users and changing their permissions are placeholders. The logs and terminal pages are also placeholders, and the server settings page has a disabled Save action rather than an operational configuration editor. ## Connectors diff --git a/content/docs/server/configuration.mdx b/content/docs/server/configuration.mdx index a550393b..fb2340bd 100644 --- a/content/docs/server/configuration.mdx +++ b/content/docs/server/configuration.mdx @@ -115,7 +115,7 @@ The tables below list every section with its shipped defaults. In cluster mode, HTTP sessions hold live server-side session state (they count against `metadata.clients_table_max`). Consumer group management (create, get, delete) is available over HTTP. Group membership (join, leave) is not and needs a stateful transport. -In cluster mode, followers forward control-plane requests (streams, topics, users, and so on) to the current primary when a cluster-wide JWT key exists (see `[http.jwt]` below). Forwarding does not cover the partition plane: message produce and consumer-offset writes must reach the partition's primary node directly, while message polls read locally on any node. +In cluster mode, followers forward control-plane requests (streams, topics, users, and so on) to the current primary when a cluster-wide JWT key exists (see `[http.jwt]` below). Message produce and consumer-offset writes use a separate fallback: after a `TransientNotAccepted` response, the server tries each other roster node at most once. Message polls read locally on the receiving node. ### `[http.cors]` diff --git a/content/docs/web_ui/start.mdx b/content/docs/web_ui/start.mdx index e1ebd9f9..9d5e23af 100644 --- a/content/docs/web_ui/start.mdx +++ b/content/docs/web_ui/start.mdx @@ -7,6 +7,8 @@ Iggy Web UI provides a comprehensive dashboard for Iggy server. It allows you to  +These instructions target Iggy server 0.9.0. The container examples use `edge` while the release is being prepared. Use the matching source checkout for local builds. + ## How it connects The Web UI is a purely client-side application: every call to the Iggy HTTP API is issued by your browser, not by the Web UI container or server. Two things follow from this: @@ -28,22 +30,32 @@ enabled = true web_ui = true # Enable embedded Web UI at /ui ``` +When building from source, generate the static assets before compiling the server. Run from the repository root: + +```bash +npm --prefix web ci +npm --prefix web run build:static +cargo build --bin iggy-server +``` + +The feature alone does not generate these assets. A server binary built without them returns 404 at `/ui`. + If the server is compiled without the `iggy-web` feature and `web_ui = true`, a warning is logged but the server continues to run normally. ### Standalone mode -Run the Web UI as a separate container: +Start an Iggy server with HTTP enabled, as shown in [Getting started](/docs/introduction/getting-started), then run the Web UI as a separate container: ```bash -docker pull apache/iggy-web-ui -docker run -e PUBLIC_IGGY_API_URL=http://localhost:3000 -p 3050:3050 apache/iggy-web-ui +docker pull apache/iggy-web-ui:edge +docker run -e PUBLIC_IGGY_API_URL=http://localhost:3000 -p 3050:3050 apache/iggy-web-ui:edge ``` `PUBLIC_IGGY_API_URL` is consumed by the browser: if the Iggy server also runs in Docker, use the host-published HTTP port here, not the container's network alias. ### Local development -The Web UI lives in the `web/` folder of the [repository](https://github.com/apache/iggy/tree/master/web). Use a Node.js version supported by the frontend toolchain (Vite requires `^20.19.0 || >=22.12.0`, so 22 LTS is a safe default) and `npm` (`pnpm` and `yarn` are not part of the supported workflow): +The Web UI lives in the `web/` folder of the [repository](https://github.com/apache/iggy/tree/master/web). Use a Node.js version supported by the frontend toolchain (`^20.19.0 || ^22.13.0 || >=24`, for example Node.js 22.13 or later in the 22.x series) and `npm` (`pnpm` and `yarn` are not part of the supported workflow): ```bash cd web @@ -59,16 +71,18 @@ The Web UI provides the following pages and functionality: - **Overview** - server health and key metrics - **Streams** - list, create, and manage streams -- **Topics** - manage topics per stream (create, update, delete, purge) +- **Topics** - create and delete topics, and edit their name and message expiry - **Partitions** - view partition details per topic - **Messages** - browse messages per partition with built-in decoders: - JSON decoder (formatted JSON output) - String decoder (UTF-8 text) - XML decoder -- **Users** - user management (create, update, delete, permissions) +- **Users** - list and create users, including their initial permissions - **Settings** - Web UI preferences -Some pages visible in the navigation (Clients, Logs, terminal, server settings) are placeholders that aren't functional yet. See the [roadmap](https://github.com/apache/iggy/tree/master/web#roadmap) for what is planned. +Topic updates share the HTTP API's [retention update limitations](/docs/server/topic-options). Other topic options require the CLI or HTTP API. + +The Clients, Logs and terminal routes are placeholders hidden from navigation. The Server settings page displays information, but saving settings is disabled. Editing and deleting existing users, changing their permissions and bulk user actions are also placeholders. See the [roadmap](https://github.com/apache/iggy/tree/master/web#roadmap) for what is planned. ## Docker Compose example @@ -77,7 +91,7 @@ Here's the full example of the `docker-compose.yml` file that starts the Iggy se ```yaml services: iggy: - image: apache/iggy:latest + image: apache/iggy:edge container_name: iggy restart: unless-stopped cap_add: @@ -111,7 +125,7 @@ services: - iggy:/app/local_data init-iggy: - image: apache/iggy:latest + image: apache/iggy:edge container_name: init-iggy networks: - iggy @@ -130,7 +144,7 @@ services: " iggy-web-ui: - image: apache/iggy-web-ui:latest + image: apache/iggy-web-ui:edge container_name: iggy-web-ui restart: unless-stopped environment: diff --git a/public/img/iggy_web_ui.png b/public/img/iggy_web_ui.png index 1fa0d7db..39350b73 100644 Binary files a/public/img/iggy_web_ui.png and b/public/img/iggy_web_ui.png differ
