There is no delete route for a project, no way to drop a Flight source, and no way to remove a published program from the console.
A project id, the address it publishes at and the OAuth client ids registered against it stay claimed for good, so nothing that was trusted once, a program a calculator installed or a client id a user consented to, can be quietly released and picked up by somebody else.
What there is instead is archiving.
What archiving does#
It does three things at once, and all three are reversible.
It suspends the program on Roost
The row keeps everything it had. The registry filters it out of listings, search, category counts, the dependency graph and every download route. A direct link to the address answers
404.It disables the OAuth applications
Every application registered against the project is disabled through the accounts client API. Only the ones that were still enabled are touched, and their client ids are recorded on the project.
It freezes the project
Renaming it, changing the Flight source, publishing a version, editing the listing, starting a build and every credentials write answer
409 project_disabled. A push webhook for it is acknowledged and ignored.
Restoring#
Restoring reverses all three. The program is unsuspended, and exactly the applications that archiving suspended are re-enabled. Any the owner had disabled by hand are left alone, because their client ids were never recorded as suspended.
Nothing is removed from the object store at any point, so a restored project's downloads work immediately.
If part of it fails#
Archiving touches the registry and CEagle accounts as well as the project, so it can fail partway if accounts is unreachable. Nothing is left half-applied: the console reports the failure and you try again.
When to reach for it#
Archive it. The address stays yours, nobody can install it, and you can bring it back.
Archive it, fix it, restore it. Faster than pushing a build, and it stops downloads immediately.
Archive it, or leave it. An unused project with no source publishes nothing either way.
Disable that credential rather than the whole project, unless the project itself is the problem.