1- [package ]
2- name = " zitadel"
3- description = " An implementation of ZITADEL API access and authentication in Rust."
4- version = " 0.0.0-development"
5- edition = " 2021"
6- license = " MIT OR Apache-2.0"
7- authors = [" Christoph Bühler <christoph@smartive.ch>" ]
8- repository = " https://github.com/buehler/zitadel-rust"
9- keywords = [" ZITADEL" , " gRPC" , " clients" , " authentication" , " oidc" ]
10- categories = [" authentication" , " api-bindings" ]
11- include = [
12- " src/**/*.rs" ,
13- " Cargo.toml" ,
14- " LICENSE*" ,
15- " README.md" ,
16- ]
17-
18- [features ]
19- default = [" tls-roots" ]
20-
21- # # Feature that enables support for the [actix framework](https://actix.rs/).
22- actix = [" credentials" , " oidc" , " dep:actix-web" ]
23-
24- # # The API feature enables all gRPC service clients to access the ZITADEL API.
25- api = [
26- " api-admin-v1" ,
27- " api-auth-v1" ,
28- " api-management-v1" ,
29- " api-system-v1" ,
30- " api-oidc-v2" ,
31- " api-org-v2" ,
32- " api-session-v2" ,
33- " api-settings-v2" ,
34- " api-user-v2"
1+ [workspace ]
2+ resolver = " 2"
3+ members = [
4+ " crates/zitadel" ,
5+ " crates/zitadel-gen" ,
356]
36- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
37- api-admin-v1 = [" api-common" , " zitadel-admin-v1" ]
38- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
39- api-auth-v1 = [" api-common" , " zitadel-auth-v1" ]
40- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
41- api-management-v1 = [" api-common" , " zitadel-v1-v1" ]
42- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
43- api-system-v1 = [" api-common" , " zitadel-system-v1" , " zitadel-authn-v1" ]
44- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
45- api-oidc-v2 = [" api-common" , " zitadel-oidc-v2" ]
46- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
47- api-org-v2 = [" api-common" , " zitadel-org-v2" , " zitadel-user-v2" ]
48- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
49- api-session-v2 = [" api-common" , " zitadel-session-v2" ]
50- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
51- api-settings-v2 = [" api-common" , " zitadel-settings-v2" ]
52- # # The API feature enables all gRPC service clients to access the respective ZITADEL API.
53- api-user-v2 = [" api-common" , " zitadel-user-v2" ]
54- api-common = [" dep:prost" , " dep:prost-types" , " dep:tonic" , " dep:tonic-types" , " dep:pbjson-types" ]
55-
56- tls-roots = [" tonic/tls-roots" ]
57- tls-webpki-roots = [" tonic/tls-webpki-roots" ]
58-
59-
60- # # Feature that enables support for the [axum framework](https://docs.rs/axum/latest/axum/).
61- axum = [" credentials" , " oidc" , " dep:axum" , " dep:axum-extra" ]
62-
63- # # The credentials feature enables special credentials helpers for ZITADEL.
64- # # For example, it allows the user to create a ZITADEL service account and
65- # # authenticate against ZITADEL.
66- credentials = [" dep:jsonwebtoken" , " dep:openidconnect" , " dep:reqwest" , " dep:serde" , " dep:serde_json" , " dep:serde_urlencoded" , " dep:time" ]
67-
68- # # The interceptors feature enables specific gRPC interceptors and
69- # # new convenience functions to create a gRPC client with interceptors.
70- # # The interceptors provide easy access to an authenticated ZITADEL API client.
71- # # The interceptors work with the credentials from this crate.
72- interceptors = [" credentials" , " dep:time" , " dep:tokio" ]
73-
74- # # This feature enables caching of the OIDC discovery and introspection results.
75- # # By default, only the in-memory cache is available. To use a different cache,
76- # # enable specific features of this crate, or implement your own cache with
77- # # the trait.
78- introspection_cache = [" dep:async-trait" , " dep:time" , " dep:moka" ]
79-
80- # # The OIDC module enables basic OIDC (OpenID Connect) features to communicate
81- # # with ZITADEL. Two examples are the `discover` and `introspect` functions.
82- # # The OIDC features are required for some of the web framework features.
83- oidc = [" credentials" , " dep:base64-compat" ]
84-
85- # # Feature that enables support for the [rocket framework](https://rocket.rs/).
86- # # It enables authentication features for rocket in the form of route guards.
87- # # Refer to the rocket module for more information.
88- rocket = [" credentials" , " oidc" , " dep:rocket" ]
89-
90- # # Feature that enables support for the [rocket okapi](https://github.com/GREsau/okapi).
91- rocket_okapi = [" rocket" , " dep:rocket_okapi" , " dep:schemars" ]
927
93- # @@protoc_deletion_point(features)
94- # This section is automatically generated by protoc-gen-prost-crate.
95- # Changes in this area may be lost on regeneration.
96- proto_full = ["zitadel-action-v1","zitadel-admin-v1","zitadel-app-v1","zitadel-auth-v1","zitadel-authn-v1","zitadel-change-v1","zitadel-event-v1","zitadel-feature-v1","zitadel-feature-v2","zitadel-feature-v2beta","zitadel-idp-v1","zitadel-idp-v2","zitadel-instance-v1","zitadel-management-v1","zitadel-member-v1","zitadel-metadata-v1","zitadel-milestone-v1","zitadel-object-v2","zitadel-object-v2beta","zitadel-object-v3alpha","zitadel-oidc-v2","zitadel-oidc-v2beta","zitadel-org-v1","zitadel-org-v2","zitadel-org-v2beta","zitadel-policy-v1","zitadel-project-v1","zitadel-protoc_gen_zitadel-v2","zitadel-quota-v1","zitadel-resources-action-v3alpha","zitadel-resources-object-v3alpha","zitadel-resources-user-v3alpha","zitadel-resources-userschema-v3alpha","zitadel-resources-webkey-v3alpha","zitadel-session-v2","zitadel-session-v2beta","zitadel-settings-object-v3alpha","zitadel-settings-v1","zitadel-settings-v2","zitadel-settings-v2beta","zitadel-system-v1","zitadel-text-v1","zitadel-user-v1","zitadel-user-v2","zitadel-user-v2beta","zitadel-v1","zitadel-v1-v1"]
97- "zitadel-action-v1" = [" zitadel-v1" ]
98- "zitadel-admin-v1" = [" zitadel-event-v1" ," zitadel-idp-v1" ," zitadel-instance-v1" ," zitadel-management-v1" ," zitadel-member-v1" ," zitadel-milestone-v1" ," zitadel-org-v1" ," zitadel-policy-v1" ," zitadel-settings-v1" ," zitadel-text-v1" ," zitadel-v1" ," zitadel-v1-v1" ]
99- "zitadel-app-v1" = [" zitadel-v1" ]
100- "zitadel-auth-v1" = [" zitadel-change-v1" ," zitadel-idp-v1" ," zitadel-metadata-v1" ," zitadel-org-v1" ," zitadel-policy-v1" ," zitadel-user-v1" ," zitadel-v1" ]
101- "zitadel-authn-v1" = [" zitadel-v1" ]
102- "zitadel-change-v1" = [" zitadel-v1" ]
103- "zitadel-event-v1" = [" zitadel-v1" ]
104- "zitadel-feature-v1" = []
105- "zitadel-feature-v2" = [" zitadel-object-v2" ]
106- "zitadel-feature-v2beta" = [" zitadel-object-v2beta" ]
107- "zitadel-idp-v1" = [" zitadel-v1" ]
108- "zitadel-idp-v2" = [" zitadel-object-v2" ]
109- "zitadel-instance-v1" = [" zitadel-v1" ]
110- "zitadel-management-v1" = [" zitadel-action-v1" ," zitadel-app-v1" ," zitadel-authn-v1" ," zitadel-change-v1" ," zitadel-idp-v1" ," zitadel-member-v1" ," zitadel-metadata-v1" ," zitadel-org-v1" ," zitadel-policy-v1" ," zitadel-project-v1" ," zitadel-text-v1" ," zitadel-user-v1" ," zitadel-v1" ]
111- "zitadel-member-v1" = [" zitadel-user-v1" ," zitadel-v1" ]
112- "zitadel-metadata-v1" = [" zitadel-v1" ]
113- "zitadel-milestone-v1" = []
114- "zitadel-object-v2" = []
115- "zitadel-object-v2beta" = []
116- "zitadel-object-v3alpha" = []
117- "zitadel-oidc-v2" = [" zitadel-object-v2" ]
118- "zitadel-oidc-v2beta" = [" zitadel-object-v2beta" ]
119- "zitadel-org-v1" = [" zitadel-v1" ]
120- "zitadel-org-v2" = [" zitadel-object-v2" ]
121- "zitadel-org-v2beta" = [" zitadel-object-v2beta" ]
122- "zitadel-policy-v1" = [" zitadel-idp-v1" ," zitadel-v1" ]
123- "zitadel-project-v1" = [" zitadel-v1" ]
124- "zitadel-protoc_gen_zitadel-v2" = []
125- "zitadel-quota-v1" = []
126- "zitadel-resources-action-v3alpha" = [" zitadel-object-v3alpha" ," zitadel-resources-object-v3alpha" ]
127- "zitadel-resources-object-v3alpha" = [" zitadel-object-v3alpha" ]
128- "zitadel-resources-user-v3alpha" = [" zitadel-object-v3alpha" ," zitadel-resources-object-v3alpha" ]
129- "zitadel-resources-userschema-v3alpha" = [" zitadel-object-v3alpha" ," zitadel-resources-object-v3alpha" ]
130- "zitadel-resources-webkey-v3alpha" = [" zitadel-object-v3alpha" ," zitadel-resources-object-v3alpha" ]
131- "zitadel-session-v2" = [" zitadel-object-v2" ," zitadel-v1" ]
132- "zitadel-session-v2beta" = [" zitadel-object-v2beta" ," zitadel-v1" ]
133- "zitadel-settings-object-v3alpha" = [" zitadel-object-v3alpha" ]
134- "zitadel-settings-v1" = [" zitadel-v1" ]
135- "zitadel-settings-v2" = [" zitadel-object-v2" ]
136- "zitadel-settings-v2beta" = [" zitadel-object-v2beta" ]
137- "zitadel-system-v1" = [" zitadel-feature-v1" ," zitadel-instance-v1" ," zitadel-member-v1" ," zitadel-quota-v1" ," zitadel-v1" ]
138- "zitadel-text-v1" = [" zitadel-v1" ]
139- "zitadel-user-v1" = [" zitadel-v1" ]
140- "zitadel-user-v2" = [" zitadel-object-v2" ]
141- "zitadel-user-v2beta" = [" zitadel-object-v2beta" ]
142- "zitadel-v1" = []
143- "zitadel-v1-v1" = [" zitadel-authn-v1" ," zitadel-idp-v1" ," zitadel-management-v1" ," zitadel-org-v1" ," zitadel-v1" ]
144- # @@protoc_insertion_point(features)
145-
146- [dependencies ]
147- actix-web = { version = " 4.5.1" , optional = true }
148- async-trait = { version = " 0.1.80" , optional = true }
149- axum = { version = " 0.8.0" , optional = true , features = [" macros" ] }
150- axum-extra = { version = " 0.11.0" , optional = true , features = [" typed-header" ] }
151- base64-compat = { version = " 1" , optional = true }
152- custom_error = " 1.9.2"
153- document-features = { version = " 0.2.8" , optional = true }
154- jsonwebtoken = { version = " 9.3.0" , optional = true }
155- moka = { version = " 0.12.8" , features = [" future" ], optional = true }
156- openidconnect = { version = " 3.5.0" , optional = true }
157- pbjson-types = { version = " 0.7.0" , optional = true }
158- prost = { version = " 0.13.1" , optional = true }
159- prost-types = { version = " 0.13.1" , optional = true }
160- reqwest = { version = " 0.11.27" , features = [" json" , " rustls-tls" ], default-features = false , optional = true }
161- rocket = { version = " 0.5.0" , optional = true }
162- serde = { version = " 1.0.200" , features = [" derive" ], optional = true }
163- serde_json = { version = " 1.0.116" , optional = true }
164- serde_urlencoded = { version = " 0.7.1" , optional = true }
165- time = { version = " 0.3.36" , optional = true }
166- tokio = { version = " 1.37.0" , optional = true , features = [
167- " macros" ,
168- " rt-multi-thread" ,
169- ] }
170- tonic = { version = " 0.12.1" , features = [
171- " tls" ,
172- ], optional = true }
173- rocket_okapi = { version = " 0.9.0" , optional = true , default-features = false }
174- schemars = {version = " 0.8.21" , optional = true }
175- tonic-types = { version = " 0.12.1" , optional = true }
176-
177- [dev-dependencies ]
178- chrono = " 0.4.38"
179- tokio = { version = " 1.37.0" , features = [" macros" , " rt-multi-thread" ] }
180- tower = { version = " 0.5.0" }
181- http-body-util = " 0.1.0"
182-
183- [package .metadata .docs .rs ]
184- all-features = true
185-
186-
187- [[example ]]
188- name = " actix_webapi_oauth_interception_basic"
189- required-features = [" actix" ]
190-
191- [[example ]]
192- name = " axum_webapi_oauth_interception_basic"
193- required-features = [" axum" ]
194-
195- [[example ]]
196- name = " fetch_profile_with_pat"
197- required-features = [" api" , " interceptors" ]
198-
199- [[example ]]
200- name = " fetch_profile_with_service_account"
201- required-features = [" api" , " interceptors" ]
202-
203- [[example ]]
204- name = " rocket_webapi_oauth_interception_basic"
205- required-features = [" rocket" ]
206-
207- [[example ]]
208- name = " rocket_webapi_oauth_interception_jwtprofile_cached"
209- required-features = [" rocket" , " introspection_cache" ]
210-
211- [[example ]]
212- name = " rocket_webapi_oauth_interception_jwtprofile"
213- required-features = [" rocket" ]
214-
215- [[example ]]
216- name = " service_account_authentication"
217- required-features = [" credentials" ]
8+ [workspace .package ]
9+ version = " 0.1.0"
10+ authors = [" Christoph Bühler <christoph@smartive.ch>" ]
11+ description = " Rust Microservices for labs gallery"
12+ license = " MIT OR Apache-2.0"
13+ edition = " 2021"
0 commit comments