diff --git a/docs/slim/slim-authentication.md b/docs/slim/slim-authentication.md index e19b261..bd83957 100644 --- a/docs/slim/slim-authentication.md +++ b/docs/slim/slim-authentication.md @@ -12,7 +12,7 @@ SLIM supports JWT (JSON Web Tokens) for identity management. Tokens can come from an external identity provider or can be generated by the SLIM nodes directly if you provide the necessary private key for signing the tokens and public key for verification. Check the [Identity -Test](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/bindings/python/tests/test_identity.py) +Test](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/bindings/python/tests/test_identity.py) for an example of how to use JWT tokens with SLIM if you have your own keys. If you are running your SLIM clients in a Kubernetes environment, using @@ -41,7 +41,7 @@ This section shows how to use SPIRE with SLIM to manage client identities. The f If you already have a Kubernetes cluster or an existing SPIRE deployment, you can adapt only the relevant subsections. -This tutorial is based on the [SLIM examples](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/bindings/python/examples). +This tutorial is based on the [SLIM examples](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/bindings/python/examples). ### Prerequisites @@ -107,7 +107,7 @@ documentation](https://github.com/spiffe/spire-controller-manager/blob/main/docs helm install \ --create-namespace \ -n slim \ - slim oci://ghcr.io/agntcy/slim/helm/slim:v1.0.0 + slim oci://ghcr.io/agntcy/slim/helm/slim:v1.1.0 ``` Confirm the pod is running: diff --git a/docs/slim/slim-controller-reference.md b/docs/slim/slim-controller-reference.md index e766747..69c9ac1 100644 --- a/docs/slim/slim-controller-reference.md +++ b/docs/slim/slim-controller-reference.md @@ -32,7 +32,7 @@ RUST_LOG=debug slimctl slim start --config data-plane/config/base/server-config. ``` The log level can also be set directly in the configuration file via the `tracing.log_level` field. -See [data-plane/config/base/server-config.yaml](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/config/base/server-config.yaml) +See [data-plane/config/base/server-config.yaml](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/config/base/server-config.yaml) for an example. **Available flags:** @@ -40,18 +40,18 @@ for an example. - `--config` - Path to YAML configuration file (production SLIM format) - `--endpoint` - Server endpoint (sets `SLIMCTL_SLIM_ENDPOINT` environment variable) -**Configuration files:** See example configs from [data-plane/config/](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config): +**Configuration files:** See example configs from [data-plane/config/](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config): -- [base](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/config/base) - Basic insecure configuration -- [tls](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/tls) - TLS-enabled server -- [mtls](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/config/mtls) - Mutual TLS authentication -- [basic-auth](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/config/basic-auth) - HTTP Basic authentication -- `jwt-auth-*` - JWT authentication ([RSA](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/jwt-auth-rsa), - [ECDSA](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/jwt-auth-ecdsa), - [HMAC](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/jwt-auth-hmac)) -- [spire](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/spire) - SPIFFE/SPIRE workload identity -- [proxy](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/proxy) - HTTP proxy configuration -- [telemetry](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/config/telemetry) - OpenTelemetry integration +- [base](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/config/base) - Basic insecure configuration +- [tls](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/tls) - TLS-enabled server +- [mtls](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/config/mtls) - Mutual TLS authentication +- [basic-auth](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/config/basic-auth) - HTTP Basic authentication +- `jwt-auth-*` - JWT authentication ([RSA](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/jwt-auth-rsa), + [ECDSA](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/jwt-auth-ecdsa), + [HMAC](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/jwt-auth-hmac)) +- [spire](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/spire) - SPIFFE/SPIRE workload identity +- [proxy](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/proxy) - HTTP proxy configuration +- [telemetry](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/config/telemetry) - OpenTelemetry integration ### `route` - Route Management @@ -183,4 +183,4 @@ slimctl controller route add org/default/alice/0 via connection_config.json --no slimctl controller route del org/default/alice/0 via http://localhost:46357 --node-id=my-node ``` -For full reference of connection_config.json, see the [client-config-schema.json](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/core/config/src/grpc/schema/client-config.schema.json). +For full reference of connection_config.json, see the [client-config-schema.json](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/core/config/src/grpc/schema/client-config.schema.json). diff --git a/docs/slim/slim-controller.md b/docs/slim/slim-controller.md index 9dcbdd5..e3b57e5 100644 --- a/docs/slim/slim-controller.md +++ b/docs/slim/slim-controller.md @@ -148,7 +148,7 @@ tls: key_file: "/path/to/client.key" ``` -The `server` endpoint should point to a [SLIM Control](https://github.com/agntcy/slim/tree/slim-v1.0.0/control-plane/control-plane) endpoint which is a central service managing SLIM node configurations. +The `server` endpoint should point to a [SLIM Control](https://github.com/agntcy/slim/tree/slim-v1.1.0/control-plane/control-plane) endpoint which is a central service managing SLIM node configurations. ### Managing SLIM Nodes Directly diff --git a/docs/slim/slim-data-plane-config.md b/docs/slim/slim-data-plane-config.md index d31f90e..ce47466 100644 --- a/docs/slim/slim-data-plane-config.md +++ b/docs/slim/slim-data-plane-config.md @@ -4,8 +4,8 @@ This document provides comprehensive documentation for configuring the SLIM data This documentation corresponds to the JSON schemas in the SLIM repository: -- [Client Configuration Schema](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/core/config/src/grpc/schema/client-config.schema.json) -- [Server Configuration Schema](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/core/config/src/grpc/schema/server-config.schema.json) +- [Client Configuration Schema](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/core/config/src/grpc/schema/client-config.schema.json) +- [Server Configuration Schema](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/core/config/src/grpc/schema/server-config.schema.json) ## Configuration Structure Overview diff --git a/docs/slim/slim-group-tutorial.md b/docs/slim/slim-group-tutorial.md index 8577ee1..520bac1 100644 --- a/docs/slim/slim-group-tutorial.md +++ b/docs/slim/slim-group-tutorial.md @@ -6,7 +6,7 @@ participants. Messages are sent to a shared channel where every member can read and write. All messages are end-to-end encrypted using the [MLS protocol](https://datatracker.ietf.org/doc/html/rfc9420). This tutorial is based on the -[group.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/group.py) +[group.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/group.py) example in the SLIM repo. ## Key Features @@ -28,7 +28,7 @@ Every participant in a group requires a unique identity for authentication and f Every SLIM application requires both a unique identity and an authentication mechanism. The identity is used for end-to-end encryption via the MLS protocol, while authentication verifies the application to the SLIM network. In this tutorial, we use shared secret authentication for simplicity. For more advanced authentication methods (JWT, SPIRE), see the [SLIM documentation](./slim-authentication.md). -The example code provides a `create_local_app` helper function (from [common.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/common.py)) that simplifies the app creation and connection process. +The example code provides a `create_local_app` helper function (from [common.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/common.py)) that simplifies the app creation and connection process. The `create_local_app` function handles three main tasks: @@ -165,7 +165,7 @@ for invite in invites: ``` This code comes from the -[group.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/group.py) +[group.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/group.py) example. A new group session is created by calling `local_app.create_session(...)` which returns a `SessionContext` @@ -379,7 +379,7 @@ only its local session is closed. Now we will show how to run a new group session and how to enable group communication on top of SLIM. The full code can be found in -[group.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/group.py) +[group.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/group.py) in the SLIM repo. To run the example, follow the steps listed here: #### Run SLIM @@ -448,7 +448,7 @@ In this example, we use two participants: `agntcy/ns/client-1` and `agntcy/ns/cl First, clone the SLIM repository and install the dependencies: ```bash -git clone --branch slim-v1.0.0 https://github.com/agntcy/slim.git +git clone --branch slim-v1.1.0 https://github.com/agntcy/slim.git cd slim/data-plane/bindings/python task python:bindings:build task python:bindings:install-examples @@ -531,7 +531,7 @@ With the controller, you do not need to set up a moderator in your application. ### Run the Group Communication Example Now we will show how to set up a group using the SLIM Controller. The reference code for the -application is still [group.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/group.py). To run this example, follow the steps listed here. +application is still [group.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/group.py). To run this example, follow the steps listed here. #### Run the SLIM Controller @@ -697,7 +697,7 @@ At this point all applications are waiting for a new session. Use `slimctl` (see [SLIM Controller](./slim-controller.md)) to send administrative commands to the controller. -First, you need to run `slimctl`. To install it see the related [documentation](https://github.com/agntcy/slim/tree/slim-v1.0.0/control-plane/slimctl/README.md) +First, you need to run `slimctl`. To install it see the [slimctl documentation](./slim-controller.md#installing-slimctl). To verify that `slimctl` was downloaded successfully, run the following command: diff --git a/docs/slim/slim-group.md b/docs/slim/slim-group.md index 09954b3..23127a6 100644 --- a/docs/slim/slim-group.md +++ b/docs/slim/slim-group.md @@ -25,9 +25,9 @@ of the application logic) or serve solely as a channel moderator. Group creation is available in both Python and Go bindings. This section provides the basic steps to follow with Python code snippets for setting up a group session. -For Go examples, see the [group example](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/go/examples/group/main.go). +For Go examples, see the [group example](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/go/examples/group/main.go). -The full Python code is available in [group.py](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples/group.py). +The full Python code is available in [group.py](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples/group.py). ### Create the Channel diff --git a/docs/slim/slim-howto.md b/docs/slim/slim-howto.md index cdfead4..ca22d48 100644 --- a/docs/slim/slim-howto.md +++ b/docs/slim/slim-howto.md @@ -95,11 +95,11 @@ You can install the SLIM Node using Docker, Cargo, Helm, or the CLI binary. Choo For Kubernetes deployments, use the official Helm chart: ```bash - helm pull oci://ghcr.io/agntcy/slim/helm/slim --version v1.0.0 + helm pull oci://ghcr.io/agntcy/slim/helm/slim --version v1.1.0 ``` !!! note "Configuration" - For detailed configuration options, see the [values.yaml](https://github.com/agntcy/slim/blob/slim-v1.0.0/charts/slim/values.yaml) in the repository. + For detailed configuration options, see the [values.yaml](https://github.com/agntcy/slim/blob/slim-v1.1.0/charts/slim/values.yaml) in the repository. === "CLI Binary" @@ -204,7 +204,7 @@ The SLIM Controller manages SLIM Nodes and provides a user-friendly interface fo For Kubernetes deployments: ```bash - helm pull oci://ghcr.io/agntcy/slim/helm/slim-control-plane --version v1.0.0 + helm pull oci://ghcr.io/agntcy/slim/helm/slim-control-plane --version v1.1.0 ``` ### SLIM Bindings @@ -227,14 +227,14 @@ Language bindings allow you to integrate SLIM with your applications. dependencies = ["slim-bindings~=1.0"] ``` - For more information on the SLIM bindings, see the [Messaging Layer Tutorial](./slim-data-plane.md) and the [Python Examples](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples). + For more information on the SLIM bindings, see the [Messaging Layer Tutorial](./slim-data-plane.md) and the [Python Examples](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples). === "Go" Install the Go bindings: ```bash - go get github.com/agntcy/slim-bindings-go@v1.0.0 + go get github.com/agntcy/slim-bindings-go@v1.1.0 ``` Run the setup tool to install native libraries: @@ -246,13 +246,13 @@ Language bindings allow you to integrate SLIM with your applications. Add to your `go.mod`: ```go - require github.com/agntcy/slim-bindings-go v1.0.0 + require github.com/agntcy/slim-bindings-go v1.1.0 ``` !!! warning "C Compiler Required" The Go bindings use native libraries via [CGO](https://pkg.go.dev/cmd/cgo), so you'll need a C compiler installed on your system. - For more information on the Go bindings, see the [Go Examples](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/go/examples). + For more information on the Go bindings, see the [Go Examples](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/go/examples). === "Kotlin" @@ -308,8 +308,8 @@ Choose your platform: === "macOS (Apple Silicon)" ```bash - curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.0.0/slimctl_1.0.0_darwin_arm64.tar.gz - tar -xzf slimctl_1.0.0_darwin_arm64.tar.gz + curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl_1.2.0_darwin_arm64.tar.gz + tar -xzf slimctl_1.2.0_darwin_arm64.tar.gz sudo mv slimctl /usr/local/bin/slimctl sudo chmod +x /usr/local/bin/slimctl ``` @@ -326,8 +326,8 @@ Choose your platform: === "macOS (Intel)" ```bash - curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.0.0/slimctl_1.0.0_darwin_amd64.tar.gz - tar -xzf slimctl_1.0.0_darwin_amd64.tar.gz + curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl_1.2.0_darwin_amd64.tar.gz + tar -xzf slimctl_1.2.0_darwin_amd64.tar.gz sudo mv slimctl /usr/local/bin/slimctl sudo chmod +x /usr/local/bin/slimctl ``` @@ -335,8 +335,17 @@ Choose your platform: === "Linux (AMD64)" ```bash - curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.0.0/slimctl_1.0.0_linux_amd64.tar.gz - tar -xzf slimctl_1.0.0_linux_amd64.tar.gz + curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl_1.2.0_linux_amd64.tar.gz + tar -xzf slimctl_1.2.0_linux_amd64.tar.gz + sudo mv slimctl /usr/local/bin/slimctl + sudo chmod +x /usr/local/bin/slimctl + ``` + +=== "Linux (ARM64)" + + ```bash + curl -LO https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl_1.2.0_linux_arm64.tar.gz + tar -xzf slimctl_1.2.0_linux_arm64.tar.gz sudo mv slimctl /usr/local/bin/slimctl sudo chmod +x /usr/local/bin/slimctl ``` @@ -347,16 +356,31 @@ Choose your platform: ```powershell # Using PowerShell - Invoke-WebRequest -Uri "https://github.com/agntcy/slim/releases/download/slimctl-v1.0.0/slimctl_1.0.0_windows_amd64.zip" -OutFile "slimctl.zip" + Invoke-WebRequest -Uri "https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl-windows-amd64.zip" -OutFile "slimctl.zip" + Expand-Archive -Path "slimctl.zip" -DestinationPath "." + + # Move to a directory in your PATH (e.g., C:\Program Files\slimctl\) + # Or add the current directory to your PATH + ``` + + Alternatively, download directly from the [releases page](https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl-windows-amd64.zip). + +=== "Windows (ARM64)" + + Download and extract the Windows binary: + + ```powershell + # Using PowerShell + Invoke-WebRequest -Uri "https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl-windows-arm64.zip" -OutFile "slimctl.zip" Expand-Archive -Path "slimctl.zip" -DestinationPath "." # Move to a directory in your PATH (e.g., C:\Program Files\slimctl\) # Or add the current directory to your PATH ``` - Alternatively, download directly from the [releases page](https://github.com/agntcy/slim/releases/download/slimctl-v1.0.0/slimctl_1.0.0_windows_amd64.zip). + Alternatively, download directly from the [releases page](https://github.com/agntcy/slim/releases/download/slimctl-v1.2.0/slimctl-windows-arm64.zip). -Check the [slimctl documentation](https://github.com/agntcy/slim/tree/slim-v1.0.0/control-plane/slimctl/README.md) for additional installation methods. +Check the [slimctl documentation](./slim-controller.md) for additional installation methods. #### Verification @@ -406,7 +430,7 @@ For more information on the build system and development workflow, see the [SLIM You've installed SLIM! Here's what to do next: 1. Read the [messaging layer documentation](./slim-data-plane.md) -2. Explore the [example applications](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/) +2. Explore the [example applications](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/) 3. Learn about [configuration options](./slim-data-plane-config.md) 4. Join us on [Slack](https://join.slack.com/t/agntcy/shared_invite/zt-3hb4p7bo0-5H2otGjxGt9OQ1g5jzK_GQ) diff --git a/docs/slim/slim-session.md b/docs/slim/slim-session.md index f8921bb..0c6c436 100644 --- a/docs/slim/slim-session.md +++ b/docs/slim/slim-session.md @@ -3,7 +3,7 @@ This document explains the SLIM session layer and the two supported session types. It helps you understand the two session interfaces, reliability, and security trade‑offs. -The SLIM repository ships with practical, runnable examples for both [Python](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/python/examples) and [Go](https://github.com/agntcy/slim/tree/slim-v1.0.0/data-plane/bindings/go/examples) that demonstrate how to create sessions and exchange messages between applications. This document uses Python examples as reference. +The SLIM repository ships with practical, runnable examples for both [Python](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/python/examples) and [Go](https://github.com/agntcy/slim/tree/slim-v1.1.0/data-plane/bindings/go/examples) that demonstrate how to create sessions and exchange messages between applications. This document uses Python examples as reference. ## Point-to-Point Session @@ -136,7 +136,7 @@ await session.publish_async(reply, None, None) # payload, payload_type, metadat ### Point-to-Point Example -This [example](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/bindings/python/examples/point_to_point.py) walks through the creation of a point-to-point session. When running the point-to-point example multiple times, the session binds to different running instances, while the message stream always sticks to the same endpoint. +This [example](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/bindings/python/examples/point_to_point.py) walks through the creation of a point-to-point session. When running the point-to-point example multiple times, the session binds to different running instances, while the message stream always sticks to the same endpoint. The example demonstrates how to publish messages, enable reliability, and enable MLS for end‑to‑end security. Run the example using the Taskfile provided in the repository. @@ -395,4 +395,4 @@ stops, all participants are removed from the group. ### Group Example -This [example](https://github.com/agntcy/slim/blob/slim-v1.0.0/data-plane/bindings/python/examples/group.py) demonstrates how to create a group session, invite participants, and (if enabled) establish an MLS group for end-to-end encryption. It also shows how to broadcast messages to all current members and handle inbound group messages. Run the example using the Taskfile provided in the repository. +This [example](https://github.com/agntcy/slim/blob/slim-v1.1.0/data-plane/bindings/python/examples/group.py) demonstrates how to create a group session, invite participants, and (if enabled) establish an MLS group for end-to-end encryption. It also shows how to broadcast messages to all current members and handle inbound group messages. Run the example using the Taskfile provided in the repository.