docs: api request descriptions (#1637)

* doc: api descriptions

* doc: management description

* doc: message validation

* doc: api descriptions

* doc: api descriptions

* doc: description

* doc: index images

* doc: design

* colors, colors and more colors

* margin

* fix comment

* doc: api descriptions

* doc: empty response

* doc: api descriptions

* fix comment

Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
Fabi 2021-04-22 14:59:17 +02:00 committed by GitHub
parent 8f61117805
commit 12f128e3c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 5523 additions and 2652 deletions

View File

@ -14,6 +14,7 @@ The easiest way to have a look at them is, to import them in the [Swagger Editor
## Authentication API aka Auth
The authentication API (aka Auth API) is used for all operations on the currently logged in user.
The user id is taken from the sub claim in the token.
| Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------|
@ -29,6 +30,7 @@ The authentication API (aka Auth API) is used for all operations on the currentl
## Management API
The management API is as the name states the interface where systems can mutate IAM objects like, organisations, projects, clients, users and so on if they have the necessary access rights.
To identify the current organisation you can send a header `x-zitadel-orgid` or if no header is set, the organisation of the authenticated user is set.
| Service | URI |
|:--------|:----------------------------------------------------------------------------------------------------------------------------------------------------|

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,88 @@ title: zitadel/app.proto
## Messages
### APIConfig
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| client_id | string | - | |
| client_secret | string | - | |
| auth_method_type | APIAuthMethodType | - | |
### App
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| state | AppState | - | |
| name | string | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.oidc_config | OIDCConfig | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.api_config | APIConfig | - | |
### AppNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### AppQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | AppNameQuery | - | |
### OIDCConfig
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| redirect_uris | repeated string | - | |
| response_types | repeated OIDCResponseType | - | |
| grant_types | repeated OIDCGrantType | - | |
| app_type | OIDCAppType | - | |
| client_id | string | - | |
| client_secret | string | - | |
| auth_method_type | OIDCAuthMethodType | - | |
| post_logout_redirect_uris | repeated string | - | |
| version | OIDCVersion | - | |
| none_compliant | bool | - | |
| compliance_problems | repeated zitadel.v1.LocalizedMessage | - | |
| dev_mode | bool | - | |
| access_token_type | OIDCTokenType | - | |
| access_token_role_assertion | bool | - | |
| id_token_role_assertion | bool | - | |
| id_token_userinfo_assertion | bool | - | |
| clock_skew | google.protobuf.Duration | - | |
## Enums

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,23 @@ title: zitadel/auth_n_key.proto
## Messages
### Key
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| type | KeyType | - | |
| expiration_date | google.protobuf.Timestamp | - | |
## Enums

View File

@ -6,5 +6,37 @@ title: zitadel/change.proto
## Messages
### Change
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| change_date | google.protobuf.Timestamp | - | |
| event_type | zitadel.v1.LocalizedMessage | - | |
| sequence | uint64 | - | |
| editor_id | string | - | |
| editor_display_name | string | - | |
| resource_owner_id | string | - | |
### ChangeQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| sequence | uint64 | sequence represents the order of events. It's always upcounting | |
| limit | uint32 | - | |
| asc | bool | - | |

View File

@ -6,6 +6,104 @@ title: zitadel/idp.proto
## Messages
### IDP
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| state | IDPState | - | |
| name | string | - | |
| styling_type | IDPStylingType | - | |
| owner | IDPOwnerType | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.oidc_config | OIDCConfig | - | |
### IDPIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | string.max_len: 200<br /> |
### IDPLoginPolicyLink
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| idp_id | string | - | |
| idp_name | string | - | |
| idp_type | IDPType | - | |
### IDPNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### IDPOwnerTypeQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| owner_type | IDPOwnerType | - | enum.defined_only: true<br /> |
### IDPUserLink
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | |
| idp_id | string | - | |
| idp_name | string | - | |
| provided_user_id | string | - | |
| provided_user_name | string | - | |
| idp_type | IDPType | - | |
### OIDCConfig
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| client_id | string | - | |
| issuer | string | - | |
| scopes | repeated string | - | |
| display_name_mapping | OIDCMappingField | - | |
| username_mapping | OIDCMappingField | - | |
## Enums

File diff suppressed because it is too large Load Diff

View File

@ -6,5 +6,87 @@ title: zitadel/member.proto
## Messages
### EmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### FirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### LastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Member
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| roles | repeated string | - | |
| preferred_login_name | string | - | |
| email | string | - | |
| first_name | string | - | |
| last_name | string | - | |
| display_name | string | - | |
### SearchQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | FirstNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | LastNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | EmailQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_id_query | UserIDQuery | - | |
### UserIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | string.max_len: 200<br /> |

View File

@ -6,5 +6,32 @@ title: zitadel/message.proto
## Messages
### ErrorDetail
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| message | string | - | |
### LocalizedMessage
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| key | string | - | |
| localized_message | string | - | |

View File

@ -6,6 +6,61 @@ title: zitadel/object.proto
## Messages
### ListDetails
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| total_result | uint64 | - | |
| processed_sequence | uint64 | - | |
| view_timestamp | google.protobuf.Timestamp | - | |
### ListQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| offset | uint64 | - | |
| limit | uint32 | - | |
| asc | bool | - | |
### ObjectDetails
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| sequence | uint64 | sequence represents the order of events. It's always upcounting
on read: the sequence of the last event reduced by the projection
on manipulation: the timestamp of the event(s) added by the manipulation | |
| creation_date | google.protobuf.Timestamp | creation_date is the timestamp where the first operation on the object was made
on read: the timestamp of the first event of the object
on create: the timestamp of the event(s) added by the manipulation | |
| change_date | google.protobuf.Timestamp | change_date is the timestamp when the object was changed
on read: the timestamp of the last event reduced by the projection
on manipulation: the | |
| resource_owner | string | resource_owner is the organisation an object belongs to | |
## Enums

View File

@ -6,5 +6,21 @@ title: zitadel/options.proto
## Messages
### AuthOption
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| permission | string | - | |
| check_field_name | string | - | |
| feature | string | - | |

View File

@ -6,6 +6,99 @@ title: zitadel/org.proto
## Messages
### Domain
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| domain_name | string | - | |
| is_verified | bool | - | |
| is_primary | bool | - | |
| validation_type | DomainValidationType | - | |
### DomainNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### DomainSearchQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.domain_name_query | DomainNameQuery | - | |
### Org
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| state | OrgState | - | |
| name | string | - | |
| primary_domain | string | - | |
### OrgDomainQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| domain | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### OrgNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### OrgQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | OrgNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.domain_query | OrgDomainQuery | - | |
## Enums

View File

@ -6,6 +6,99 @@ title: zitadel/policy.proto
## Messages
### LabelPolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| primary_color | string | - | |
| secondary_color | string | - | |
| is_default | bool | - | |
| hide_login_name_suffix | bool | - | |
### LoginPolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| allow_username_password | bool | - | |
| allow_register | bool | - | |
| allow_external_idp | bool | - | |
| force_mfa | bool | - | |
| passwordless_type | PasswordlessType | - | |
| is_default | bool | - | |
### OrgIAMPolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| user_login_must_be_domain | bool | - | |
| is_default | bool | - | |
### PasswordAgePolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| max_age_days | uint64 | - | |
| expire_warn_days | uint64 | - | |
| is_default | bool | - | |
### PasswordComplexityPolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| min_length | uint64 | - | |
| has_uppercase | bool | - | |
| has_lowercase | bool | - | |
| has_number | bool | - | |
| has_symbol | bool | - | |
| is_default | bool | - | |
### PasswordLockoutPolicy
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| details | zitadel.v1.ObjectDetails | - | |
| max_attempts | uint64 | - | |
| show_lockout_failure | bool | - | |
| is_default | bool | - | |
## Enums

View File

@ -6,6 +6,154 @@ title: zitadel/project.proto
## Messages
### GrantProjectNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### GrantRoleKeyQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| role_key | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### GrantedProject
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| grant_id | string | - | |
| granted_org_id | string | - | |
| granted_org_name | string | - | |
| granted_role_keys | repeated string | - | |
| state | ProjectGrantState | - | |
| project_id | string | - | |
| project_name | string | - | |
| project_owner_id | string | - | |
| project_owner_name | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
### Project
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| name | string | - | |
| state | ProjectState | - | |
| project_role_assertion | bool | describes if roles of user should be added in token | |
| project_role_check | bool | ZITADEL checks if the user has at least one on this project | |
### ProjectGrantQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_name_query | GrantProjectNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.role_key_query | GrantRoleKeyQuery | - | |
### ProjectNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### ProjectQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | ProjectNameQuery | - | |
### Role
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| key | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| display_name | string | - | |
| group | string | - | |
### RoleDisplayNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| display_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### RoleKeyQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| key | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### RoleQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.key_query | RoleKeyQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | RoleDisplayNameQuery | - | |
## Enums

View File

@ -6,6 +6,566 @@ title: zitadel/user.proto
## Messages
### AuthFactor
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| state | AuthFactorState | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.otp | AuthFactorOTP | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.u2f | AuthFactorU2F | - | |
### AuthFactorOTP
### AuthFactorU2F
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| name | string | - | |
### DisplayNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| display_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Email
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | |
| is_email_verified | bool | - | |
### EmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email_address | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### FirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Human
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| profile | Profile | - | |
| email | Email | - | |
| phone | Phone | - | |
### LastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Machine
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| name | string | - | |
| description | string | - | |
### Membership
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| roles | repeated string | - | |
| display_name | string | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.iam | bool | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.org_id | string | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.project_id | string | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.project_grant_id | string | - | |
### MembershipIAMQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| iam | bool | - | |
### MembershipOrgQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_id | string | - | string.max_len: 200<br /> |
### MembershipProjectGrantQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_grant_id | string | - | string.max_len: 200<br /> |
### MembershipProjectQuery
this query is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_id | string | - | string.max_len: 200<br /> |
### MembershipQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_query | MembershipOrgQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_query | MembershipProjectQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_grant_query | MembershipProjectGrantQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.iam_query | MembershipIAMQuery | - | |
### NickNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| nick_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### Phone
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| phone | string | - | |
| is_phone_verified | bool | - | |
### Profile
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | |
| last_name | string | - | |
| nick_name | string | - | |
| display_name | string | - | |
| preferred_language | string | - | |
| gender | Gender | - | |
### SearchQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_name_query | UserNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | FirstNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | LastNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.nick_name_query | NickNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | DisplayNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | EmailQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.state_query | StateQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.type_query | TypeQuery | - | |
### Session
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| session_id | string | - | |
| agent_id | string | - | |
| auth_state | SessionState | - | |
| user_id | string | - | |
| user_name | string | - | |
| login_name | string | - | |
| display_name | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
### StateQuery
UserStateQuery is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| state | UserState | - | enum.defined_only: true<br /> |
### TypeQuery
UserTypeQuery is always equals
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| type | Type | - | enum.defined_only: true<br /> |
### User
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| state | UserState | - | |
| user_name | string | - | |
| login_names | repeated string | - | |
| preferred_login_name | string | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.human | Human | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.machine | Machine | - | |
### UserGrant
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| details | zitadel.v1.ObjectDetails | - | |
| role_keys | repeated string | - | |
| state | UserGrantState | - | |
| user_id | string | - | |
| user_name | string | - | |
| first_name | string | - | |
| last_name | string | - | |
| email | string | - | string.email: true<br /> |
| display_name | string | - | string.max_len: 200<br /> |
| org_id | string | - | |
| org_name | string | - | |
| org_domain | string | - | |
| project_id | string | - | |
| project_name | string | - | |
| project_grant_id | string | - | |
### UserGrantDisplayNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| display_name | string | - | |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantEmailQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| email | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantFirstNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| first_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantLastNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| last_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantOrgDomainQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_domain | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantOrgNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| org_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantProjectGrantIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_grant_id | string | - | string.max_len: 200<br /> |
### UserGrantProjectIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_id | string | - | string.max_len: 200<br /> |
### UserGrantProjectNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| project_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_id_query | UserGrantProjectIDQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_id_query | UserGrantUserIDQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.with_granted_query | UserGrantWithGrantedQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.role_key_query | UserGrantRoleKeyQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_grant_id_query | UserGrantProjectGrantIDQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_name_query | UserGrantUserNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | UserGrantFirstNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | UserGrantLastNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | UserGrantEmailQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_name_query | UserGrantOrgNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_domain_query | UserGrantOrgDomainQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_name_query | UserGrantProjectNameQuery | - | |
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | UserGrantDisplayNameQuery | - | |
### UserGrantRoleKeyQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| role_key | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantUserIDQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_id | string | - | string.max_len: 200<br /> |
### UserGrantUserNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### UserGrantWithGrantedQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| with_granted | bool | - | |
### UserNameQuery
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| user_name | string | - | string.max_len: 200<br /> |
| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true<br /> |
### WebAuthNKey
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| public_key | bytes | - | |
### WebAuthNToken
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| id | string | - | |
| state | AuthFactorState | - | |
| name | string | - | |
### WebAuthNVerification
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
| public_key_credential | bytes | - | bytes.min_len: 55<br /> |
| token_name | string | - | string.min_len: 1<br /> string.max_len: 200<br /> |
## Enums

View File

@ -124,12 +124,12 @@ With the encoded JWT from the prior step, you will need to craft a POST request
curl --request POST \
--url https://api.zitadel.ch/oauth/v2/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \
--data grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer \
--data scope='openid profile email' \
--data assertion=eyJ0eXAiOiJKV1QiL...
```
* `grant_type` should be set to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`
* `grant_type` should be set to `urn:ietf:params:oauth:grant-type:jwt-bearer`
* `scope` should contain any [Scopes](../apis/openidoauth/scopes) you want to include, but must include `openid`. For this example, please include `profile` and `email`
* `assertion` is the encoded value of the JWT that was signed with your private key from the prior step

View File

@ -13,7 +13,8 @@ module.exports = {
title: 'ZITADEL',
logo: {
alt: 'ZITADEL logo',
src: 'img/zitadel-logo-solo-darkdesign.svg',
src: 'img/zitadel-logo-solo-light.png',
srcDark: 'img/zitadel-logo-solo-darkdesign.svg',
},
items: [
{

View File

@ -6,7 +6,7 @@
*/
/* You can override the default Infima variables here. */
@import url('https://fonts.googleapis.com/css2?family=Montserrat');
@import url('https://fonts.googleapis.com/css2?family=Lato');
:root {
--ifm-color-primary: #556cd1;
@ -17,9 +17,19 @@
--ifm-color-primary-lighter: #788ada;
--ifm-color-primary-lightest: #9aa8e4;
--ifm-code-font-size: 95%;
--ifm-font-family-base: 'Montserrat', sans-serif;
--ifm-font-family-base: 'Lato', sans-serif;
--ifm-hero-background-color: var(--ifm-color-primary);
--ifm-hero-text-color: var(--ifm-font-color-base-inverse);
--get-started: #FF2069;
--get-started-bg-hover: var(--ifm-hero-background-color);
}
:root[data-theme="dark"] {
--ifm-background-color: #141735;
--ifm-hero-background-color: #0F1022;
--ifm-hero-text-color: var(--ifm-font-color-base);
--get-started-bg: --ifm-font-color-base;
}
.docusaurus-highlight-code-line {
background-color: rgb(72, 77, 91);
@ -29,14 +39,14 @@
}
.get-started {
border: 1px solid;
background-color: var(--ifm-font-color-base-inverse);
color: var(--ifm-color-primary);
border: 2px solid var(--get-started);
background-color: var(--get-started);
color: var(--ifm-hero-text-color);
}
.get-started:hover {
background-color: var(--ifm-color-primary);
color: var(--ifm-font-color-base-inverse);
background-color: var(--get-started-bg-hover);
color: var(--ifm-hero-text-color);
}
.docs-link a {
@ -47,3 +57,7 @@
.docs-link a:hover {
color: var(--ifm-color-primary);
}
.docs-link img {
margin: 40px;
}

View File

@ -5,11 +5,13 @@ import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from './styles.module.css';
import ThemedImage from '@theme/ThemedImage';
const features = [
{
title: 'Manuals',
imageUrl: 'img/zitadel-logo-solo-light.png',
darkImageUrl: 'img/index/Manual-dark.svg',
lightImageUrl: 'img/index/Manual-light.svg',
link: 'docs/manuals/introduction',
description: (
<>
@ -19,7 +21,8 @@ const features = [
},
{
title: 'Quickstarts',
imageUrl: 'img/zitadel-logo-solo-light.png',
darkImageUrl: 'img/index/Quickstarts-dark.svg',
lightImageUrl: 'img/index/Quickstarts-light.svg',
link: 'docs/quickstarts/introduction',
description: (
<>
@ -29,7 +32,8 @@ const features = [
},
{
title: 'Guides',
imageUrl: 'img/zitadel-logo-solo-light.png',
darkImageUrl: 'img/index/Guides-dark.svg',
lightImageUrl: 'img/index/Guides-light.svg',
link: 'docs/guides/introduction',
description: (
<>
@ -39,7 +43,8 @@ const features = [
},
{
title: 'APIs',
imageUrl: 'img/zitadel-logo-solo-light.png',
darkImageUrl: 'img/index/APIs-dark.svg',
lightImageUrl: 'img/index/APIs-light.svg',
link: '/docs/apis/introduction',
description: (
<>
@ -49,7 +54,8 @@ const features = [
},
{
title: 'Concepts',
imageUrl: 'img/zitadel-logo-solo-light.png',
darkImageUrl: 'img/index/Concepts-dark.svg',
lightImageUrl: 'img/index/Concepts-light.svg',
link: 'docs/concepts/introduction',
description: (
<>
@ -59,18 +65,26 @@ const features = [
},
];
function Feature({imageUrl, title, description, link}) {
const imgUrl = useBaseUrl(imageUrl);
function Feature({darkImageUrl, lightImageUrl, title, description, link}) {
const darkImgUrl = useBaseUrl(darkImageUrl);
const lightImgUrl = useBaseUrl(lightImageUrl);
return (
<div className={clsx('col col--4 docs-link', styles.feature)}>
<Link to={useBaseUrl(link)}>
{imgUrl && (
{darkImgUrl && lightImgUrl && (
<div className="text--center">
<img className={styles.featureImage} src={imgUrl} alt={title} />
<ThemedImage
className={styles.featureImage}
alt={title}
sources={{
light: lightImgUrl,
dark: darkImgUrl,
}}
/>
</div>
)}
<h3>{title}</h3>
<p>{description}</p>
<h3 className="text--center">{title}</h3>
<p className="text--center">{description}</p>
</Link>
</div>
);
@ -83,7 +97,7 @@ export default function Home() {
<Layout
title={`${siteConfig.title}`}
description="This site bundles ZITADELs Documentations">
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<header className={clsx('hero', styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>

138
docs/static/img/index/APIs-dark.svg vendored Normal file
View File

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-577,-2459)">
<g id="APIs-dark" transform="matrix(0.132812,0,0,0.236111,577.891,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85381,-1.04277,1.85381,1.04277,-8263.96,2758.78)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:rgb(90,26,68);"/>
<clipPath id="_clip3">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z"/>
</clipPath>
<g clip-path="url(#_clip3)">
<rect x="1675.66" y="7153.64" width="287.744" height="24.741" style="fill:rgb(255,32,105);"/>
</g>
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4906.39,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4940.1,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4973.81,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(20,23,53);"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10758,-23868)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10918.5,-23896)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11001.5,-23834.6)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11308.3,-23910.1)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11112.1,-23920.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11209.5,-23843.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11000.2,-23932.3)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10822.4,-23924.9)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1883.74,7336.65L1883.74,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1789.08,7339.24L1789.08,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1741.91,7316.07L1741.91,7332.56L1757.89,7348.53L1757.89,7383.98" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1806.02,7316.07L1806.02,7350.02L1824.88,7368.89L1824.88,7389.18" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1825.66,7332.35L1825.66,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1858.2,7316.07L1858.2,7330.59L1852.33,7336.93L1852.33,7353.43" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1894.27,7316.07L1894.27,7324.21L1904.81,7334.75L1904.81,7368.92" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1724.97,7345.26L1724.97,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

91
docs/static/img/index/APIs-light.svg vendored Normal file
View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-577,-2652)">
<g id="APIs-light" transform="matrix(0.132812,0,0,0.236111,577.891,2652.39)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85567,-1.04381,1.85567,1.04381,-8272.86,2760.09)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.02876,2.02876,-2.02876,2.02876,3550.17,904.364)">
<use xlink:href="#_Image2" x="12.416" y="4.913" width="132.968px" height="162.96px" transform="matrix(0.999757,0,0,0.999757,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:rgb(237,172,206);"/>
<clipPath id="_clip3">
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z"/>
</clipPath>
<g clip-path="url(#_clip3)">
<rect x="1675.66" y="7153.64" width="287.744" height="24.741" style="fill:rgb(255,32,105);"/>
</g>
<path d="M1940.81,7177.03C1940.81,7170.94 1935.88,7166.01 1929.79,7166.01L1700.66,7166.01C1694.58,7166.01 1689.64,7170.94 1689.64,7177.03L1689.64,7305.05C1689.64,7311.13 1694.58,7316.07 1700.66,7316.07L1929.79,7316.07C1935.88,7316.07 1940.81,7311.13 1940.81,7305.05L1940.81,7177.03Z" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4906.39,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4940.1,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4973.81,-12141.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:rgb(230,232,249);"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10758,-23868)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10918.5,-23896)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11001.5,-23834.6)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11308.3,-23910.1)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11112.1,-23920.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11209.5,-23843.5)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-11000.2,-23932.3)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(6.05587,0,0,3.40643,-10822.4,-23924.9)">
<circle cx="1930.8" cy="7170.13" r="4.121" style="fill:none;stroke:rgb(255,32,105);stroke-width:3.73px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1883.74,7336.65L1883.74,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1789.08,7339.24L1789.08,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1741.91,7316.07L1741.91,7332.56L1757.89,7348.53L1757.89,7383.98" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1806.02,7316.07L1806.02,7350.02L1824.88,7368.89L1824.88,7389.18" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1825.66,7332.35L1825.66,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1858.2,7316.07L1858.2,7330.59L1852.33,7336.93L1852.33,7353.43" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1894.27,7316.07L1894.27,7324.21L1904.81,7334.75L1904.81,7368.92" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
<g transform="matrix(3.06014,0,0,1.72133,-4894.26,-12143.2)">
<path d="M1724.97,7345.26L1724.97,7316.07" style="fill:none;stroke:rgb(255,32,105);stroke-width:7.38px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="133px" height="163px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACjCAYAAACkL90XAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFOUlEQVR4nO3dOagdVRyA8e+9PIJHwUJURKzUQsEFsdGIKB6wsDBH0riAFi6FoK2I4oZgaaEWIiKxUASRAYsUOmJQ3HDFhYAILnFDgxoTxi2JReLy/M+IQt6cufd+P3gQziHMH/Lxzn135r6AJqNpu6XaMwAs1x5Aq7zXtN1NTdsdV3OISZSp/Zq223fgj/uA54BHgadKTrvGnMPvFNO0BGRgM/B103bHjnlxo5i+Q4HDx7zgpKJo2m6pabtza8+x6FZqDwDQtN0ycAlwC7AOOL3uRIut+neKpu3OAl4HngTOqDyOqPidomm79cD9wLW1ZlC/msfHRRjEPx0ysP7LmEPUjGJ9xWtPUsnp59ozwAReU2h6JvHTh/Zr2u7lga1LS06fjDWHUUzLWQPracwhPD4UGIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo1DgvY9peXhg/fsxhzCKCSk5XVN7BvD4UA+jUGAUCoxCgVEoMAoFRqHA9ykmpGm7dwa2NpacPh5rDqOYltMG1oc+ObYmPD4UGIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo1BgFAqMQoF3SRdU03ZnAGf2bH1kFIvrYuCOnvUnPD4UGIUCo1BgFAqMQoFRKDAKBUahwDevpuXsgfWPxxzCKCak5PRK7RnA40M9jEKBUSjwNcXi2gl83rO+wygWVMnpXuDevj2PDwUrTdudM7D3ZsmpG3UaTcIK8OLA3snAthFn0UR4fCjwheaCatrubGBDz9Y2o1hcF+KDu/qvjEKBUSgwCgW+0FxcrwEP9Ky/YRQLquS0BdjSt+fxocAoFNQ8Pt4H7upZ/2rsQbRatShKTu8Dt9e6voatAJsG9raPOYgkSZKkObfUtN2dA3v3lZy+HXUajaZpu/OAC3q23l0Bbhv4e48DaxZF03br6P9f9PaUnH5aq+vqT+fT/29f9cmrTcCunq9XK84kvPehHkahwCgU1LxL+jXQ9qx/NPYgWq3mXdKtwNZa19cwjw8FRqHAKBRUe03RtN0FwN09Wx+WnK4aex79peZPH0fS/8tEDxt7EK3m8aHAKBQYhQKjUGAUCoxCgVEoMAoFRqHAKBTUfJv7ZeDynvXvxh5Eq9V8yOYz9n+MQBPj8aHAKBQYhQKjUGAUCoxCgVEoWAbeqj2EpmUZuL72EJqW5ZLTK8BDtQfRdPzxmuJmYEfNQTQdywAlpx3ATZVn0UT8/YbYI8DV9H9AZ2Y0bXci8FLfXsnp6JHHmUl//khactrL/hede+uNc1CsAEcNfOk/WPU+RcnpbeCeSrNoIvrevLoDeGHkOTQh4SGbktNvTdtdDqQK8xwM24GLaw8xy3qfvCo5bW/abiY//V1y2gU8XXuOWTb4OF7JafeYgxwsTdsdDzzTt1dyOmHkcWbSPP4XlOuB42sPMcu8S6rAKBTM4/HxBXBF7SFm2dxFUXLaCTxWe45Z5vGhwCgUzN3x0bTd0cCtfXslpxtHHmcWbZm7KIAjgBsG9ozi390GPDqPUej/2wtcX3J6EObw+JhlTdsdM7D1Tclpzxpd9hfgspLTU38sGMW0fDmwfjKwbQ2utxPYWHJ6/u+LRrG4dgPnHXiwahWjWFwPlpx+7NvwfYoFNRQEGIV6GIUCo1BgFAqMQoFRKDAKBUahwCgUGIUCo5i+3cAPY17QKKZpH/AscCVwTMlp6Jb6mvAu6bR8AGwGHis5ba81hFFMyyklp321h5jH4+NT4C7gReDXyrP8L1MIAmCp9gBr6cDv2NgAnAqcVHK6rvJIM+F36EXU4U1ZtbkAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

86
docs/static/img/index/Concepts-dark.svg vendored Normal file
View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-773,-2459)">
<g id="Concepts-dark" transform="matrix(0.132812,0,0,0.236111,773.516,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(-2.27272,-0.738088,1.31216,-1.27841,7068.26,4582.24)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,0.660562,-13734.5,-329.992)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5691.95,1321.96 5696.03,1321.96L5763.26,1321.96C5767.34,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.08765,0,0,0.324276,-11321.5,145.519)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5690.59,1321.96 5692.99,1321.96L5766.29,1321.96C5768.7,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-13719.8,-1383.91)">
<path d="M5670,1274.31C5643.28,1256.77 5625.63,1226.54 5625.63,1192.21C5625.63,1138.04 5669.61,1094.06 5723.78,1094.06C5777.95,1094.06 5821.94,1138.04 5821.94,1192.21C5821.94,1226.54 5804.28,1256.77 5777.57,1274.31L5777.57,1300.95C5777.57,1313.29 5767.55,1323.31 5755.21,1323.31L5692.35,1323.31C5680.01,1323.31 5670,1313.29 5670,1300.95L5670,1274.31Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(2.01953,0,0,1.28759,-10919.3,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
<g transform="matrix(-2.01953,0,0,1.28759,12199.4,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-773,-2653)">
<g id="Concepts-light" transform="matrix(0.132812,0,0,0.236111,773.516,2653.33)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.27272,0.738088,-1.31216,1.27841,-5788.2,-3861.47)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.48471,-1.43455,1.43455,2.48471,3216.29,1162.52)">
<use xlink:href="#_Image2" x="2.023" y="10.834" width="166.995px" height="146.995px" transform="matrix(0.999968,0,0,0.999968,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,0.660562,-13734.5,-329.992)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5691.95,1321.96 5696.03,1321.96L5763.26,1321.96C5767.34,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.08765,0,0,0.324276,-11321.5,145.519)">
<path d="M5770.65,1258.77L5688.63,1258.77L5688.63,1306.16C5688.63,1314.88 5690.59,1321.96 5692.99,1321.96L5766.29,1321.96C5768.7,1321.96 5770.65,1314.88 5770.65,1306.16L5770.65,1258.77Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-13719.8,-1383.91)">
<path d="M5670,1274.31C5643.28,1256.77 5625.63,1226.54 5625.63,1192.21C5625.63,1138.04 5669.61,1094.06 5723.78,1094.06C5777.95,1094.06 5821.94,1138.04 5821.94,1192.21C5821.94,1226.54 5804.28,1256.77 5777.57,1274.31L5777.57,1300.95C5777.57,1313.29 5767.55,1323.31 5755.21,1323.31L5692.35,1323.31C5680.01,1323.31 5670,1313.29 5670,1300.95L5670,1274.31Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(2.01953,0,0,1.28759,-10919.3,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
<g transform="matrix(-2.01953,0,0,1.28759,12199.4,-1261.54)">
<path d="M5699.78,1355.31L5699.78,1271.27C5699.78,1271.27 5673.35,1264.85 5673.9,1250.53L5723.78,1257.13" style="fill:none;stroke:rgb(255,32,105);stroke-width:10.46px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="167px" height="147px" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

96
docs/static/img/index/Guides-dark.svg vendored Normal file
View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-384,-2459)">
<g id="Guides-dark" transform="matrix(0.132812,0,0,0.236111,384.698,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85576,1.04386,-1.85576,1.04386,-3627,-4653.01)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.50376,2.53337,-4.50376,2.53337,-12009.7,-13153.9)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip3">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip3)">
<g>
<g transform="matrix(0.278536,-0.278536,0.278536,0.278536,2428.4,2198.03)">
<path d="M4667.95,1154.28L4667.95,1122.23L4609.64,1122.23L4609.64,1154.28L4580.47,1154.28C4569.66,1154.28 4560.9,1163.05 4560.9,1173.86C4560.9,1180.84 4560.9,1188.69 4560.9,1195.67C4560.9,1206.49 4569.66,1215.25 4580.47,1215.25L4609.64,1215.25L4609.64,1245.48L4479.75,1245.48L4440.92,1275.97L4479.75,1306.45L4609.64,1306.45L4609.64,1531.76L4667.95,1531.76L4667.95,1306.45L4676.21,1306.45C4687.02,1306.45 4695.78,1297.69 4695.78,1286.88C4695.78,1279.9 4695.78,1272.04 4695.78,1265.06C4695.78,1254.25 4687.02,1245.48 4676.21,1245.48L4667.95,1245.48L4667.95,1215.25L4776.93,1215.25L4815.76,1184.77L4776.93,1154.28L4667.95,1154.28Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1675.55,1782.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1700.99,1756.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1658.55,1799.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1683.99,1773.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

49
docs/static/img/index/Guides-light.svg vendored Normal file
View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-384,-2652)">
<g id="Guides-light" transform="matrix(0.132812,0,0,0.236111,384.698,2652.39)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.85567,1.04381,-1.85567,1.04381,-3626.77,-4653.48)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.02876,-2.02876,2.02876,2.02876,3204.08,1252.49)">
<use xlink:href="#_Image2" x="3.222" y="11.913" width="162.96px" height="132.968px" transform="matrix(0.999757,0,0,0.999757,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.50376,2.53337,-4.50376,2.53337,-12009.7,-13153.9)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip3">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip3)">
<g>
<g transform="matrix(0.278536,-0.278536,0.278536,0.278536,2428.4,2198.03)">
<path d="M4667.95,1154.28L4667.95,1122.23L4609.64,1122.23L4609.64,1154.28L4580.47,1154.28C4569.66,1154.28 4560.9,1163.05 4560.9,1173.86C4560.9,1180.84 4560.9,1188.69 4560.9,1195.67C4560.9,1206.49 4569.66,1215.25 4580.47,1215.25L4609.64,1215.25L4609.64,1245.48L4479.75,1245.48L4440.92,1275.97L4479.75,1306.45L4609.64,1306.45L4609.64,1531.76L4667.95,1531.76L4667.95,1306.45L4676.21,1306.45C4687.02,1306.45 4695.78,1297.69 4695.78,1286.88C4695.78,1279.9 4695.78,1272.04 4695.78,1265.06C4695.78,1254.25 4687.02,1245.48 4676.21,1245.48L4667.95,1245.48L4667.95,1215.25L4776.93,1215.25L4815.76,1184.77L4776.93,1154.28L4667.95,1154.28Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1675.55,1782.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1700.99,1756.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1658.55,1799.42)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
<g transform="matrix(0.835902,-0.835902,0.835902,0.835902,-1683.99,1773.98)">
<path d="M3761.64,3118.42L3742.21,3118.42" style="fill:none;stroke:rgb(255,32,105);stroke-width:3px;"/>
</g>
</g>
</g>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="163px" height="133px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACFCAYAAAA3mUirAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD40lEQVR4nO3dT4gbVRzA8W/Cgjz757KoqNWLCNZS/HPQVhdE36ko+PDgwZtoKSgI4qXg/z0peBOKiKdCKx5Wxx48FKZaUOpFlKogaIuCQrFFEbeOLMp6yMaGbDbpzCaZ7Ob7OWV+8+b3foFfEgby3jTYALK82AMcAu6osYz5FMPL3cEsLx4BFirmnEsxfLa+sjaPmboL6CfLi1ngNeDJumvR6E1kM2Z50QQeB14HZmsuR2Mycc2Y5cXttH6S99Zdi8ZrYpoxy4sZ4FXgINCsuRzVYCKaMcuLHcC7wFzdtag+tTdjlhdbgADsr7uWAS6sET8O7KyY86eK10mSJEmSJEmSJEmSJEmSJEmSJEmSJEm6pFF3AcOU5cUNlNsW5UKK4URXjvuAa7rGLaQY/h0w9y5gV4m5p8kS8FGKYanfoNoX8Q/ZHHC0xPhTwD1dsReB2BXbClwckOtR4KUSc0+bt4ED/Qa4p43GZX+WF3f3G2AzalwawKGV7Q57shk1TncCaa2TNqPG7fksL3reOG+2G5jfgdMlxn/fI3YGuKor1vdOesW5knNPqxngXuDTuguRJEmSJEmSJEmSJEmSJE2MBkCWF1cCN44g/28phl/bB1lebAeu6zi/lGI4m+XFVmBHR/yfFMMPI6hHE6z959qDtFbFDdubwDMdxw8BRzqOzwI3AfcDxzri54GrR1CPJlh72cEDtVYhAc2Vh4/3XUIojUOT1nqEzbYWRhtQE9hddxEStJrxlrqLkCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ69dov8jyogF8A9y6zpzXphjOrTOHgCwv9gCnRjzN6RTDbQPqeAd4omTez1MMe1euvwL4u8/Yb4Hd7aeqkmJYBg6XnFAahsMphuVmV/AIsFxHNZpay8BRuPS8aQBSDD8DJ+qoSFMrX+k7ur8ZwZ9qjdf//darGd8H/hpfLZpiF4EP2gerHnqeYljM8uJmYHvFCc5XvE6rfQXsHPEc/e5y214A3iiZt+h4vUTv9/FHimGxZF5JkiRJkiRJkiRJkiRJkiRJkiSpNo3BQwbL8mIbcADYMox8E+qTFMPJyx2c5cU+4K4ep46nGFZtWZLlxbNUXwR3LMXwZcVrJ8aq1YFVpBj+zPIiB04C24aRcwLN03p/l+tB4Oke8UV675/zHHB9hboAfgE2fDP2Wjddycon82FayxKl0obWjAApho+Bx3C/HlUw1GYESDEsAE8NO682v6E3I0CK4S3glVHk1uY1lBuYNcwDPwL7RjjHOH1dcvwXwHs94t+tMf5DYLbkHG1nKl43Uf4Dm1e503YgLckAAAAASUVORK5CYII="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

95
docs/static/img/index/Manual-dark.svg vendored Normal file
View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 170 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,0,-2459)">
<g id="Manual-dark" transform="matrix(0.132812,0,0,0.236111,0,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.60693e-16,1.47618,-2.62431,9.03898e-17,3925.31,-4882.17)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.220694,0,0,1.30369,458.782,-5247.44)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:none;stroke:rgb(255,32,105);stroke-width:13.72px;"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.6859e-17,-0.077436,1153.3,895.396)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.07174e-17,-0.0492265,1232.16,770.228)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<path d="M1859.44,4165.3L1859.44,4437.11" style="fill:none;stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(1.45989,-0.82119,1.45989,0.82119,-10806,-1022.64)">
<path d="M2983.98,4759.99C2986.3,4755.61 2989.31,4751.51 2992.99,4747.82C3012.97,4727.85 3045.35,4727.85 3065.33,4747.82L3047.24,4765.9C3037.26,4755.92 3021.06,4755.92 3011.08,4765.9C3001.1,4775.88 3001.1,4792.09 3011.08,4802.07C3021.06,4812.06 3037.26,4812.06 3047.24,4802.07L3065.33,4820.15C3045.35,4840.13 3012.97,4840.13 2992.99,4820.15C2989.31,4816.47 2986.3,4812.36 2983.98,4807.98L2983.98,4809.72L2885.04,4809.72C2876.51,4823.11 2861.54,4832 2844.51,4832C2818.01,4832 2796.49,4810.49 2796.49,4783.99C2796.49,4757.49 2818.01,4735.97 2844.51,4735.97C2861.54,4735.97 2876.51,4744.86 2885.03,4758.24L2983.98,4758.24L2983.98,4759.99ZM2844.51,4761.96C2856.66,4761.96 2866.53,4771.83 2866.53,4783.99C2866.53,4796.14 2856.66,4806.01 2844.51,4806.01C2832.35,4806.01 2822.48,4796.14 2822.48,4783.99C2822.48,4771.83 2832.35,4761.96 2844.51,4761.96Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1429.82)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1389.79)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

48
docs/static/img/index/Manual-light.svg vendored Normal file
View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 170 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,0,-2651)">
<g id="Manual-light" transform="matrix(0.132812,0,0,0.236111,0,2651.45)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(1.60693e-16,1.47618,-2.62431,9.03898e-17,3925.31,-4882.17)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.75681e-16,-2.8691,2.8691,1.75681e-16,3306.02,1495.75)">
<use xlink:href="#_Image2" x="1.525" y="1.965" width="164.968px" height="160.968px" transform="matrix(0.999804,0,0,0.999804,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(0.220694,0,0,1.30369,458.782,-5247.44)">
<rect x="1835.49" y="4165.3" width="195.649" height="271.808" style="fill:none;stroke:rgb(255,32,105);stroke-width:13.72px;"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.6859e-17,-0.077436,1153.3,895.396)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(-0.220694,1.52028e-17,-1.07174e-17,-0.0492265,1232.16,770.228)">
<path d="M2031.14,3795.94L1935.32,3953.32L1835.49,3795.94L1835.49,4437.11L2031.14,4437.11L2031.14,3795.94Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-4231.86,-5709.85)">
<path d="M1859.44,4165.3L1859.44,4437.11" style="fill:none;stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
<g transform="matrix(1.45989,-0.82119,1.45989,0.82119,-10806,-1022.64)">
<path d="M2983.98,4759.99C2986.3,4755.61 2989.31,4751.51 2992.99,4747.82C3012.97,4727.85 3045.35,4727.85 3065.33,4747.82L3047.24,4765.9C3037.26,4755.92 3021.06,4755.92 3011.08,4765.9C3001.1,4775.88 3001.1,4792.09 3011.08,4802.07C3021.06,4812.06 3037.26,4812.06 3047.24,4802.07L3065.33,4820.15C3045.35,4840.13 3012.97,4840.13 2992.99,4820.15C2989.31,4816.47 2986.3,4812.36 2983.98,4807.98L2983.98,4809.72L2885.04,4809.72C2876.51,4823.11 2861.54,4832 2844.51,4832C2818.01,4832 2796.49,4810.49 2796.49,4783.99C2796.49,4757.49 2818.01,4735.97 2844.51,4735.97C2861.54,4735.97 2876.51,4744.86 2885.03,4758.24L2983.98,4758.24L2983.98,4759.99ZM2844.51,4761.96C2856.66,4761.96 2866.53,4771.83 2866.53,4783.99C2866.53,4796.14 2856.66,4806.01 2844.51,4806.01C2832.35,4806.01 2822.48,4796.14 2822.48,4783.99C2822.48,4771.83 2832.35,4761.96 2844.51,4761.96Z" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1429.82)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
<g transform="matrix(2.5088,0,0,1.4112,-8227.96,-1389.79)">
<rect x="3480.14" y="1175.69" width="112.318" height="11.555" style="fill:rgb(255,32,105);"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="165px" height="161px" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-194,-2459)">
<g id="Quickstarts-dark" transform="matrix(0.132812,0,0,0.236111,194.124,2459.75)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.62431,0,0,1.47618,-8679.44,-1487.96)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(31,35,71);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1.71609,1.71609,-1.71609,1.71609,-1268.78,-7899.98)">
<circle cx="4070.83" cy="1262.14" r="98.714" style="fill:none;"/>
<clipPath id="_clip2">
<circle cx="4070.83" cy="1262.14" r="98.714"/>
</clipPath>
<g clip-path="url(#_clip2)">
<g transform="matrix(0.393909,0,0,0.393909,2445.45,776.948)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0527091,2526.22,1112.74)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0585947,2526.22,1125.08)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1101.98)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.109604,2526.22,1230.48)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.11556,2471.66,1220.64)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1304.24)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0184469,2471.66,1297.09)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,6.08207e-17,-0.496639,5715.51,1883.31)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.58832e-17,-0.293008,5566,1632.49)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,7.80262e-18,-0.0637132,5566,1325.57)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.0209215,2445.45,1253.19)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,3.23034e-18,-0.0263778,5715.51,1282.87)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(0.393909,0,0,0.053065,2445.45,1233.23)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
<g transform="matrix(-0.393909,-4.824e-17,8.19339e-18,-0.0669041,5715.51,1308.03)">
<rect x="3997.77" y="961.766" width="18.465" height="269.97" style="fill:rgb(46,51,103);"/>
</g>
</g>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(66,79,135);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.28611,0,0,2.41094,-17754,-2432.22)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:5.27px;"/>
</g>
<g transform="matrix(3.31241,0,0,1.86323,-13113.8,-1584.1)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:6.82px;"/>
</g>
<g transform="matrix(2.65128,0,0,1.49135,-10239.1,-1570.05)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:8.52px;"/>
</g>
<g transform="matrix(1.53681e-16,1.41176,-2.5098,8.64457e-17,3897.62,-5414.72)">
<path d="M4090.42,1177.8L4195.47,1370.82L3985.38,1370.82L4090.42,1177.8Z" style="fill:rgb(90,26,68);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 171 171" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-194,-2651)">
<g id="Quickstarts-light" transform="matrix(0.132812,0,0,0.236111,194.124,2651.45)">
<rect x="0" y="0" width="1280" height="720" style="fill:none;"/>
<g transform="matrix(2.62431,-1.61168e-32,-1.08789e-31,1.47618,-8679.41,-1487.96)">
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:rgb(230,232,249);"/>
<clipPath id="_clip1">
<circle cx="3551.19" cy="1251.86" r="239.558"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(2.8691,3.13247e-32,1.18936e-31,2.8691,3306.95,1006.69)">
<use xlink:href="#_Image2" x="1.641" y="3.965" width="160.968px" height="164.968px" transform="matrix(0.999804,0,0,0.999804,0,0)"/>
</g>
</g>
<circle cx="3551.19" cy="1251.86" r="239.558" style="fill:none;stroke:rgb(213,213,214);stroke-width:5.74px;"/>
</g>
<g transform="matrix(4.28611,0,0,2.41094,-17754,-2432.22)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:5.27px;"/>
</g>
<g transform="matrix(3.31241,0,0,1.86323,-13113.8,-1584.1)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:6.82px;"/>
</g>
<g transform="matrix(2.65128,0,0,1.49135,-10239.1,-1570.05)">
<path d="M4201.07,1149.18L4218.25,1149.18L4183.89,1203.47L4183.89,1156.32L4166.7,1156.32L4201.07,1102.04L4201.07,1149.18Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:8.52px;"/>
</g>
<g transform="matrix(1.53681e-16,1.41176,-2.5098,8.64457e-17,3897.62,-5414.72)">
<path d="M4090.42,1177.8L4195.47,1370.82L3985.38,1370.82L4090.42,1177.8Z" style="fill:rgb(237,172,206);stroke:rgb(255,32,105);stroke-width:9px;"/>
</g>
</g>
</g>
<defs>
<image id="_Image2" width="161px" height="165px" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,37 @@
package eventstore
type Asset struct {
// ID is to refer to the asset
ID string
//Asset is the actual image
Asset []byte
//Action defines if asset should be added or removed
Action AssetAction
}
type AssetAction int32
const (
AssetAdd AssetAction = iota
AssetRemove
assetActionCount
)
func NewAddAsset(
id string,
asset []byte) *Asset {
return &Asset{
ID: id,
Asset: asset,
Action: AssetAdd,
}
}
func NewRemoveAsset(
id string) *Asset {
return &Asset{
ID: id,
Action: AssetRemove,
}
}

View File

@ -19,6 +19,7 @@ type LabelPolicyAddedEvent struct {
PrimaryColor string `json:"primaryColor,omitempty"`
SecondaryColor string `json:"secondaryColor,omitempty"`
HideLoginNameSuffix bool `json:"hideLoginNameSuffix,omitempty"`
LogoDarkThemeID string
}
func (e *LabelPolicyAddedEvent) Data() interface{} {

View File

@ -173,6 +173,7 @@ service AdminService {
};
}
// Returns an organisation by id
rpc GetOrgByID(GetOrgByIDRequest) returns (GetOrgByIDResponse) {
option (google.api.http) = {
get: "/orgs/{id}";
@ -199,7 +200,7 @@ service AdminService {
}
//Returns all organisations matching the request
// all queries need to match (ANDed)
// all queries need to match (AND)
rpc ListOrgs(ListOrgsRequest) returns (ListOrgsResponse) {
option (google.api.http) = {
post: "/orgs/_search";
@ -276,6 +277,7 @@ service AdminService {
};
}
// Returns a identity provider configuration of the IAM
rpc GetIDPByID(GetIDPByIDRequest) returns (GetIDPByIDResponse) {
option (google.api.http) = {
get: "/idps/{id}";
@ -311,6 +313,7 @@ service AdminService {
};
}
// Returns all identity provider configurations of the IAM
rpc ListIDPs(ListIDPsRequest) returns (ListIDPsResponse) {
option (google.api.http) = {
post: "/idps/_search";
@ -347,6 +350,7 @@ service AdminService {
};
}
// Adds a new oidc identity provider configuration the IAM
rpc AddOIDCIDP(AddOIDCIDPRequest) returns (AddOIDCIDPResponse) {
option (google.api.http) = {
post: "/idps/oidc";
@ -1676,8 +1680,11 @@ service AdminService {
}
}
//This is an empty request
message HealthzRequest {}
//This is an empty response
message HealthzResponse {}
// if name or domain is already in use, org is not unique
@ -2338,6 +2345,7 @@ message ResetCustomOrgIAMPolicyToDefaultResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetLabelPolicyRequest {}
message GetLabelPolicyResponse {
@ -2380,6 +2388,7 @@ message UpdateLabelPolicyResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetLoginPolicyRequest {}
message GetLoginPolicyResponse {
@ -2470,6 +2479,7 @@ message RemoveIDPFromLoginPolicyResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ListLoginPolicySecondFactorsRequest {}
message ListLoginPolicySecondFactorsResponse {
@ -2505,6 +2515,7 @@ message RemoveSecondFactorFromLoginPolicyResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ListLoginPolicyMultiFactorsRequest {}
message ListLoginPolicyMultiFactorsResponse {
@ -2578,6 +2589,7 @@ message UpdatePasswordComplexityPolicyResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetPasswordAgePolicyRequest {}
message GetPasswordAgePolicyResponse {
@ -2603,6 +2615,7 @@ message UpdatePasswordAgePolicyResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetPasswordLockoutPolicyRequest {}
message GetPasswordLockoutPolicyResponse {
@ -2692,6 +2705,7 @@ message RemoveIAMMemberResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ListIAMMemberRolesRequest {}
message ListIAMMemberRolesResponse {
@ -2711,6 +2725,7 @@ message ListIAMMembersResponse {
repeated zitadel.member.v1.Member result = 2;
}
//This is an empty request
message ListViewsRequest {}
message ListViewsResponse {
@ -2743,8 +2758,10 @@ message ClearViewRequest {
];
}
//This is an empty response
message ClearViewResponse {}
//This is an empty request
message ListFailedEventsRequest {}
message ListFailedEventsResponse {
@ -2782,6 +2799,7 @@ message RemoveFailedEventRequest {
];
}
//This is an empty response
message RemoveFailedEventResponse {}
message View {

View File

@ -49,6 +49,7 @@ service AuthService {
};
}
// Returns my full blown user
rpc GetMyUser(GetMyUserRequest) returns (GetMyUserResponse) {
option (google.api.http) = {
get: "/users/me"
@ -59,6 +60,7 @@ service AuthService {
};
}
// Returns the history of the authorized user (each event)
rpc ListMyUserChanges(ListMyUserChangesRequest) returns (ListMyUserChangesResponse) {
option (google.api.http) = {
post: "/users/me/changes/_search"
@ -69,6 +71,7 @@ service AuthService {
};
}
// Returns the user sessions of the authorized user of the current useragent
rpc ListMyUserSessions(ListMyUserSessionsRequest) returns (ListMyUserSessionsResponse) {
option (google.api.http) = {
post: "/users/me/sessions/_search"
@ -79,6 +82,7 @@ service AuthService {
};
}
// Change the user name of the authorize user
rpc UpdateMyUserName(UpdateMyUserNameRequest) returns (UpdateMyUserNameResponse) {
option (google.api.http) = {
put: "/users/me/username"
@ -90,6 +94,8 @@ service AuthService {
};
}
// Returns the password complexity policy of my organisation
// This policy defines how the password should look
rpc GetMyPasswordComplexityPolicy(GetMyPasswordComplexityPolicyRequest) returns (GetMyPasswordComplexityPolicyResponse) {
option (google.api.http) = {
get: "/policies/passwords/complexity"
@ -100,6 +106,7 @@ service AuthService {
};
}
// Change the password of the authorized user
rpc UpdateMyPassword(UpdateMyPasswordRequest) returns (UpdateMyPasswordResponse) {
option (google.api.http) = {
put: "/users/me/password"
@ -111,6 +118,7 @@ service AuthService {
};
}
// Returns the profile information of the authorized user
rpc GetMyProfile(GetMyProfileRequest) returns (GetMyProfileResponse) {
option (google.api.http) = {
get: "/users/me/profile"
@ -121,6 +129,7 @@ service AuthService {
};
}
// Changes the profile information of the authorized user
rpc UpdateMyProfile(UpdateMyProfileRequest) returns (UpdateMyProfileResponse) {
option (google.api.http) = {
put: "/users/me/profile"
@ -132,6 +141,7 @@ service AuthService {
};
}
// Returns the email address of the authorized user
rpc GetMyEmail(GetMyEmailRequest) returns (GetMyEmailResponse) {
option (google.api.http) = {
get: "/users/me/email"
@ -142,6 +152,8 @@ service AuthService {
};
}
// Changes the email address of the authorized user
// An email is sent to the given address, to verify it
rpc SetMyEmail(SetMyEmailRequest) returns (SetMyEmailResponse) {
option (google.api.http) = {
put: "/users/me/email"
@ -153,6 +165,7 @@ service AuthService {
};
}
// Sets the email address to verified
rpc VerifyMyEmail(VerifyMyEmailRequest) returns (VerifyMyEmailResponse) {
option (google.api.http) = {
post: "/users/me/email/_verify"
@ -164,6 +177,7 @@ service AuthService {
};
}
// Sends a new email to the last given address to verify it
rpc ResendMyEmailVerification(ResendMyEmailVerificationRequest) returns (ResendMyEmailVerificationResponse) {
option (google.api.http) = {
post: "/users/me/email/_resend_verification"
@ -175,6 +189,7 @@ service AuthService {
};
}
// Returns the phone number of the authorized user
rpc GetMyPhone(GetMyPhoneRequest) returns (GetMyPhoneResponse) {
option (google.api.http) = {
get: "/users/me/phone"
@ -185,6 +200,8 @@ service AuthService {
};
}
// Sets the phone number of the authorized user
// An sms is sent to the number with a verification code
rpc SetMyPhone(SetMyPhoneRequest) returns (SetMyPhoneResponse) {
option (google.api.http) = {
put: "/users/me/phone"
@ -196,6 +213,7 @@ service AuthService {
};
}
// Sets the phone number to verified
rpc VerifyMyPhone(VerifyMyPhoneRequest) returns (VerifyMyPhoneResponse) {
option (google.api.http) = {
post: "/users/me/phone/_verify"
@ -207,6 +225,7 @@ service AuthService {
};
}
// Resends a sms to the last given phone number, to verify it
rpc ResendMyPhoneVerification(ResendMyPhoneVerificationRequest) returns (ResendMyPhoneVerificationResponse) {
option (google.api.http) = {
post: "/users/me/phone/_resend_verification"
@ -218,6 +237,7 @@ service AuthService {
};
}
// Removed the phone number of the authorized user
rpc RemoveMyPhone(RemoveMyPhoneRequest) returns (RemoveMyPhoneResponse) {
option (google.api.http) = {
delete: "/users/me/phone"
@ -228,6 +248,7 @@ service AuthService {
};
}
// Returns a list of all linked identity providers (social logins, eg. Google, Microsoft, AD, etc.)
rpc ListMyLinkedIDPs(ListMyLinkedIDPsRequest) returns (ListMyLinkedIDPsResponse) {
option (google.api.http) = {
post: "/users/me/idps/_search"
@ -239,6 +260,7 @@ service AuthService {
};
}
// Removes a linked identity provider (social logins, eg. Google, Microsoft, AD, etc.)
rpc RemoveMyLinkedIDP(RemoveMyLinkedIDPRequest) returns (RemoveMyLinkedIDPResponse) {
option (google.api.http) = {
delete: "/users/me/idps/{idp_id}/{linked_user_id}"
@ -249,6 +271,7 @@ service AuthService {
};
}
// Returns all configured authentication factors (second and multi)
rpc ListMyAuthFactors(ListMyAuthFactorsRequest) returns (ListMyAuthFactorsResponse) {
option (google.api.http) = {
post: "/users/me/auth_factors/_search"
@ -259,6 +282,8 @@ service AuthService {
};
}
// Adds a new OTP (One Time Password) Second Factor to the authorized user
// Only one OTP can be configured per user
rpc AddMyAuthFactorOTP(AddMyAuthFactorOTPRequest) returns (AddMyAuthFactorOTPResponse) {
option (google.api.http) = {
post: "/users/me/auth_factors/otp"
@ -269,6 +294,7 @@ service AuthService {
};
}
// Verify the last added OTP (One Time Password)
rpc VerifyMyAuthFactorOTP(VerifyMyAuthFactorOTPRequest) returns (VerifyMyAuthFactorOTPResponse) {
option (google.api.http) = {
post: "/users/me/auth_factors/otp/_verify"
@ -280,6 +306,7 @@ service AuthService {
};
}
// Removed the configured OTP (One Time Password) Factor
rpc RemoveMyAuthFactorOTP(RemoveMyAuthFactorOTPRequest) returns (RemoveMyAuthFactorOTPResponse) {
option (google.api.http) = {
delete: "/users/me/auth_factors/otp"
@ -290,6 +317,8 @@ service AuthService {
};
}
// Adds a new U2F (Universal Second Factor) to the authorized user
// Multiple U2Fs can be configured
rpc AddMyAuthFactorU2F(AddMyAuthFactorU2FRequest) returns (AddMyAuthFactorU2FResponse) {
option (google.api.http) = {
post: "/users/me/auth_factors/u2f"
@ -300,6 +329,7 @@ service AuthService {
};
}
// Verifies the last added U2F (Universal Second Factor) of the authorized user
rpc VerifyMyAuthFactorU2F(VerifyMyAuthFactorU2FRequest) returns (VerifyMyAuthFactorU2FResponse) {
option (google.api.http) = {
post: "/users/me/auth_factors/u2f/_verify"
@ -311,6 +341,7 @@ service AuthService {
};
}
// Removes the U2F Authentication from the authorized user
rpc RemoveMyAuthFactorU2F(RemoveMyAuthFactorU2FRequest) returns (RemoveMyAuthFactorU2FResponse) {
option (google.api.http) = {
delete: "/users/me/auth_factors/u2f/{token_id}"
@ -321,6 +352,7 @@ service AuthService {
};
}
// Returns all configured passwordless authentications of the authorized user
rpc ListMyPasswordless(ListMyPasswordlessRequest) returns (ListMyPasswordlessResponse) {
option (google.api.http) = {
post: "/users/me/passwordless/_search"
@ -330,6 +362,8 @@ service AuthService {
};
}
// Adds a new passwordless authentications to the authorized user
// Multiple passwordless authentications can be configured
rpc AddMyPasswordless(AddMyPasswordlessRequest) returns (AddMyPasswordlessResponse) {
option (google.api.http) = {
post: "/users/me/passwordless"
@ -340,6 +374,7 @@ service AuthService {
};
}
// Verifies the last added passwordless configuration
rpc VerifyMyPasswordless(VerifyMyPasswordlessRequest) returns (VerifyMyPasswordlessResponse) {
option (google.api.http) = {
post: "/users/me/passwordless/_verify"
@ -351,6 +386,7 @@ service AuthService {
};
}
// Removes the passwordless configuration from the authorized user
rpc RemoveMyPasswordless(RemoveMyPasswordlessRequest) returns (RemoveMyPasswordlessResponse) {
option (google.api.http) = {
delete: "/users/me/passwordless/{token_id}"
@ -361,6 +397,7 @@ service AuthService {
};
}
// Returns all user grants (authorizations) of the authorized user
rpc ListMyUserGrants(ListMyUserGrantsRequest) returns (ListMyUserGrantsResponse) {
option (google.api.http) = {
post: "/usergrants/me/_search"
@ -371,6 +408,7 @@ service AuthService {
};
}
// Returns a list of organisations where the authorized user has a user grant (authorization) in the context of the requested project
rpc ListMyProjectOrgs(ListMyProjectOrgsRequest) returns (ListMyProjectOrgsResponse) {
option (google.api.http) = {
post: "/global/projectorgs/_search"
@ -382,6 +420,7 @@ service AuthService {
};
}
// Returns a list of features, which are allowed on these organisation based on the subscription of the organisation
rpc ListMyZitadelFeatures(ListMyZitadelFeaturesRequest) returns (ListMyZitadelFeaturesResponse) {
option (google.api.http) = {
post: "/features/zitadel/me/_search"
@ -392,6 +431,7 @@ service AuthService {
};
}
// Returns the permissions the authorized user has in ZITADEL based on his manager roles (e.g ORG_OWNER)
rpc ListMyZitadelPermissions(ListMyZitadelPermissionsRequest) returns (ListMyZitadelPermissionsResponse) {
option (google.api.http) = {
post: "/permissions/zitadel/me/_search"
@ -402,6 +442,7 @@ service AuthService {
};
}
// Returns a list of roles for the authorized user and project
rpc ListMyProjectPermissions(ListMyProjectPermissionsRequest) returns (ListMyProjectPermissionsResponse) {
option (google.api.http) = {
post: "/permissions/me/_search"
@ -413,11 +454,13 @@ service AuthService {
}
}
//This is an empty request
message HealthzRequest {}
//This is an empty response
message HealthzResponse {}
//GetMyUserRequest is an empty request
//This is an empty request
// the request parameters are read from the token-header
message GetMyUserRequest {}
@ -439,6 +482,7 @@ message ListMyUserChangesResponse {
repeated zitadel.change.v1.Change result = 2;
}
//This is an empty request
message ListMyUserSessionsRequest {}
message ListMyUserSessionsResponse {
@ -453,6 +497,7 @@ message UpdateMyUserNameResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetMyPasswordComplexityPolicyRequest {}
message GetMyPasswordComplexityPolicyResponse {
@ -468,6 +513,7 @@ message UpdateMyPasswordResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetMyProfileRequest {}
message GetMyProfileResponse {
@ -488,6 +534,7 @@ message UpdateMyProfileResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetMyEmailRequest {}
message GetMyEmailResponse {
@ -511,12 +558,14 @@ message VerifyMyEmailResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ResendMyEmailVerificationRequest {}
message ResendMyEmailVerificationResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message GetMyPhoneRequest {}
message GetMyPhoneResponse {
@ -540,12 +589,14 @@ message VerifyMyPhoneResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ResendMyPhoneVerificationRequest {}
message ResendMyPhoneVerificationResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message RemoveMyPhoneRequest {}
message RemoveMyPhoneResponse {
@ -555,6 +606,7 @@ message RemoveMyPhoneResponse {
message ListMyLinkedIDPsRequest {
//list limitations and ordering
zitadel.v1.ListQuery query = 1;
//PLANNED: queries for idp name and login name
}
@ -572,12 +624,14 @@ message RemoveMyLinkedIDPResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ListMyAuthFactorsRequest {}
message ListMyAuthFactorsResponse {
repeated zitadel.user.v1.AuthFactor result = 1;
}
//This is an empty request
message AddMyAuthFactorU2FRequest {}
message AddMyAuthFactorU2FResponse {
@ -585,6 +639,7 @@ message AddMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 2;
}
//This is an empty request
message AddMyAuthFactorOTPRequest {}
message AddMyAuthFactorOTPResponse {
@ -609,6 +664,7 @@ message VerifyMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message RemoveMyAuthFactorOTPRequest {}
message RemoveMyAuthFactorOTPResponse {
@ -623,12 +679,14 @@ message RemoveMyAuthFactorU2FResponse {
zitadel.v1.ObjectDetails details = 1;
}
//This is an empty request
message ListMyPasswordlessRequest {}
message ListMyPasswordlessResponse {
repeated zitadel.user.v1.WebAuthNToken result = 1;
}
//This is an empty request
message AddMyPasswordlessRequest {}
message AddMyPasswordlessResponse {
@ -683,18 +741,21 @@ message ListMyProjectOrgsResponse {
repeated zitadel.org.v1.Org result = 2;
}
//This is an empty request
message ListMyZitadelFeaturesRequest {}
message ListMyZitadelFeaturesResponse {
repeated string result = 1;
}
//This is an empty request
message ListMyZitadelPermissionsRequest {}
message ListMyZitadelPermissionsResponse {
repeated string result = 1;
}
//This is an empty request
message ListMyProjectPermissionsRequest {}
message ListMyProjectPermissionsResponse {

View File

@ -16,7 +16,7 @@ title: {{.Name}}
{{ .Description}}
{{$httpOption := .Option "google.api.http"}}
{{$httpOption := .Option "validate.rules"}}
{{range $httpOption.Rules}}
{{ .Method }}: {{ .Pattern }}
{{end}}
@ -25,17 +25,19 @@ title: {{.Name}}
{{end}}
{{end}}
{{if .HasServices}}
{{if .HasMessages}}
## Messages
{{range .Messages}}
### {{.LongName}}
{{.Description}}
| Field | Type | Description |
| ----- | ---- | ----------- |
{{if .HasFields}}
| Field | Type | Description | Validation |
| ----- | ---- | ----------- | ----------- |
{{range .Fields -}}
| {{if .IsOneof}}[**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) {{.OneofDecl}}.{{end}}{{.Name}} | {{if .IsMap}}map {{else}}{{.Label}} {{end}}{{.LongType}} | {{if .Description}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}}{{else}}-{{end}} |
| {{if .IsOneof}}[**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) {{.OneofDecl}}.{{end}}{{.Name}} | {{if .IsMap}}map {{else}}{{.Label}} {{end}}{{.LongType}} | {{if .Description}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}}{{else}}-{{end}} | {{$validateOption := .Option "validate.rules"}}{{range $validateOption.Rules}}{{ .Name }}: {{ .Value }}<br /> {{end}} |
{{end}}
{{end}}
{{end}}
{{end}}

File diff suppressed because it is too large Load Diff