66 lines
1.2 KiB
Plaintext
66 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
|
|
|
|
/'
|
|
'the listener reloads the config. Too much detail, the arrows are crosssed.
|
|
'[Schema Cache] <-l[hidden]- [Config]
|
|
'[Schema Cache] <-l[hidden]- [Admin]
|
|
'[Config] <-l~ () Listener : reloads
|
|
'/
|
|
}
|
|
|
|
|
|
database "PostgreSQL" {
|
|
node Authorization {
|
|
rectangle "Roles, GRANT, RLS"
|
|
}
|
|
node API {
|
|
rectangle "Functions, Views"
|
|
}
|
|
rectangle "Tables, extensions" as texts
|
|
API -d- texts
|
|
}
|
|
|
|
|
|
HTTPAPI <.l- :user: : "\t"
|
|
|
|
:operator: .-> HTTPADMIN
|
|
:operator: .-> 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
|