Files
postgrest/docs/_diagrams/arch.uml
T

68 lines
1.2 KiB
Plaintext

@startuml
package "PostgREST" {
() HTTP as HTTPAPI
HTTPAPI - [Auth]
[Auth] -r.> [ApiRequest]
[ApiRequest] -r.> [Plan]
[Plan] -r.> [Query]
[Query] - () "Connection Pool" : "\t"
[Plan] -u-> [Schema Cache]:uses
[Query] -u-> [Schema Cache]:uses
[Schema Cache] <- () Listener : reloads
() HTTP as HTTPADMIN
[Admin] -r- () HTTPADMIN
[Config] -l- () CLI
HTTPADMIN -[hidden]r- CLI
Listener -[hidden]r- [Schema Cache]
[Schema Cache] <-l[hidden]- [Config]
[Schema Cache] -l[hidden]- [Admin]
[Config] <-l~ Listener
}
database "PostgreSQL" {
node Authorization {
rectangle "Roles, GRANT, RLS"
}
node API {
rectangle "Functions, Views"
}
rectangle "Tables, extensions" as tbs
API -d- tbs
Authorization -d- tbs
}
:user:
hexagon Proxy
:user: .r-> Proxy
HTTPAPI <.l- Proxy
:operator: .d-> HTTPADMIN
:operator: .d-> CLI
PostgreSQL <.developer : "\t"
Listener -r.> "PostgreSQL"
"Connection Pool" -r.> "PostgreSQL" : "\t\t"
note bottom of Auth
Authenticates the user request
end note
note bottom of ApiRequest
Parses the URL syntax
end note
note bottom of Query
Generates the SQL
end note
note top of Listener
LISTEN session
end note
@enduml