Private networking for compute services
- Compute
- Security
Services in the same project branch can now reach each other over a private network, without going through their public URLs.

Private addresses
Every compute service has a private address, <name>.insta.internal, on the port it listens on. A managed Redis, MySQL or MongoDB is at <name>-<type>.insta.internal, and its private connection string sits beside the public one as REDIS_PRIVATE_URL, MYSQL_PRIVATE_URL or MONGODB_PRIVATE_URL. Bind it like any other credential:
insta secrets bind REDIS_URL redis/cache --source-name REDIS_PRIVATE_URL --to compute/app
Each branch is its own network. On a preview branch, api.insta.internal is that branch's api, and nothing in one branch can reach another branch's services. A service's Settings tab shows its private address, and insta compute public-access <service> prints it. A service that was already running before this release resolves the short names after its next deploy or wake.
Close public access
A service that only your other services call doesn't need a public URL. Switch off Public Access in its Settings tab, or:
insta compute public-access off <service>
From then on its URL answers 403 without waking it, so a scanner on the internet can't keep it running. Services in the same branch still reach it at its private address, and public-access on reopens it. Managed databases have the same switch: after insta mysql public-access off <service>, MYSQL_URL stops connecting and only apps in the branch reach the database, through MYSQL_PRIVATE_URL.
A cron job calls its target's public URL, so it can't target a compute service with public access closed.

