Skip to content

Commit

Permalink
Add section on S3 storage
Browse files Browse the repository at this point in the history
  • Loading branch information
oliverguenther committed Nov 27, 2023
1 parent 052b740 commit 86f1026
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions docs/development/application-architecture/README.md
Expand Up @@ -64,24 +64,25 @@ end

## Involved services

| Service | Relationship to OpenProject | Communication interfaces and mechanisms | References |
| ----------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| Web browser | Performs requests to the application | HTTPS | n/a |
| Native client | Performs requests to the application | HTTPS | n/a |
| SVN client | Performs SVN requests to the application web server | HTTPS | [Repository integrations](https://www.openproject.org/docs/user-guide/repository/) |
| Git client | Performs Git Smart HTTP requests to the application server | HTTPS | [Repository integrations](https://www.openproject.org/docs/user-guide/repository/) |
| Load balancer / Proxy | Depending on installation mechanism, terminates TLS/SSL, accepts and proxies or load balances web requests to the different OpenProject web application servers | HTTPS / PROXY | [Configuration for packaged installations](https://www.openproject.org/docs/installation-and-operations/installation/packaged/#step-3-apache2-web-server-and-ssl-termination)<br />[Configuration for Docker/Kubernetes](https://www.openproject.org/docs/installation-and-operations/installation/docker/#disabling-https-mode) |
| Puma application server | Accepts web requests, runs the OpenProject web facing application | Web requests (HTTP/HTTPS)<br />Database (TCP)<br />Memcached (TCP)<br />Email gateways (SMTP)<br />External integration requests (HTTPS) | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br />[Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options)<br />[SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/)<br />[Integrations guide](https://www.openproject.org/docs/system-admin-guide/integrations/) |
| Memached / Redis / File cache | Application-level cache (if enabled) | TCP connections | [Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options) |
| PostgreSQL | Database management system | (Encrypted) TCP connections between web and background workers | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br /> |
| Background worker | Handles asynchronous jobs, such as backup requests, email delivery, | Database (TCP)<br />Memcached (TCP)<br />Email gateways (SMTP)<br />External integration requests (HTTPS) | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br />[Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options)<br />[SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/)<br />[Integrations guide](https://www.openproject.org/docs/system-admin-guide/integrations/) |
| Email gateways | Receive emails (e.g., notifications) from OpenProject application | SMTP | [SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/) |
| Identity providers | External authentication providers (e.g., Keycloak, ADFS, etc.) | HTTPS through standard protocols (OpenID connect, SAML, OAuth 2.0) | [OpenID connect provider configuration](https://www.openproject.org/docs/system-admin-guide/authentication/openid-providers/)<br />[SAML provider configuration](https://www.openproject.org/docs/system-admin-guide/authentication/saml/)<br />[OAuth 2.0 application configuration](https://www.openproject.org/docs/system-admin-guide/authentication/oauth-applications/) |
| Nextcloud | External biliteral integration | HTTPS | [Nextcloud integration guide](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/) |
| GitHub | Pull Request / Issue referencing Integration into Openproject | HTTPS (Webhooks) | [GitHub integration guide](https://www.openproject.org/docs/system-admin-guide/integrations/github-integration/) |
| Calendars | External calendars requesting dynamic ICS calendar files from OpenProject | HTTPS (iCalendar/webdav) | [Calendar subscriptions configuration](https://www.openproject.org/docs/system-admin-guide/calendars-and-dates/#calendar-subscriptions) |
| API integrations | Structural access to OpenProject through API endpoints | HTTPS | [API configuration](https://www.openproject.org/docs/system-admin-guide/api-and-webhooks/) |
| Outgoing Webhooks | Outgoing requests for changes within the application | HTTPS | [Webhook configuration an adminstration](https://www.openproject.org/docs/system-admin-guide/api-and-webhooks/#webhooks) |
| Service | Relationship to OpenProject | Communication interfaces and mechanisms | References |
| ----------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| Web browser | Performs requests to the application | HTTPS | n/a |
| Native client | Performs requests to the application | HTTPS | n/a |
| SVN client | Performs SVN requests to the application web server | HTTPS | [Repository integrations](https://www.openproject.org/docs/user-guide/repository/) |
| Git client | Performs Git Smart HTTP requests to the application server | HTTPS | [Repository integrations](https://www.openproject.org/docs/user-guide/repository/) |
| Load balancer / Proxy | Depending on installation mechanism, terminates TLS/SSL, accepts and proxies or load balances web requests to the different OpenProject web application servers | HTTPS / PROXY | [Configuration for packaged installations](https://www.openproject.org/docs/installation-and-operations/installation/packaged/#step-3-apache2-web-server-and-ssl-termination)<br />[Configuration for Docker/Kubernetes](https://www.openproject.org/docs/installation-and-operations/installation/docker/#disabling-https-mode) |
| Puma application server | Accepts web requests, runs the OpenProject web facing application | Web requests (HTTP/HTTPS)<br />Database (TCP)<br />Memcached (TCP)<br />Email gateways (SMTP)<br />External integration requests (HTTPS) | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br />[Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options)<br />[SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/)<br />[Integrations guide](https://www.openproject.org/docs/system-admin-guide/integrations/) |
| Memached / Redis / File cache | Application-level cache (if enabled) | TCP connections | [Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options) |
| PostgreSQL | Database management system | (Encrypted) TCP connections between web and background workers | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br /> |
| Background worker | Handles asynchronous jobs, such as backup requests, email delivery, | Database (TCP)<br />Memcached (TCP)<br />Email gateways (SMTP)<br />External integration requests (HTTPS) | [Database TLS setup](https://www.openproject.org/docs/installation-and-operations/configuration/#database-configuration-and-ssl)<br />[Cache configuration](https://www.openproject.org/docs/installation-and-operations/configuration/#cache-configuration-options)<br />[SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/)<br />[Integrations guide](https://www.openproject.org/docs/system-admin-guide/integrations/) |
| Attached storages or Object storage | Access for attachments for the OpenProject application.<br />Either directly (or networked) attached storages, or configuration of an S3-compatible Object store | Local filesystem access (local drives, NFS)<br />HTTPS (S3-compatible storage) | [Configuration of the attachment storage](https://www.openproject.org/docs/installation-and-operations/configuration/#attachments-storage) |
| Email gateways | Receive emails (e.g., notifications) from OpenProject application | SMTP | [SMTP configuration](https://www.openproject.org/docs/installation-and-operations/configuration/outbound-emails/) |
| Identity providers | External authentication providers (e.g., Keycloak, ADFS, etc.) | HTTPS through standard protocols (OpenID connect, SAML, OAuth 2.0) | [OpenID connect provider configuration](https://www.openproject.org/docs/system-admin-guide/authentication/openid-providers/)<br />[SAML provider configuration](https://www.openproject.org/docs/system-admin-guide/authentication/saml/)<br />[OAuth 2.0 application configuration](https://www.openproject.org/docs/system-admin-guide/authentication/oauth-applications/) |
| Nextcloud | External biliteral integration | HTTPS | [Nextcloud integration guide](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/) |
| GitHub | Pull Request / Issue referencing Integration into Openproject | HTTPS (Webhooks) | [GitHub integration guide](https://www.openproject.org/docs/system-admin-guide/integrations/github-integration/) |
| Calendars | External calendars requesting dynamic ICS calendar files from OpenProject | HTTPS (iCalendar/webdav) | [Calendar subscriptions configuration](https://www.openproject.org/docs/system-admin-guide/calendars-and-dates/#calendar-subscriptions) |
| API integrations | Structural access to OpenProject through API endpoints | HTTPS | [API configuration](https://www.openproject.org/docs/system-admin-guide/api-and-webhooks/) |
| Outgoing Webhooks | Outgoing requests for changes within the application | HTTPS | [Webhook configuration an adminstration](https://www.openproject.org/docs/system-admin-guide/api-and-webhooks/#webhooks) |



Expand Down

0 comments on commit 86f1026

Please sign in to comment.