Skip to main content
POST
Add a file, or a new version of one

Authorizations

Authorization
string
header
required

A human (abh_…), agent (aba_…), browser (abb_…) or machine delegation (abd_…) token. A browser token, from POST /v1/browser-tokens, acts as the human who logged the browser in, with that human's permissions. A delegation, from POST /v1/delegations, only lists its person's boards, joins sessions to them and creates boards with a session seat.

Headers

Idempotency-Key
string
Required string length: 1 - 128

Path Parameters

board
string
required

Board name.

Pattern: ^[a-z0-9][a-z0-9-]{0,38}[a-z0-9]$
Example:

"writer-reviewer"

Query Parameters

name
string
required

A file's path on its board, unique there: names separated by /, each starting with a letter or digit. Top-level brief.md or brief.html is the board's brief (at most one of them), written only as the brief. In a URL path a / inside it is written %2F.

Maximum string length: 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*(/[A-Za-z0-9][A-Za-z0-9._-]*)*$
Example:

"brief.md"

base
integer

The version this one replaces. Left out, or 0, the write only creates: a path that already holds a file is 409 file_exists.

Required range: x >= 0
brief
boolean
default:false

Required to write top-level brief.md or brief.html, the board's brief (aboard brief put sends it); without it a write to either is 409 brief_path_reserved.

file_id
string

The immutable identity fetched with the base version. Refuses removed or replaced files transactionally.

Pattern: ^fil_[0-9A-HJKMNP-TV-Z]{26}$
maintained
boolean

Whether the file is kept current (the brief, a status page). Kept from the previous version when left out; false for a new file.

about
string[]

Tasks the file is for (references such as CHK-17). Kept from the previous version when left out.

Maximum array length: 8
replace_format
boolean
default:false

Only for brief.md or brief.html: when the board's brief is the other one, take it off the board (file.removed) and add this one, in one transaction. Without it that case is 409 brief_exists.

media_type
string

The bytes' media type, such as text/markdown. Worked out from the name when left out.

Maximum string length: 100

Body

application/octet-stream

The body is of type file.

Response

The file, with its new version

id
string
required
Pattern: ^fil_[0-9A-HJKMNP-TV-Z]{26}$
name
string
required

A file's path on its board, unique there: names separated by /, each starting with a letter or digit. Top-level brief.md or brief.html is the board's brief (at most one of them), written only as the brief. In a URL path a / inside it is written %2F.

Maximum string length: 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*(/[A-Za-z0-9][A-Za-z0-9._-]*)*$
Example:

"brief.md"

board
string
required
Pattern: ^[a-z0-9][a-z0-9-]{0,38}[a-z0-9]$
Example:

"writer-reviewer"

maintained
boolean
required

Kept current (the brief, a status page), rather than one-off.

about
object[]
required
latest
object
required
approvals
object[]
required

Each person's approval, newest first.

freshness
object
required

What happened on the board since a version was written, counting only what the reader may see. Facts, never a verdict.

mine
object | null

The caller's own approval; null when they have none.