mirror of
https://github.com/azaion/admin.git
synced 2026-04-22 14:36:34 +00:00
[AZ-189] [AZ-190] [AZ-191] [AZ-192] [AZ-193] [AZ-194] [AZ-195] Add e2e blackbox test suite
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Flow: Encrypted Resource Download
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Client
|
||||
participant API as Admin API
|
||||
participant Auth as AuthService
|
||||
participant US as UserService
|
||||
participant Sec as Security
|
||||
participant RS as ResourcesService
|
||||
participant FS as Filesystem
|
||||
|
||||
Client->>API: POST /resources/get {password, hardware, fileName}
|
||||
API->>Auth: GetCurrentUser()
|
||||
Auth-->>API: User
|
||||
API->>US: CheckHardwareHash(user, hardware)
|
||||
US->>Sec: GetHWHash(hardware)
|
||||
Sec-->>US: hash
|
||||
US-->>API: hwHash
|
||||
API->>Sec: GetApiEncryptionKey(email, password, hwHash)
|
||||
Sec-->>API: AES key
|
||||
API->>RS: GetEncryptedResource(folder, fileName, key)
|
||||
RS->>FS: Read file
|
||||
FS-->>RS: FileStream
|
||||
RS->>Sec: EncryptTo(stream, key) [AES-256-CBC]
|
||||
Sec-->>RS: Encrypted MemoryStream
|
||||
RS-->>API: Stream
|
||||
API-->>Client: 200 OK (application/octet-stream)
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
# Flow: Hardware Check
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start([POST /resources/check]) --> GetUser[AuthService.GetCurrentUser]
|
||||
GetUser --> CheckNull{User null?}
|
||||
CheckNull -->|Yes| Unauth[401 Unauthorized]
|
||||
CheckNull -->|No| CheckHW[UserService.CheckHardwareHash]
|
||||
CheckHW --> HasHW{User has stored hardware?}
|
||||
HasHW -->|No - first time| StoreHW[Store hardware string in DB]
|
||||
StoreHW --> UpdateLogin[Update last_login]
|
||||
UpdateLogin --> ReturnHash([Return hwHash])
|
||||
HasHW -->|Yes| CompareHash{Hashes match?}
|
||||
CompareHash -->|Yes| UpdateLogin2[Update last_login]
|
||||
UpdateLogin2 --> ReturnHash2([Return hwHash])
|
||||
CompareHash -->|No| Mismatch([409: HardwareIdMismatch])
|
||||
```
|
||||
@@ -0,0 +1,20 @@
|
||||
# Flow: User Login
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Client
|
||||
participant API as Admin API
|
||||
participant US as UserService
|
||||
participant DB as PostgreSQL
|
||||
participant Auth as AuthService
|
||||
|
||||
Client->>API: POST /login {email, password}
|
||||
API->>US: ValidateUser(request)
|
||||
US->>DB: SELECT user WHERE email = ?
|
||||
DB-->>US: User record
|
||||
US->>US: Compare password hash (SHA-384)
|
||||
US-->>API: User entity
|
||||
API->>Auth: CreateToken(user)
|
||||
Auth-->>API: JWT string (HMAC-SHA256)
|
||||
API-->>Client: 200 OK {token}
|
||||
```
|
||||
Reference in New Issue
Block a user