Skip to content

Commit 6627256

Browse files
author
Anna Mikhaylova
committed
Merge branch 'docs_rework' of https://github.com/MobileTeleSystems/syncmaster into docs_rework
2 parents c816501 + 1fa3efe commit 6627256

File tree

4 files changed

+242
-2
lines changed

4 files changed

+242
-2
lines changed

mddocs/docs/en/design/entities/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ Users are automatically after successful login, there is no special registration
1212
All entity types (Connection, Transfer, Run, Queue) can be created only within some group.
1313
Groups are independent from each other, and have globally unique name.
1414

15-
![image](group_list.png)![image](group_info.png)
15+
![image](group_list.png)
16+
17+
![image](group_info.png)
1618

1719
Group can be created by any user, which automatically get `OWNER` role.
1820
This role allows adding members to the group, and assign them speficic roles:

mddocs/docs/en/reference/server/auth/keycloak/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,4 @@ deactivate Client
129129

130130
## Keycloak
131131

132-
- [Local installation][local_installation]
132+
- [Local installation][local_installation]
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# Database structure { #database-structure }
2+
3+
% https://plantuml.com/en/ie-diagram
4+
5+
```plantuml
6+
7+
@startuml
8+
title Database structure
9+
10+
entity user {
11+
* id: bigint
12+
----
13+
* username: varchar(256)
14+
email: varchar(256) null
15+
first_name: varchar(256) null
16+
last_name: varchar(256) null
17+
middle_name: varchar(256) null
18+
is_superuser: boolean
19+
is_active: boolean
20+
created_at: timestamp
21+
updated_at: timestamp
22+
}
23+
24+
entity group {
25+
* id: bigint
26+
----
27+
name: varchar(256)
28+
description: varchar(512)
29+
owner_id: bigint
30+
created_at: timestamptz
31+
updated_at: timestamptz
32+
search_vector: tsquery
33+
}
34+
35+
entity user_group {
36+
* user_id: bigint
37+
* group_id: bigint
38+
----
39+
role_id: varchar(255)
40+
}
41+
42+
entity connection {
43+
* id: bigint
44+
----
45+
group_id: bigint
46+
type: varchar(32)
47+
name: varchar(123)
48+
description: varchar(512)
49+
data: json
50+
created_at: timestamptz
51+
updated_at: timestamptz
52+
search_vector: tsquery
53+
}
54+
55+
entity auth_data {
56+
* connection_id: bigint
57+
----
58+
value: text
59+
created_at: timestamptz
60+
updated_at: timestamptz
61+
}
62+
63+
entity queue {
64+
* id: bigint
65+
----
66+
name: varchar(128)
67+
slug: varchar(256)
68+
group_id: bigint
69+
description: varchar(512)
70+
created_at: timestamptz
71+
updated_at: timestamptz
72+
}
73+
74+
entity transfer {
75+
* id: bigint
76+
----
77+
group_id: bigint
78+
name: varchar(128)
79+
source_connection_id: bigint
80+
target_connection_id: bigint
81+
strategy_params: json
82+
target_params: json
83+
transformations: json
84+
resources: json
85+
is_scheduled: boolean
86+
schedule: varchar(32)
87+
queue_id: bigint
88+
created_at: timestamptz
89+
updated_at: timestamptz
90+
}
91+
92+
entity run {
93+
* id: bigint
94+
----
95+
transfer_id
96+
started_at: timestamptz
97+
ended_at: timestamptz
98+
status: varchar(255)
99+
type: varchar(64)
100+
log_url: varchar(512)
101+
transfer_dump: json
102+
created_at: timestamptz
103+
updated_at: timestamptz
104+
}
105+
106+
user_group ||--o{ user
107+
user_group ||--o{ group
108+
109+
group "owner_id" ||--o{ user
110+
111+
queue ||--o{ group
112+
113+
connection ||--o{ group
114+
auth_data ||--o{ connection
115+
116+
transfer ||--o{ queue
117+
transfer ||--o{ connection
118+
transfer ||--o{ group
119+
120+
run ||--o{ transfer
121+
122+
@enduml
123+
```
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Фиктивный провайдер аутентификации { #server-auth-dummy }
2+
3+
## Описание { #server-auth-dummy-description }
4+
5+
Этот провайдер аутентификации позволяет войти в систему с любым именем пользователя и паролем, а затем выдаёт токен доступа.
6+
7+
После успешной аутентификации имя пользователя сохраняется в базе данных сервера.
8+
9+
## Схема взаимодействия { #server-auth-dummy-interaction-shema}
10+
11+
```plantuml
12+
13+
@startuml
14+
title Фиктивный провайдер аутентификации
15+
participant "Клиент"
16+
participant "Сервер"
17+
18+
== POST v1/auth/token ==
19+
20+
activate "Клиент"
21+
alt Успешный случай
22+
"Клиент" -> "Сервер" ++ : логин + пароль
23+
"Сервер" --> "Сервер" : Пароль полностью игнорируется
24+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
25+
"Сервер" -> "Сервер" : Создать пользователя, если он не существует
26+
"Сервер" -[#green]> "Клиент" -- : Сгенерировать и вернуть access_token
27+
28+
else Пользователь блокирован
29+
"Клиент" -> "Сервер" ++ : логин + пароль
30+
"Сервер" --> "Сервер" : Пароль полностью игнорируется
31+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
32+
"Сервер" x-[#red]> "Клиент" -- : 401 Не авторизован
33+
34+
else Пользователь удален
35+
"Клиент" -> "Сервер" ++ : логин + пароль
36+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
37+
"Сервер" --> "Сервер" : Check user in internal server database
38+
"Сервер" x-[#red]> "Клиент" -- : 404 Не найден
39+
end
40+
41+
== GET v1/users/me ==
42+
43+
alt Успешный случай
44+
"Клиент" -> "Сервер" ++ : токен доступа
45+
"Сервер" --> "Сервер" : Валидация токена
46+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
47+
"Сервер" -> "Сервер" : Предоставить данные
48+
"Сервер" -[#green]> "Клиент" -- : Вернуть данные
49+
50+
else Срок действия токена истек
51+
"Клиент" -> "Сервер" ++ : токен доступа
52+
"Сервер" --> "Сервер" : Валидация токена
53+
"Сервер" x-[#red]> "Клиент" -- : 401 не авторизован
54+
55+
else Пользователь блокирован
56+
"Клиент" -> "Сервер" ++ : токен доступа
57+
"Сервер" --> "Сервер" : Валидация токена
58+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
59+
"Сервер" x-[#red]> "Клиент" -- : 401 не авторизован
60+
61+
else Пользователь удален
62+
"Клиент" -> "Сервер" ++ : токен доступа
63+
"Сервер" --> "Сервер" : Валидация токена
64+
"Сервер" --> "Сервер" : Проверить пользователя во внутренней базе данных сервера
65+
"Сервер" x-[#red]> "Клиент" -- : 404 не найден
66+
end
67+
68+
deactivate "Клиент"
69+
@enduml
70+
```
71+
72+
```mermaid
73+
sequenceDiagram
74+
participant "Клиент"
75+
participant "Сервер"
76+
activate "Клиент"
77+
alt Успешный случай
78+
"Клиент" ->> "Сервер" : логин + пароль
79+
"Сервер" ->> "Сервер" : Пароль полностью игнорируется
80+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
81+
"Сервер" ->> "Сервер" : Создать пользователя, если он не существует
82+
else
83+
"Клиент" ->> "Сервер" : логин + пароль
84+
"Сервер" ->> "Сервер" : Пароль полностью игнорируется
85+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
86+
else
87+
"Клиент" ->> "Сервер" : логин + пароль
88+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
89+
"Сервер" ->> "Сервер" : Check user in internal server database
90+
end
91+
alt Успешный случай
92+
"Клиент" ->> "Сервер" : токен доступа
93+
"Сервер" ->> "Сервер" : Валидация токена
94+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
95+
"Сервер" ->> "Сервер" : Предоставить данные
96+
else
97+
"Клиент" ->> "Сервер" : токен доступа
98+
"Сервер" ->> "Сервер" : Валидация токена
99+
else
100+
"Клиент" ->> "Сервер" : токен доступа
101+
"Сервер" ->> "Сервер" : Валидация токена
102+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
103+
else
104+
"Клиент" ->> "Сервер" : токен доступа
105+
"Сервер" ->> "Сервер" : Валидация токена
106+
"Сервер" ->> "Сервер" : Проверить пользователя во внутренней базе данных сервера
107+
end
108+
deactivate "Клиент"
109+
```
110+
111+
## Конфигурация { #server-auth-dummy-configuration }
112+
113+
::: syncmaster.server.settings.auth.dummy.DummyAuthProviderSettings
114+
115+
::: syncmaster.server.settings.auth.jwt.JWTSettings

0 commit comments

Comments
 (0)