Where files are kept

Keep a wiki, Assets or memory folder in the repository, in Peractor, or in a bucket or repository of your own — and move it when that changes.


A project's wiki, its Assets and its memory are folders, and each folder is kept somewhere. Unless you say otherwise that is the project's repository, beside the code — or, for a project without one, the repository Peractor keeps for it.

A folder can be kept somewhere else instead: in Peractor's own storage, or in a bucket or a repository your organization already has. Wherever it is kept, it reads and saves the same way — the same pages, the same files, the same merge when two people change one page. The truth is whichever storage the folder is on, so a file somebody changes straight in your bucket or repository is the one Peractor shows next.

The storages

StorageGood for
The project's repositoryThe default. Pages are reviewed, branched and blamed like the code, and every run's clone already holds them.
Peractor's databaseNotes and memory that shouldn't be commits. Each save is a revision.
Peractor's object storageLarge files — recordings, design files, video. Offered only on a host that has one.
Peractor's gitA repository Peractor keeps, apart from the project's own: commits and history, without filling the code's repository.
Your bucketAny S3-compatible bucket — Amazon S3, Cloudflare R2, Backblaze B2, Google Cloud Storage. The files stay in your account.
Your repositoryA git repository your organization's git connection can reach. Each save is a commit there.

Each storage has its own largest file. An upload past it is refused with a sentence saying so.

Add your organization's storage

Under the organization's Settings → Storage, someone with Manage connectors adds a storage; everyone else sees the list.

  • Add a bucket asks for its endpoint, region, bucket name and an access key, and optionally a folder inside the bucket. The endpoint must be reachable on the internet. The secret key is stored sealed and never shown again; changing the endpoint, the bucket or the folder asks for it again. Turn on the bucket's versioning, so a file's History has its earlier versions.
  • Add a repository asks for its address, and optionally a branch and a folder inside it. It uses the organization's git access, so there is no key to enter.

Test checks Peractor can reach a storage. For a bucket it also writes and removes a small file, and says whether versioning is on. Each row says what the storage holds and which folders it keeps.

Edit on a storage's row changes its name, or gives it a new key — leave the secret empty to keep the stored one. While it keeps a folder, where it points stays as it is, since that is where the folder's files are; move the folder first to point it elsewhere.

Two projects can't keep a folder at the same place in one bucket or repository. A folder at a path another project already keeps there is refused, naming that project's folder, so give it another name or keep it elsewhere.

Move a folder

In the project's Settings → General, Where each folder is kept lists every wiki folder, every Assets folder and memory, each with its storage. Move a folder picks one and where it goes.

A move copies every file, checks each one arrived whole, catches up with saves made while it copied, then switches the folder. The page follows it — "Moving to Media bucket — 12 of 40", then checking, then switching. For a moment at the end, a save to that folder is turned away with "Try again in a moment".

  • If any file does not arrive whole, the move stops and the folder stays where it was.
  • Either way the old copy stays where it was. Delete it yourself once you are sure.
  • A folder inside another is kept where the outer one is; move the outer folder.

Moving needs Manage project.

Off the repository

  • No branches. A folder kept outside the repository has one line of history: each save is a revision there, and a save onto a new branch is refused. Where no folder is on the repository, the wiki and Assets show no branch picker.
  • History. The wiki's and Assets' History tab lists each save to a folder kept elsewhere, newest first, with who saved it. Where folders are kept in more than one place, History of picks the repository's or a folder's. A bucket without versioning keeps no earlier versions to open.
  • Runs. A run's workspace holds every wiki folder kept elsewhere, at its path, and an Assets folder when the run includes it (include: [media/] on the phase, or Include when it starts) — only the files whoever started it can open, up to 10 MB a file and 64 MB a phase. On a paired machine, a larger file is fetched by the machine itself, up to 2 GB a phase, through a link that reads only that phase's files and ends with it; elsewhere it is named to the agent and left out. Nothing in those folders is committed: what the run changes there is listed at the phase's gate, where a file opens to show itself and what changed in its text, and saved when it is approved, as the person approving. A file somebody changed after the run read it stops the approval — request changes, so the run works from what is there now. A phase with no gate saves its changes when it ends. Memory reaches every run wherever it is kept.
  • Large files. An upload of 16 MB or more goes in pieces, and picks up where it stopped when the connection drops. A video or file of that size in a bucket plays straight from the bucket, through a link that lasts five minutes.
  • Moving a file between storages. A wiki page can move into a folder kept elsewhere. An Assets file can't — download it and upload it there.
  • Edits made outside Peractor. Peractor looks for them in your bucket every five minutes, and again before reading a folder it hasn't looked at in the last minute. A repository is fetched when a folder in it is read.

Storage and your plan

Everything Peractor keeps for the organization — its git, its object storage and its database — counts toward the plan's storage, and Billing shows it split by storage. Your own buckets and repositories count nothing. At the limit, saves to Peractor's storages are refused with a sentence saying so; folders on your own keep saving.

Remove a storage

Remove makes Peractor forget a bucket or repository; the files in it stay where they are. While any folder is kept on it, Remove is refused — move that folder first.

Next: The project wiki · Plans & usage