Upsun User Documentation

Define relationships between your multiple apps

Sign up

Get your free trial by clicking the link below.

Get your Upsun free trial

When you set up a project containing multiple applications, by default your apps can’t communicate with each other. To enable connections, define relationships between apps using the http endpoint.

You can’t define circular relationships. If app1 has a relationship to app2, then app2 can’t have a relationship to app1. If you need data to go both ways, consider coordinating through a shared data store, like a database or RabbitMQ server.

Relationships between apps use HTTP, not HTTPS. This is still secure because they’re internal and not exposed to the outside world.

Relationships example Anchor to this heading

You have two apps, app1 and app2, and app1 needs data from app2.

In your app configuration for app1, define a relationship to app2:

.upsun/config.yaml
applications:
  app1:
    relationships:
      api: "app2:http"

Once they’re both built, app1 can access app2 at the following URL: http://api.internal.
The specific URL is always available through the service environment variables, or through the PLATFORM_RELATIONSHIPS variable:

Terminal on app1 container
$ echo $API_HOST
api.internal

It uses the jq library, which is included in all app containers for this purpose.

Terminal on app1 container
$ echo $PLATFORM_RELATIONSHIPS | base64 --decode | jq '.api[0].host'
api.internal

Is this page helpful?