Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/slim/slim-authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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:
Expand Down
26 changes: 13 additions & 13 deletions docs/slim/slim-controller-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,26 @@ 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:**

- `--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

Expand Down Expand Up @@ -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).
2 changes: 1 addition & 1 deletion docs/slim/slim-controller.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions docs/slim/slim-data-plane-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
14 changes: 7 additions & 7 deletions docs/slim/slim-group-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:

Expand Down Expand Up @@ -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`
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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:

Expand Down
4 changes: 2 additions & 2 deletions docs/slim/slim-group.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
58 changes: 41 additions & 17 deletions docs/slim/slim-howto.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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"

Expand Down Expand Up @@ -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
```
Expand All @@ -326,17 +326,26 @@ 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
```

=== "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
```
Expand All @@ -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

Expand Down Expand Up @@ -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)

Expand Down
Loading
Loading