An implementation of the ZITADEL gRPC API in Rust.

Overview

ZITADEL Rust

This repository contains the gRPC bindings for ZITADEL and other helpers to interact with the ZITADEL API.

With the help of the service account it is possible to access the ZITADEL API and use the management client to execute gRPC calls against the API.

Example

Fetch the first 1000 users in the organization of a service account:

use zitadel::credentials::ServiceAccount;
use zitadel::grpc::zitadel::management::v1::management_service_client::ManagementServiceClient;

#[tokio::main]
async fn main() {
    let service_account = ServiceAccount::load_from_file("./my_json_key.json")?;
    let client = ManagementServiceClient.connect("https://api.zitadel.ch");
    let access_token = service_account.authenticate().await?;
    let req = tonic::Request::new(ListUsersRequest {
        query: Some(ListQuery {
            offset: progressed as u64,
            limit: 1000,
            asc: true,
        }),
        sorting_column: 0,
        queries: vec![],
    });
    req.metadata_mut()
        .insert("authorization", format!("Bearer {}", access_token)
            .parse()
            .unwrap());
    let response = client.list_users(req).await?;

    Ok(());
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the package by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Comments
  • chore(submodules): update external submodules to 99e424a

    chore(submodules): update external submodules to 99e424a

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | c52559c -> 99e424a | | external/grpc-gateway | digest | 20aa415 -> 905b59d | | external/protoc-gen-validate | digest | 0e25aab -> 45b135b | | external/zitadel | digest | d24869e -> ce22961 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 2
  • chore(submodules): update external/grpc-gateway digest to 8de6c8b

    chore(submodules): update external/grpc-gateway digest to 8de6c8b

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/grpc-gateway | digest | fe05614 -> 8de6c8b |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | e6694d4 -> 3b5011d | | external/grpc-gateway | digest | 2ec342b -> fe05614 | | external/zitadel | digest | dad9738 -> 5c8cfa4 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | 4834b4c -> e6694d4 | | external/grpc-gateway | digest | 492703c -> 2ec342b | | external/zitadel | digest | 77e3d08 -> dad9738 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | 0871da7 -> 4834b4c | | external/grpc-gateway | digest | 5304903 -> 492703c | | external/protoc-gen-validate | digest | 8ed4f9c -> 0bd3773 | | external/zitadel | digest | 5d61ed5 -> 77e3d08 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | 9d1290e -> 0871da7 | | external/zitadel | digest | 2663d0f -> 5d61ed5 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external/grpc-gateway digest to 5304903

    chore(submodules): update external/grpc-gateway digest to 5304903

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/grpc-gateway | digest | 1e64a41 -> 5304903 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | 1945f7c -> 9d1290e | | external/zitadel | digest | d21bb90 -> 2663d0f |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | 047c898 -> 1945f7c | | external/zitadel | digest | 3e52bea -> d21bb90 |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | f68e8e8 -> 047c898 | | external/zitadel | digest | 33e973f -> 3e52bea |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
  • chore(submodules): update external submodules

    chore(submodules): update external submodules

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | external/googleapis | digest | f3d6f41 -> f68e8e8 | | external/grpc-gateway | digest | 01b9132 -> 1e64a41 | | external/zitadel | digest | e453129 -> 33e973f |


    Configuration

    πŸ“… Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies released 
    opened by renovate[bot] 1
Releases(v3.0.0)
Owner
Christoph BΓΌhler
Code Hero @smartive. Technology enthusiast, web engineer, Lindy Hop Dancer and much more.
Christoph BΓΌhler
Simple project to test grpc between ruby (client) and rust (server)

grpc-example Simple project to test grpc between ruby (client) and rust (server). Usage To simplify a lot this project uses docker and docker compose

Bruno Arueira 2 Oct 14, 2021
A generic Rust based Bigtable connection library implemented using gRPC

A generic Rust based Bigtable connection library refactored out the solana mono-repo so that can be shared for different applications.

Lijun Wang 3 Sep 25, 2022
CatBoost server in Rust + gRPC

catboost-server CatBoost server in Rust + gRPC Model Simple CatBoost model 2 numeric (float) features 3 categorical features Run gRPC Server $ cargo r

Hyeongchan Kim 2 Sep 9, 2022
Modrinth API is a simple library for using Modrinth's API in Rust projects

Ferinth is a simple library for using the Modrinth API in Rust projects. It uses reqwest as its HTTP(S) client and deserialises responses to typed structs using serde.

null 20 Dec 8, 2022
The Safe Network Core. API message definitions, routing and nodes, client core api.

safe_network The Safe Network Core. API message definitions, routing and nodes, client core api. License This Safe Network repository is licensed unde

MaidSafe 101 Dec 19, 2022
Proxy copilot api to openai's gpt-4 api

Proxying Copilot API to OpenAI's GPT-4 API Usage Start the Server export GHU_TOKEN=ghu_xxxx; ./copilot2chat Or sh start.sh start # start the server th

Smark 3 Dec 6, 2023
A pure Rust implementation of WebRTC API

A pure Rust implementation of WebRTC API

WebRTC.rs 2.7k Jan 7, 2023
Implementation of the Docker Registry HTTP API V2 in Rust, that can act as a proxy to other registries

Docker registry server and proxy (I'm bad at creating catchy names, but this one is good enough.) This project aims to implement a Docker Registry HTT

l4p1n (Mathias B.) 2 Dec 30, 2022
Docker daemon API in Rust

Bollard: an asynchronous rust client library for the docker API Bollard leverages the latest Hyper and Tokio improvements for an asynchronous API cont

Niel Drummond 439 Jan 3, 2023
A rust client and structures to interact with the Clever-Cloud API.

Clever-Cloud Software Development Kit - Rust edition This crate provides structures and client to interact with the Clever-Cloud API. Status This crat

Clever Cloud 6 Jun 3, 2022
Revolt backend API server, built with Rust.

Delta Description Delta is a blazing fast API server built with Rust for Revolt. Features: Robust and efficient API routes for running a chat platform

Revolt 741 Dec 26, 2022
Podman-api-rs - Rust interface to Podman (libpod).

podman-api Rust interface to Podman Usage Add the following to your Cargo.toml file [dependencies] podman-api = "0.1" SSL Connection To enable HTTPS c

Wojciech KΔ™pka 43 Dec 29, 2022
A simple API gateway written in Rust, using the Hyper and Reqwest libraries.

API Gateway A simple API gateway written in Rust, using the Hyper and Reqwest libraries. This gateway can be used to forward requests to different bac

AdΓ£o Raul 3 Apr 24, 2023
A library-first, lightweight, high-performance, cloud-native supported API gatewayπŸͺ by RUST

Preview version, will not guarantee the stability of the API! Do NOT use in production environment! A library-first, lightweight, high-performance, cl

Ideal World 4 May 7, 2023
A sample API Gateway built in Rust (work in progress) for learning purposes

rust-api-gateway A sample API Gateway built in Rust (work in progress) for learning purposes. You can follow along by reading the tutorial articles: P

Luis Soares 4 Oct 29, 2023
ZeroNS: a name service centered around the ZeroTier Central API

ZeroNS: a name service centered around the ZeroTier Central API ZeroNS provides names that are a part of ZeroTier Central's configured networks; once

ZeroTier, Inc. 327 Dec 20, 2022
A wrapper for the Google Cloud DNS API

cloud-dns is a crate providing a client to interact with Google Cloud DNS v1

Embark 5 May 24, 2022
Obtain (wildcard) certificates from let's encrypt using dns-01 without the need for API access to your DNS provider.

Agnos Presentation Agnos is a single-binary program allowing you to easily obtain certificates (including wildcards) from Let's Encrypt using DNS-01 c

Arthur Carcano 246 Dec 20, 2022
Hammerspoon plugin and API to interact with Yabai socket directly

Yabai.spoon NOTE: no longer using it or intending to maintain it see #2. Yabai.spoon is lua 5.4 library to interact with yabai socket directly within

null 2 May 17, 2022