Folder or stack
Folders organize and stacks connect.
A folder can contain a stack, for example a folder per client with one stack each.
How the stack connects
Apps reach each database through that database’s public address. The platform creates the client certificates and the connection variables. See Connect apps to databases in a stack. From one app to another, the connection is HTTP, through the public address. The platform does not protect that address: to accept only the other app, check a shared secret in both.Four ways to get a stack
1
From a template
A template with two or more services creates the stack with its members. See Use a template.
2
Add a database to an app
On an app page, Add database creates a database and connects it to the app. If the app is not in a stack yet, the stack is created right there (it takes the name you give it).
3
Turn a folder into a stack
In a folder with an app and a database that already exist, Turn into a stack creates the stack with those members. The folder stays. A folder without at least one app and one database cannot be transformed (
STACK_TRANSFORM_EMPTY).4
From resources you already have
Create a stack from apps and databases of the same account or workspace that are not in another stack.
Add and remove members
On a stack’s page, Add database creates a new database already inside the stack (engine, version, memory, which apps to connect and the variable names). You can also move a loose database or app that you already have into the stack:- It must belong to the same owner and scope (both personal, or both in the same workspace) and not be in another stack, otherwise the call returns
STACK_MEMBER_CONFLICT. - You choose which apps to connect it to and with which variable names. You may connect none.
- From then on it is part of the stack’s snapshot and restore.
A stack that came from a template can receive extra resources, which the template’s updates ignore. Taking out a resource that the template created is allowed, with a warning: the stack is detached from the template and stops receiving new versions. The app of a closed template cannot leave the stack (
STACK_SERVICE_LOCKED); its databases can.
Blob in a stack
A stack can include a folder of your Blob Storage. The platform creates an API key restricted to that folder, keeps it in the stack and injects the S3 connection variables into the apps you choose. The folder isstacks/<stack-slug>/, fixed when the stack is created. The plan must include Blob Storage.
Undoing the stack revokes that key and keeps the files. When you delete everything, you choose whether to keep or delete the files, and the default is to keep them. See Blob authentication for restricted keys.
Delete a stack
Deleting a stack asks you to type its name and gives two options:
A wrong name returns
STACK_NAME_MISMATCH. API keys used for Delete everything need permission to delete apps and databases (and Blob write access to delete files).
Snapshots
A stack snapshot takes a snapshot of every member that has data, together, and a restore brings them back together. See Backups and snapshots.Related
Connect databases
Injected variables, certificates and code per language.
Update and roll back
Update every service of the stack together.