Organization
└── App                    one per package ID, e.g. com.acme.demoapp
    ├── Channels           stable (always there), staging, beta, …
    └── Releases           1.4.0+12, 1.5.0+13, …
        └── Patches        1, 2, 3, …  each published to one or more channels
  

Organization

Everything in Retrojet belongs to an organization. Signing up creates one for you, and you are its Owner. Other organizations can add you as a member, so one account can work in several.

RoleCan do
OwnerEverything an Admin can, plus making someone an Owner or removing that role.
AdminRename the organization, add and remove members, change roles, create and delete apps and channels, delete releases.
MemberSee everything, create releases and patches with the CLI, promote and roll back patches.

An organization always keeps at least one Owner. You can only add people who already have a Retrojet account, and adding members needs a paid plan (see Plans and limits).

App

An app is one Flutter project, identified by its package ID (applicationId on Android, bundle ID on Apple platforms). The package ID is unique inside an organization.

Each app has an app ID, a UUID. retrojet init writes it to retrojet.yaml in your project, and your app uses it to ask for patches.

Channel

A channel is a group of devices that receives patches together. Every app starts with stable, which you cannot delete. Add others, such as staging or beta, from the console to test a patch on a few devices before everyone gets it.

A channel that a patch has been published to cannot be deleted either.

Release

A release is a build of your app that you ship through the store, for example version 1.4.0+12. The CLI uploads it to Retrojet so later patches can be built against it. A release records the Flutter version it was built with and one entry per platform (android, ios, …).

While the CLI is still uploading, a platform shows as draft. Once the upload is complete it becomes active.

Deleting a release also deletes all of its patches, and cannot be undone. Only Owners and Admins can do it, and only from the console. To stop one bad patch, roll it back instead.

Patch

A patch is a change to the Dart code of one release. Patches are numbered per release: 1, 2, 3, …

StatusMeaning
draftCreated by the CLI, upload not finished. Devices never see it.
publishedLive on at least one channel.

Every patch artifact is signed when it is uploaded. A patch only applies to the release it was built for: a device on 1.4.0+12 never receives a patch for 1.5.0+13.

Promote

Publishing sends a patch to its first channel. Promote adds the same patch to another channel, for example from staging to stable. The content stays exactly the same, and promoting does not count as a new publish on your plan.

Rollback

Rollback withdraws a published patch from one channel, so devices on that channel no longer receive it. Other channels are not affected. Rollback is available in the console, so anyone on the team can react from a browser.

Devices and installs

Your app on a user’s device checks for a patch for its release and channel, downloads it, and reports the result: download, install, install failure, or update failure. These reports feed the install and device counts on the Usage page.