# Every feature featkpr has named, and what it is part of.

A feature is the smallest piece of what an app does. Type a word, a module or a route, or pick a chip; each feature opens to the goals kept on its routes and the flows that end there.

BookStack: featkpr's records, read 28 Sep 2026 (312 features in 13 modules) · Shlink: read from the code 24 Sep 2026, 00:15 UTC at commit 4a8fee47

## BookStack's modules

Pick a module to see its features. The bar is how many features it holds; the second number is how many of them a drafted flow ends on.

- [Entities **83** features 27 end a flow](https://featkpr.com/library/features?app=BookStack&module=Entities#features)
- [Settings **73** features 14 end a flow](https://featkpr.com/library/features?app=BookStack&module=Settings#features)
- [Exports **34** features 15 end a flow](https://featkpr.com/library/features?app=BookStack&module=Exports#features)
- [Activity **28** features 5 end a flow](https://featkpr.com/library/features?app=BookStack&module=Activity#features)
- [Users **27** features 4 end a flow](https://featkpr.com/library/features?app=BookStack&module=Users#features)
- [Uploads **22** features 0 end a flow](https://featkpr.com/library/features?app=BookStack&module=Uploads#features)
- [Access **16** features 5 end a flow](https://featkpr.com/library/features?app=BookStack&module=Access#features)
- [Permissions **11** features 1 end a flow](https://featkpr.com/library/features?app=BookStack&module=Permissions#features)
- [Api **8** features 4 end a flow](https://featkpr.com/library/features?app=BookStack&module=Api#features)
- [References **4** features 0 end a flow](https://featkpr.com/library/features?app=BookStack&module=References#features)
- [Sorting **4** features 0 end a flow](https://featkpr.com/library/features?app=BookStack&module=Sorting#features)
- [Search **1** features 0 end a flow](https://featkpr.com/library/features?app=BookStack&module=Search#features)
- [Theming **1** features 0 end a flow](https://featkpr.com/library/features?app=BookStack&module=Theming#features)

(picture: The page of one feature in featkpr, See what changed on a page, in Entities: its words in the code with file and line, the screen it lives on, and two drafted flows that end there)

featkpr's app, on sample data: one feature's page in featkpr: its words in the code, the screen it lives on, the flows that end there

## Search the features

How far each got: found in the code only, a screen found by the crawl, a test written, or proven by the wrong-user check (its test passed, then failed when sent as a user who must be refused).

app how far part of module

#### Create a book

BookStack · Entities proven by the wrong-user check 2 screens found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /create-book`

goals kept on its routes

- [Create a book](https://featkpr.com/library/goals#g-ead918c6c12e) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-35a60d85137b)

- [/ → /books → /create-book](https://featkpr.com/library/flows#fl-4a8a69615b98) 3 screens

#### View page revision history

BookStack · Entities proven by the wrong-user check 3 screens found · 12 tests written, 12 proven by the wrong-user check

part of 3 goals · 4 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/revisions` `GET /books/{bookSlug}/page/{pageSlug}/revisions/{revId}` `GET /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/changes`

goals kept on its routes

- [Open the page revision (index)](https://featkpr.com/library/goals#g-ef76dde7faa2) proven · complex
- [Open the page revision (show)](https://featkpr.com/library/goals#g-f559e2e3daa0) proven · complex
- [Open the page revision (changes)](https://featkpr.com/library/goals#g-3ecc493e755f) proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-124c29d53a12)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/revisions](https://featkpr.com/library/flows#fl-492f20546978) 3 screens
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/revisions](https://featkpr.com/library/flows#fl-def77b49030f) 3 screens
- [/ → … → /books/{bookSlug}/page/{pageSlug}/revisions → /books/{bookSlug}/page/{pageSlug}/revisions/{revId}](https://featkpr.com/library/flows#fl-ff75bb2c10c3) 4 screens
- [/ → … → /books/{bookSlug}/page/{pageSlug}/revisions → /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/changes](https://featkpr.com/library/flows#fl-6b89c3dd298f) 4 screens

#### Add changelog entry when saving a page

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Add/organize books within a shelf

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Archive/unarchive comment threads

- BookStack · Entities a screen found by the crawl 3 screens found no goal is kept on its routes and no flow ends here yet

#### Browse and view books

BookStack · Entities a screen found by the crawl 3 screens found

part of 2 goals · 7 flows end here

its routes; the links below are by route

`GET /books` `GET /books/{slug}`

goals kept on its routes

- [Open the book (index)](https://featkpr.com/library/goals#g-0892b0c8f3b9) no test yet · complex
- [Open the book (show)](https://featkpr.com/library/goals#g-301e3a933037) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-18c5fab81953)

- [/ → /books](https://featkpr.com/library/flows#fl-75bcc770beda) 2 screens
- [/ → /books](https://featkpr.com/library/flows#fl-7f0ba70b0906) 2 screens
- [/login → /books](https://featkpr.com/library/flows#fl-3c6774d82622) 2 screens
- [/ → … → /create-book → /books/{slug}](https://featkpr.com/library/flows#fl-cd0cd7c32f65) 4 screens
- [/ → /books/{slug}](https://featkpr.com/library/flows#fl-2f7a2897d476) 2 screens
- [/ → … → /shelves/{shelfSlug}/create-book → /books/{slug}](https://featkpr.com/library/flows#fl-046b846afafa) 5 screens
- [/ → … → /shelves/{shelfSlug}/create-book → /books/{slug}](https://featkpr.com/library/flows#fl-65625fb49120) 4 screens

#### Browse and view bookshelves

BookStack · Entities a screen found by the crawl 2 screens found

part of 2 goals · 7 flows end here

its routes; the links below are by route

`GET /shelves` `GET /shelves/{slug}`

goals kept on its routes

- [Open the bookshelf (index)](https://featkpr.com/library/goals#g-653a7ee6594f) no test yet · complex
- [Open the bookshelf (show)](https://featkpr.com/library/goals#g-34a8ec597a86) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0c44ec99e3ee)

- [/ → /shelves](https://featkpr.com/library/flows#fl-40259afa0dd7) 2 screens
- [/ → /shelves](https://featkpr.com/library/flows#fl-f99007d685bd) 2 screens
- [/login → /shelves](https://featkpr.com/library/flows#fl-7f4488e7620f) 2 screens
- [/ → /books/{slug} → /shelves/{slug}](https://featkpr.com/library/flows#fl-1e9704a87f32) 3 screens
- [/ → … → /create-shelf → /shelves/{slug}](https://featkpr.com/library/flows#fl-3a655a2abd90) 4 screens
- [/ → /shelves/{slug}](https://featkpr.com/library/flows#fl-89ee8f25162a) 2 screens
- [/ → /shelves/{slug}](https://featkpr.com/library/flows#fl-c7fe4502de2d) 2 screens

#### Browse and view chapters

BookStack · Entities a screen found by the crawl 2 screens found

part of 1 goal · 3 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}`

goals kept on its routes

- [Open the chapter (show)](https://featkpr.com/library/goals#g-bb868f4236b8) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-26095b660fb8)

- [/ → /books/{bookSlug}/chapter/{chapterSlug}](https://featkpr.com/library/flows#fl-3cf4d67292fe) 2 screens
- [/ → /books/{bookSlug}/draft/{pageId} → /books/{bookSlug}/chapter/{chapterSlug}](https://featkpr.com/library/flows#fl-9657afeb7d5f) 3 screens
- [/ → … → /books/{bookSlug}/create-chapter → /books/{bookSlug}/chapter/{chapterSlug}](https://featkpr.com/library/flows#fl-c1fc21d60ed3) 4 screens

#### Browse and view pages

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Comment on a page

BookStack · Entities a screen found by the crawl 3 screens found

part of 3 goals · 4 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/draft/{pageId}` `GET /books/{bookSlug}/page/{pageSlug}` `GET /books/{bookSlug}/page/{pageSlug}/edit`

goals kept on its routes

- [Open the page (edit draft)](https://featkpr.com/library/goals#g-ebbb9e6c5c39) no test yet · complex
- [Open the page (show)](https://featkpr.com/library/goals#g-a2f385c202c9) no test yet · complex
- [Open the page (edit)](https://featkpr.com/library/goals#g-eb8af7250e8e) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0720c6f54bd8)

- [/ → /books/{bookSlug}/draft/{pageId}](https://featkpr.com/library/flows#fl-2617f0527cd5) 2 screens · drafted in words
- [/ → … → /books/{bookSlug}/chapter/{chapterSlug}/create-page → /books/{bookSlug}/draft/{pageId}](https://featkpr.com/library/flows#fl-363d15a6d95a) 4 screens
- [/ → /books/{bookSlug}/page/{pageSlug}](https://featkpr.com/library/flows#fl-3b5944c6b72b) 2 screens
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/edit](https://featkpr.com/library/flows#fl-abe74e6877a5) 3 screens

#### Convert a book to a shelf

BookStack · Entities a screen found by the crawl 2 screens found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/edit`

goals kept on its routes

- [Open the chapter (edit)](https://featkpr.com/library/goals#g-b707fcfa6584) no test yet · moderate
- [Update the chapter](https://featkpr.com/library/goals#g-a18385a55671) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-3ab16e5a944a)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/edit](https://featkpr.com/library/flows#fl-459a3e0aa5ee) 3 screens
- [/ → … → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/edit](https://featkpr.com/library/flows#fl-86af1d6ac5da) 4 screens

#### Convert a chapter to a book

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Copy a book

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /books/{bookSlug}/copy`

goals kept on its routes

- [Open the book (show copy)](https://featkpr.com/library/goals#g-78a97e7b131e) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-3c24a92b89bd)

- [/ → /books/{slug} → /books/{bookSlug}/copy](https://featkpr.com/library/flows#fl-16c1a4a71aea) 3 screens · drafted in words

#### Copy a chapter

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/copy`

goals kept on its routes

- [Open the chapter (show copy)](https://featkpr.com/library/goals#g-ec83228a9ecc) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-1cdd2ced0d35)

- [/ → … → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/copy](https://featkpr.com/library/flows#fl-fbb2d3bbba36) 4 screens · drafted in words
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/copy](https://featkpr.com/library/flows#fl-9fb973cf1159) 3 screens

#### Copy a page

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/copy`

goals kept on its routes

- [Open the page (show copy)](https://featkpr.com/library/goals#g-b61a97773f9b) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-419d637ea4ca)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/copy](https://featkpr.com/library/flows#fl-8d290f250df9) 3 screens · drafted in words

#### Copy shelf permissions to its books

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /shelves/{slug}/permissions`

goals kept on its routes

- [Open the permissions (show for shelf)](https://featkpr.com/library/goals#g-f756e6dd5e1d) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-367bc7203980)

- [/ → … → /shelves/{slug} → /shelves/{slug}/permissions](https://featkpr.com/library/flows#fl-22f52e8b9a88) 4 screens
- [/ → /shelves/{slug} → /shelves/{slug}/permissions](https://featkpr.com/library/flows#fl-4bb2c7ccd79d) 3 screens

#### Create a bookshelf

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /create-shelf`

goals kept on its routes

- [Create a bookshelf](https://featkpr.com/library/goals#g-8ed27ce40d7e) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0e71e5e680be)

- [/ → /shelves → /create-shelf](https://featkpr.com/library/flows#fl-8dc4ee830c02) 3 screens

#### Create a chapter

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /books/{bookSlug}/create-chapter`

goals kept on its routes

- [Create a chapter](https://featkpr.com/library/goals#g-6a62ef55b4e6) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-15dda6fc10b9)

- [/ → /books/{slug} → /books/{bookSlug}/create-chapter](https://featkpr.com/library/flows#fl-e6bfc6a1123f) 3 screens · drafted in words

#### Create a page

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Delete a book

BookStack · Entities a screen found by the crawl 1 screen found

part of 2 goals · 1 flow ends here

its routes; the links below are by route

`GET /books/{slug}/delete`

goals kept on its routes

- [Delete the book](https://featkpr.com/library/goals#g-fcb9559edccd) no test yet · complex
- [Open the book (show delete)](https://featkpr.com/library/goals#g-1a905aef1d82) no test yet · simple

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-05f8a1889f45)

- [/ → /books/{slug} → /books/{slug}/delete](https://featkpr.com/library/flows#fl-38d734dad3af) 3 screens

#### Delete a bookshelf

BookStack · Entities a screen found by the crawl 1 screen found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /shelves/{slug}/delete`

goals kept on its routes

- [Delete the bookshelf](https://featkpr.com/library/goals#g-9171540e1074) no test yet · complex
- [Open the bookshelf (show delete)](https://featkpr.com/library/goals#g-cb9e9ba3fc0f) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0303ed8e67cf)

- [/ → … → /shelves/{slug} → /shelves/{slug}/delete](https://featkpr.com/library/flows#fl-37b16a54b43b) 4 screens
- [/ → /shelves/{slug} → /shelves/{slug}/delete](https://featkpr.com/library/flows#fl-85a544991328) 3 screens

#### Delete a chapter

BookStack · Entities a screen found by the crawl 1 screen found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/delete`

goals kept on its routes

- [Delete the chapter](https://featkpr.com/library/goals#g-b8a1bc9a57f6) no test yet · complex
- [Open the chapter (show delete)](https://featkpr.com/library/goals#g-a8afe4fa9ebf) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-2b963a676e2b)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/delete](https://featkpr.com/library/flows#fl-d4a203bbf37b) 3 screens
- [/ → … → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/delete](https://featkpr.com/library/flows#fl-5e1f22123dcb) 4 screens

#### Delete a page

BookStack · Entities a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/delete`

goals kept on its routes

- [Open the page (show delete)](https://featkpr.com/library/goals#g-f06f4146eccd) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0de6597a2525)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/delete](https://featkpr.com/library/flows#fl-d51c904b20dd) 3 screens · drafted in words

#### Delete a page revision

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit book details

BookStack · Entities a screen found by the crawl 1 screen found

part of 2 goals · 1 flow ends here

its routes; the links below are by route

`GET /books/{slug}/edit`

goals kept on its routes

- [Open the book (edit)](https://featkpr.com/library/goals#g-e4b3dfc303cb) no test yet · simple
- [Update the book](https://featkpr.com/library/goals#g-4ba7922037f4) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-2d96ec47136a)

- [/ → /books/{slug} → /books/{slug}/edit](https://featkpr.com/library/flows#fl-52786a67b5d5) 3 screens · drafted in words

#### Edit bookshelf details

BookStack · Entities a screen found by the crawl 1 screen found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /shelves/{slug}/edit`

goals kept on its routes

- [Open the bookshelf (edit)](https://featkpr.com/library/goals#g-2f9f684e1194) no test yet · moderate
- [Update the bookshelf](https://featkpr.com/library/goals#g-42c8e456cdf2) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0e7e34a86ebf)

- [/ → … → /shelves/{slug} → /shelves/{slug}/edit](https://featkpr.com/library/flows#fl-f176378411fd) 4 screens
- [/ → /shelves/{slug} → /shelves/{slug}/edit](https://featkpr.com/library/flows#fl-fe83d94e7b2e) 3 screens

#### Edit chapter details

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit page content

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Export content as PDF/HTML/text/markdown/zip

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Guest create page shortcut

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Import content from a zip file

BookStack · Entities a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /import`

goals kept on its routes

- [Open the import (start)](https://featkpr.com/library/goals#g-515bff08b61f) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-09350f839d3c)

- [/ → /books → /import](https://featkpr.com/library/flows#fl-9c7225186e5a) 3 screens

#### Insert a drawing into a page

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Insert a link into a page

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Insert an image into a page

- BookStack · Entities a screen found by the crawl 4 screens found no goal is kept on its routes and no flow ends here yet

#### Manage the recycle bin (view, restore, delete permanently)

BookStack · Entities a screen found by the crawl 3 screens found

part of 3 goals · 3 flows end here

its routes; the links below are by route

`GET /settings/recycle-bin` `GET /settings/recycle-bin/{id}/destroy` `GET /settings/recycle-bin/{id}/restore`

goals kept on its routes

- [Open the recycle bin (index)](https://featkpr.com/library/goals#g-89ebe885c117) no test yet · moderate
- [Open the recycle bin (show destroy)](https://featkpr.com/library/goals#g-cea8364b72f7) no test yet · moderate
- [Open the recycle bin (show restore)](https://featkpr.com/library/goals#g-050a8e44a8c2) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-330977d3b669)

- [/ → … → /settings/maintenance → /settings/recycle-bin](https://featkpr.com/library/flows#fl-206bf8928f92) 5 screens · drafted in words
- [/ → … → /settings/recycle-bin → /settings/recycle-bin/{id}/destroy](https://featkpr.com/library/flows#fl-6e2d3c9f8cc6) 6 screens
- [/ → … → /settings/recycle-bin → /settings/recycle-bin/{id}/restore](https://featkpr.com/library/flows#fl-662bb7d1a764) 6 screens

#### Mark/create a page as a template

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Move a chapter between books

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/move`

goals kept on its routes

- [Open the chapter (show move)](https://featkpr.com/library/goals#g-506286a8a35f) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-121da0174927)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/move](https://featkpr.com/library/flows#fl-3682bcceeee1) 3 screens
- [/ → … → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/move](https://featkpr.com/library/flows#fl-e0f0e4a9c041) 4 screens

#### Move a page between chapters/books

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/move`

goals kept on its routes

- [Open the page (show move)](https://featkpr.com/library/goals#g-b046582e7fe8) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-25264bccb346)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/move](https://featkpr.com/library/flows#fl-08249875646b) 3 screens

#### Restore a previous page revision

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Save/manage page drafts

- BookStack · Entities a screen found by the crawl 3 screens found no goal is kept on its routes and no flow ends here yet

#### Search content with advanced filters

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /search`

goals kept on its routes

- [Open the search (search)](https://featkpr.com/library/goals#g-1181d0f65325) no test yet · hard

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0a626cffa342)

- [/ → /search](https://featkpr.com/library/flows#fl-f8f79beac113) 2 screens

#### Set entity permissions (books, chapters, pages, shelves)

BookStack · Entities a screen found by the crawl 4 screens found

part of 3 goals · 5 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/permissions` `GET /books/{bookSlug}/permissions` `GET /books/{bookSlug}/chapter/{chapterSlug}/permissions`

goals kept on its routes

- [Open the permissions (show for page)](https://featkpr.com/library/goals#g-71dfd968805f) no test yet · moderate
- [Open the permissions (show for book)](https://featkpr.com/library/goals#g-6684c3c4ce33) no test yet · complex
- [Open the permissions (show for chapter)](https://featkpr.com/library/goals#g-eb2753065beb) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-149fac0bb071)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/permissions](https://featkpr.com/library/flows#fl-be2260a9a0a4) 3 screens
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/permissions](https://featkpr.com/library/flows#fl-0eedc08eef3b) 3 screens
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/permissions](https://featkpr.com/library/flows#fl-fb172cfb08ba) 3 screens
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/permissions](https://featkpr.com/library/flows#fl-da759dbab0e6) 3 screens
- [/ → … → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/permissions](https://featkpr.com/library/flows#fl-4d17a6519fb1) 4 screens

#### Sort/reorder book contents

BookStack · Entities a screen found by the crawl 1 screen found

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/sort`

goals kept on its routes

- [Open the book sort (show)](https://featkpr.com/library/goals#g-6af910b0bacb) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-10851561f5bb)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/sort](https://featkpr.com/library/flows#fl-1c2e3a0cc498) 3 screens
- [/ → /books/{slug} → /books/{bookSlug}/sort](https://featkpr.com/library/flows#fl-db3b07d68c5d) 3 screens

#### Switch between Markdown and WYSIWYG editors

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Toggle page/book sidebar view

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Use markdown editor with live preview

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View and manage page attachments

- BookStack · Entities a screen found by the crawl 4 screens found no goal is kept on its routes and no flow ends here yet

#### View and manage tags on content

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View content owner/creator metadata

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View page pointer/permalink options

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View page table of contents

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View paginated detailed listing of entities

- BookStack · Entities a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View recent/personal activity dashboard

BookStack · Entities a screen found by the crawl 3 screens found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /pages/recently-updated` `GET /user/{slug}`

goals kept on its routes

- [Open the page (show recently updated)](https://featkpr.com/library/goals#g-802598adbde8) no test yet · complex
- [Open the user profile (show)](https://featkpr.com/library/goals#g-8f7983675880) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0e0d39c9c9f0)

- [/ → /pages/recently-updated](https://featkpr.com/library/flows#fl-6b7cb6124415) 2 screens
- [/ → /user/{slug}](https://featkpr.com/library/flows#fl-fc45ed9205f0) 2 screens

#### Watch/follow content for notifications

- BookStack · Entities a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Align and style content

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create a book from a chapter

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create a bookshelf from an existing book

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Delete a comment

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Edit a comment

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Format text (bold, italic, underline, etc.)

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert and format a table

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert callout box

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert code block

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert collapsible/toggle block

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert horizontal line

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Insert media (video/audio) into a page

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Preview and edit source code of page

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Restore a deleted page

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Search within a book

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Set default page template for a book/chapter

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Use fullscreen editing mode

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### View editor keyboard shortcuts

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### View editor licensing/about info

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### View entity references (linked pages)

- BookStack · Entities found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### DELETE /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/delete

BookStack · Entities proven by the wrong-user check no screen found · 8 tests written, 8 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`DELETE /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/delete`

goals kept on its routes

- [Delete the revision](https://featkpr.com/library/goals#g-6bbea474dbff) proven · moderate

#### POST /api/books

BookStack · Entities proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /api/books`

goals kept on its routes

- [Create a book](https://featkpr.com/library/goals#g-ead918c6c12e) passed, not proven · complex

#### POST /books

BookStack · Entities proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /books`

goals kept on its routes

- [Create a book](https://featkpr.com/library/goals#g-ead918c6c12e) passed, not proven · complex

#### POST /books/{bookSlug}/chapter/{chapterSlug}/convert-to-book

BookStack · Entities proven by the wrong-user check no screen found · 16 tests written, 16 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /books/{bookSlug}/chapter/{chapterSlug}/convert-to-book`

goals kept on its routes

- [Create a book (from chapter)](https://featkpr.com/library/goals#g-f16d27f55d43) proven · complex

#### POST /books/{bookSlug}/convert-to-shelf

BookStack · Entities proven by the wrong-user check no screen found · 32 tests written, 32 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /books/{bookSlug}/convert-to-shelf`

goals kept on its routes

- [Create a bookshelf (from book)](https://featkpr.com/library/goals#g-9cee88951fb1) proven · complex

#### POST /books/{bookSlug}/copy

BookStack · Entities proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /books/{bookSlug}/copy`

goals kept on its routes

- [Create a book](https://featkpr.com/library/goals#g-ead918c6c12e) passed, not proven · complex

#### POST /shelves/{shelfSlug}/create-book

BookStack · Entities proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /shelves/{shelfSlug}/create-book`

goals kept on its routes

- [Create a book](https://featkpr.com/library/goals#g-ead918c6c12e) passed, not proven · complex

#### PUT /books/{bookSlug}/page/{pageSlug}

BookStack · Entities proven by the wrong-user check no screen found · 1 test written, 1 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`PUT /books/{bookSlug}/page/{pageSlug}`

goals kept on its routes

- [Update the page](https://featkpr.com/library/goals#g-704953132867) proven · complex

#### PUT /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/restore

BookStack · Entities proven by the wrong-user check no screen found · 8 tests written, 8 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`PUT /books/{bookSlug}/page/{pageSlug}/revisions/{revId}/restore`

goals kept on its routes

- [Restore the page](https://featkpr.com/library/goals#g-28fb95b3a581) proven · moderate

#### Assign granular permissions to a role

BookStack · Settings proven by the wrong-user check 2 screens found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/roles`

goals kept on its routes

- [Open the role (index)](https://featkpr.com/library/goals#g-2d238b2e140c) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0dd5b2f5857b)

- [/ → … → /settings/{category} → /settings/roles](https://featkpr.com/library/flows#fl-59744c1bede4) 4 screens

#### Create and manage user roles

BookStack · Settings proven by the wrong-user check 2 screens found · 4 tests written, 4 proven by the wrong-user check

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /settings/roles/new` `GET /settings/roles/{id}`

goals kept on its routes

- [Open the role (create)](https://featkpr.com/library/goals#g-da40cf9edd82) proven · moderate
- [Open the role (edit)](https://featkpr.com/library/goals#g-e0794ad9d7e3) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0b882f1290c2)

- [/ → … → /settings/roles → /settings/roles/new](https://featkpr.com/library/flows#fl-8828c2a92996) 5 screens
- [/ → … → /settings/roles → /settings/roles/{id}](https://featkpr.com/library/flows#fl-a74ff394155c) 5 screens

#### Delete a role

BookStack · Settings proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/roles/delete/{id}`

goals kept on its routes

- [Open the role (show delete)](https://featkpr.com/library/goals#g-bcc597e7ce1f) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-2a3d7fda862c)

- [/ → … → /settings/roles/{id} → /settings/roles/delete/{id}](https://featkpr.com/library/flows#fl-2fb458787dec) 6 screens

#### Delete a user account

BookStack · Settings proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/users/{id}/delete`

goals kept on its routes

- [Open the user (delete)](https://featkpr.com/library/goals#g-432961de9830) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-04fd46c0cea7)

- [/ → … → /settings/users/{id} → /settings/users/{id}/delete](https://featkpr.com/library/flows#fl-7afbe87edf88) 5 screens

#### Edit user details

BookStack · Settings proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/users/{id}`

goals kept on its routes

- [Open the user (edit)](https://featkpr.com/library/goals#g-60c792dfe8d8) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-1bda1e543e14)

- [/ → … → /my-account/profile → /settings/users/{id}](https://featkpr.com/library/flows#fl-2cf0740f97c1) 4 screens · drafted in words

#### View list of registered users

BookStack · Settings proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/users/create`

goals kept on its routes

- [Open the user (create)](https://featkpr.com/library/goals#g-c48742b0b697) proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-07183bbe87aa)

- [/ → … → /settings/users → /settings/users/create](https://featkpr.com/library/flows#fl-e3f9358db8bf) 5 screens

#### Add custom head/body HTML

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Allow public (guest) access to content

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Choose color scheme for content types

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Choose default page editor

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Clean up unused images

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Configure operations within a sorting rule

- BookStack · Settings a screen found by the crawl 3 screens found no goal is kept on its routes and no flow ends here yet

#### Configure page/content sorting limits

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Configure user's multi-factor authentication

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Configure webhook endpoint URL

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Create a custom sorting rule

BookStack · Settings a screen found by the crawl 1 screen found

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /settings/sorting/rules/new`

goals kept on its routes

- [Open the sort rule (create)](https://featkpr.com/library/goals#g-e4598e24a922) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-1f9f37bcda36)

- [/ → … → /books/{bookSlug}/sort → /settings/sorting/rules/new](https://featkpr.com/library/flows#fl-586eb8d25950) 4 screens
- [/ → … → /books/{bookSlug}/sort → /settings/sorting/rules/new](https://featkpr.com/library/flows#fl-ca8e17d3125d) 4 screens

#### Create a new user account

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Create a webhook

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Create API token for a user

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Delete a sorting rule

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Delete a user API token

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Delete a webhook

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit a sorting rule

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit a webhook

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Enable or disable a webhook

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Enable public user registration

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Enable/disable comments on pages

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Filter audit log by event type

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Manage custom footer links

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Manage user's social account connections

BookStack · Settings a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/auth`

goals kept on its routes

- [Open the user account (show auth)](https://featkpr.com/library/goals#g-3769c9846e1f) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-473a1ccd430c)

- [/ → … → /my-account/profile → /my-account/auth](https://featkpr.com/library/flows#fl-59a3e6fd1e23) 4 screens · drafted in words

#### Migrate ownership of user's content

BookStack · Settings a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/delete`

goals kept on its routes

- [Open the user account (delete)](https://featkpr.com/library/goals#g-75b07e2011b8) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-b1cabfde8429)

- [/ → … → /my-account/profile → /my-account/delete](https://featkpr.com/library/flows#fl-be97ecfc9312) 4 screens

#### Name a webhook

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Permanently delete items from recycle bin

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Regenerate content references/search index

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Require email confirmation for new users

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Require secure image restrictions

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Reset a user's multi-factor authentication

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Restore items from recycle bin

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Restrict registration to email domains

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Select events that trigger a webhook

- BookStack · Settings a screen found by the crawl 3 screens found no goal is kept on its routes and no flow ends here yet

#### Send invitation email to set up account

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Send test email to verify mail settings

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set a user's password

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Set a user's role

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Set API token expiry date

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Set application icon/favicon

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set application logo

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set application name

BookStack · Settings a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/{category}`

goals kept on its routes

- [Open the setting (category)](https://featkpr.com/library/goals#g-ac0e7c39e9f5) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-a23a0215d181)

- [/ → /settings → /settings/{category}](https://featkpr.com/library/flows#fl-352fabf5ebdc) 3 screens

#### Set default book content sort order

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set default role for new registrations

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set external authentication ID for a user

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Set homepage content

BookStack · Settings a screen found by the crawl 1 screen found

2 flows end here

its routes; the links below are by route

`GET /home`

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-26371dc759e2)

- [/login → /](https://featkpr.com/library/flows#fl-67221234643f) 2 screens
- [/login → /](https://featkpr.com/library/flows#fl-eca3884bff7a) 2 screens

#### Set user's avatar image

BookStack · Settings a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/profile`

goals kept on its routes

- [Open the user account (show profile)](https://featkpr.com/library/goals#g-9a7eefd55b4e) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-8c101026dcf5)

- [/ → /my-account → /my-account/profile](https://featkpr.com/library/flows#fl-27a884d2c857) 3 screens

#### Set webhook request timeout

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View app customization settings page

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View audit log entry details

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View audit log of user activity

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View example webhook payload format

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View features & security settings page

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View license and attribution info

BookStack · Settings a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /licenses`

goals kept on its routes

- [Open the meta (licenses)](https://featkpr.com/library/goals#g-fba91ca54585) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-300d579a17eb)

- [/ → … → /settings/{category} → /licenses](https://featkpr.com/library/flows#fl-df21a53e5dc9) 4 screens

#### View list of a user's API tokens

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View maintenance settings page

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View recycle bin of deleted items

BookStack · Settings a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/maintenance`

goals kept on its routes

- [Open the maintenance (index)](https://featkpr.com/library/goals#g-1c5259424c7a) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-47ce41eb926d)

- [/ → … → /settings/{category} → /settings/maintenance](https://featkpr.com/library/flows#fl-a4322d5555f1) 4 screens

#### View registration settings page

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View sorting settings overview

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View webhook call history and errors

- BookStack · Settings a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View webhook details page

- BookStack · Settings a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Choose application interface language

- BookStack · Settings found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Filter audit log by date range

- BookStack · Settings found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Set primary UI color

- BookStack · Settings found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Set user's preferred language

- BookStack · Settings found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### View system version information

- BookStack · Settings found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### POST /settings/maintenance/send-test-email

BookStack · Settings proven by the wrong-user check no screen found · 1 test written, 1 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /settings/maintenance/send-test-email`

goals kept on its routes

- [Run the maintenance action](https://featkpr.com/library/goals#g-53109e310d47) proven · complex

#### Import exported content

- BookStack · Exports a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Export a book

- BookStack · Exports found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Export a chapter

- BookStack · Exports found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Export a page

- BookStack · Exports found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### GET /api/books/{id}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/books/{id}/export/html`

goals kept on its routes

- [Download the book export api (export html)](https://featkpr.com/library/goals#g-84f778b81073) passed, not proven · hard

#### GET /api/books/{id}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/books/{id}/export/markdown`

goals kept on its routes

- [Download the book export api (export markdown)](https://featkpr.com/library/goals#g-6021b0cd9d07) passed, not proven · complex

#### GET /api/books/{id}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/books/{id}/export/pdf`

goals kept on its routes

- [Download the book export api (export pdf)](https://featkpr.com/library/goals#g-2209e60fcccf) passed, not proven · complex

#### GET /api/books/{id}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/books/{id}/export/plaintext`

goals kept on its routes

- [Download the book export api (export plain text)](https://featkpr.com/library/goals#g-bc72b1fbb604) passed, not proven · moderate

#### GET /api/books/{id}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/books/{id}/export/zip`

goals kept on its routes

- [Download the book export api (export zip)](https://featkpr.com/library/goals#g-0958563cd4ae) passed, not proven · complex

#### GET /api/chapters/{id}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/chapters/{id}/export/html`

goals kept on its routes

- [Download the chapter export api (export html)](https://featkpr.com/library/goals#g-9d6c32bfd016) passed, not proven · hard

#### GET /api/chapters/{id}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/chapters/{id}/export/markdown`

goals kept on its routes

- [Download the chapter export api (export markdown)](https://featkpr.com/library/goals#g-20bbdabf0bbe) passed, not proven · complex

#### GET /api/chapters/{id}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/chapters/{id}/export/pdf`

goals kept on its routes

- [Download the chapter export api (export pdf)](https://featkpr.com/library/goals#g-d994e15bba93) passed, not proven · complex

#### GET /api/chapters/{id}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/chapters/{id}/export/plaintext`

goals kept on its routes

- [Download the chapter export api (export plain text)](https://featkpr.com/library/goals#g-b2c88742b340) passed, not proven · moderate

#### GET /api/chapters/{id}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/chapters/{id}/export/zip`

goals kept on its routes

- [Download the chapter export api (export zip)](https://featkpr.com/library/goals#g-2f9fb1dd5279) passed, not proven · complex

#### GET /api/pages/{id}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/pages/{id}/export/html`

goals kept on its routes

- [Download the page export api (export html)](https://featkpr.com/library/goals#g-2c0d1a01a3c1) passed, not proven · hard

#### GET /api/pages/{id}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/pages/{id}/export/markdown`

goals kept on its routes

- [Download the page export api (export markdown)](https://featkpr.com/library/goals#g-87d21c676eaf) passed, not proven · complex

#### GET /api/pages/{id}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/pages/{id}/export/pdf`

goals kept on its routes

- [Download the page export api (export pdf)](https://featkpr.com/library/goals#g-19d67a116981) passed, not proven · complex

#### GET /api/pages/{id}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/pages/{id}/export/plaintext`

goals kept on its routes

- [Download the page export api (export plain text)](https://featkpr.com/library/goals#g-0311e2755ec8) passed, not proven · moderate

#### GET /api/pages/{id}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`GET /api/pages/{id}/export/zip`

goals kept on its routes

- [Download the page export api (export zip)](https://featkpr.com/library/goals#g-aca1c0144a2a) passed, not proven · complex

#### GET /books/{bookSlug}/chapter/{chapterSlug}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/export/html`

goals kept on its routes

- [Download the chapter export (html)](https://featkpr.com/library/goals#g-61c28fd0a02d) passed, not proven · hard

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-354aa20f06e2)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/html](https://featkpr.com/library/flows#fl-f3f60977e9c7) 3 screens · drafted in words
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/html](https://featkpr.com/library/flows#fl-720c340870d1) 3 screens

#### GET /books/{bookSlug}/chapter/{chapterSlug}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/export/markdown`

goals kept on its routes

- [Download the chapter export (markdown)](https://featkpr.com/library/goals#g-28e1db7042dc) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-a817983d27c6)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/markdown](https://featkpr.com/library/flows#fl-431950269f11) 3 screens · drafted in words
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/markdown](https://featkpr.com/library/flows#fl-94f2ebb3e62c) 3 screens · drafted in words

#### GET /books/{bookSlug}/chapter/{chapterSlug}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/export/pdf`

goals kept on its routes

- [Download the chapter export (pdf)](https://featkpr.com/library/goals#g-a1e3abea79b8) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-f77273ff6cd5)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/pdf](https://featkpr.com/library/flows#fl-0b41c5142be5) 3 screens · drafted in words
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/pdf](https://featkpr.com/library/flows#fl-207af3bfaa1e) 3 screens · drafted in words

#### GET /books/{bookSlug}/chapter/{chapterSlug}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/export/plaintext`

goals kept on its routes

- [Download the chapter export (plain text)](https://featkpr.com/library/goals#g-c73ec0345c3f) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-cb162caf364b)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/plaintext](https://featkpr.com/library/flows#fl-84d53098311d) 3 screens
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/plaintext](https://featkpr.com/library/flows#fl-af332ca4fab9) 3 screens

#### GET /books/{bookSlug}/chapter/{chapterSlug}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/chapter/{chapterSlug}/export/zip`

goals kept on its routes

- [Download the chapter export (zip)](https://featkpr.com/library/goals#g-0a7c50191e2f) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-7c09a47054e4)

- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/zip](https://featkpr.com/library/flows#fl-20c68a313272) 3 screens · drafted in words
- [/ → /books/{bookSlug}/chapter/{chapterSlug} → /books/{bookSlug}/chapter/{chapterSlug}/export/zip](https://featkpr.com/library/flows#fl-efb994fecb2c) 3 screens · drafted in words

#### GET /books/{bookSlug}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/export/html`

goals kept on its routes

- [Download the book export (html)](https://featkpr.com/library/goals#g-37b3274ecc8c) passed, not proven · hard

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-fb9828c0f8a2)

- [/ → /books/{slug} → /books/{bookSlug}/export/html](https://featkpr.com/library/flows#fl-5a383d72ba63) 3 screens · drafted in words
- [/ → /books/{slug} → /books/{bookSlug}/export/html](https://featkpr.com/library/flows#fl-cd5c045d3d7d) 3 screens · drafted in words

#### GET /books/{bookSlug}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/export/markdown`

goals kept on its routes

- [Download the book export (markdown)](https://featkpr.com/library/goals#g-7eda797fc28e) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-ec8ea77be6a2)

- [/ → /books/{slug} → /books/{bookSlug}/export/markdown](https://featkpr.com/library/flows#fl-720ae4a8d821) 3 screens · drafted in words
- [/ → /books/{slug} → /books/{bookSlug}/export/markdown](https://featkpr.com/library/flows#fl-ce7d3a91235c) 3 screens · drafted in words

#### GET /books/{bookSlug}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/export/pdf`

goals kept on its routes

- [Download the book export (pdf)](https://featkpr.com/library/goals#g-0c5b6486e1de) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-b7c9fd9134c4)

- [/ → /books/{slug} → /books/{bookSlug}/export/pdf](https://featkpr.com/library/flows#fl-3a371c3b9791) 3 screens · drafted in words
- [/ → /books/{slug} → /books/{bookSlug}/export/pdf](https://featkpr.com/library/flows#fl-5ae32880f6cf) 3 screens · drafted in words

#### GET /books/{bookSlug}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/export/plaintext`

goals kept on its routes

- [Download the book export (plain text)](https://featkpr.com/library/goals#g-97dc61cc5f81) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-7424318df57a)

- [/ → /books/{slug} → /books/{bookSlug}/export/plaintext](https://featkpr.com/library/flows#fl-7d3a7d645330) 3 screens · drafted in words
- [/ → /books/{slug} → /books/{bookSlug}/export/plaintext](https://featkpr.com/library/flows#fl-b22b0bfb7a4f) 3 screens · drafted in words

#### GET /books/{bookSlug}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/export/zip`

goals kept on its routes

- [Download the book export (zip)](https://featkpr.com/library/goals#g-b6898079a8cb) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-964baf653d73)

- [/ → /books/{slug} → /books/{bookSlug}/export/zip](https://featkpr.com/library/flows#fl-84c71b6760e0) 3 screens · drafted in words
- [/ → /books/{slug} → /books/{bookSlug}/export/zip](https://featkpr.com/library/flows#fl-a6f36c4aa6f2) 3 screens · drafted in words

#### GET /books/{bookSlug}/page/{pageSlug}/export/html

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/export/html`

goals kept on its routes

- [Download the page export (html)](https://featkpr.com/library/goals#g-a9486209bc14) passed, not proven · hard

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-5958ca8761df)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/html](https://featkpr.com/library/flows#fl-2a57421d8eca) 3 screens · drafted in words
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/html](https://featkpr.com/library/flows#fl-ce781e4a4225) 3 screens · drafted in words

#### GET /books/{bookSlug}/page/{pageSlug}/export/markdown

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/export/markdown`

goals kept on its routes

- [Download the page export (markdown)](https://featkpr.com/library/goals#g-2cbdec438cd3) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-3d35822e924c)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/markdown](https://featkpr.com/library/flows#fl-e8fd4be27531) 3 screens · drafted in words
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/markdown](https://featkpr.com/library/flows#fl-f7b766ad87cd) 3 screens · drafted in words

#### GET /books/{bookSlug}/page/{pageSlug}/export/pdf

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/export/pdf`

goals kept on its routes

- [Download the page export (pdf)](https://featkpr.com/library/goals#g-9410f834cdea) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-a9f99297dbc5)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/pdf](https://featkpr.com/library/flows#fl-470bcb796241) 3 screens · drafted in words
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/pdf](https://featkpr.com/library/flows#fl-ea80617b9e60) 3 screens · drafted in words

#### GET /books/{bookSlug}/page/{pageSlug}/export/plaintext

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/export/plaintext`

goals kept on its routes

- [Download the page export (plain text)](https://featkpr.com/library/goals#g-976dd4f3b9d6) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-b766fa0066cf)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/plaintext](https://featkpr.com/library/flows#fl-35475e3279f5) 3 screens · drafted in words
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/plaintext](https://featkpr.com/library/flows#fl-506c47cd0b68) 3 screens · drafted in words

#### GET /books/{bookSlug}/page/{pageSlug}/export/zip

BookStack · Exports proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 2 flows end here

its routes; the links below are by route

`GET /books/{bookSlug}/page/{pageSlug}/export/zip`

goals kept on its routes

- [Download the page export (zip)](https://featkpr.com/library/goals#g-25a2bd301b67) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-4edab85a331b)

- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/zip](https://featkpr.com/library/flows#fl-5f7cf504b592) 3 screens · drafted in words
- [/ → /books/{bookSlug}/page/{pageSlug} → /books/{bookSlug}/page/{pageSlug}/export/zip](https://featkpr.com/library/flows#fl-b814c0863429) 3 screens · drafted in words

#### View audit log of system activity

BookStack · Activity proven by the wrong-user check 2 screens found · 4 tests written, 4 proven by the wrong-user check

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /favourites` `GET /settings/audit`

goals kept on its routes

- [Open the favourite (index)](https://featkpr.com/library/goals#g-2d356190c87b) no test yet · moderate
- [Open the audit log (index)](https://featkpr.com/library/goals#g-ad41c70bc697) proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-a8393b3d1fee)

- [/ → /favourites](https://featkpr.com/library/flows#fl-31518bd13248) 2 screens · drafted in words
- [/ → … → /settings/{category} → /settings/audit](https://featkpr.com/library/flows#fl-382e40a1429b) 4 screens · drafted in words

#### Browse tags

BookStack · Activity a screen found by the crawl 1 screen found

part of 1 goal · 3 flows end here

its routes; the links below are by route

`GET /tags`

goals kept on its routes

- [Open the tag (index)](https://featkpr.com/library/goals#g-d2dfc5b4097a) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-bc6f2be84627)

- [/ → /books → /tags](https://featkpr.com/library/flows#fl-f7ce61861b04) 3 screens
- [/ → /books → /tags](https://featkpr.com/library/flows#fl-f8d506e545cd) 3 screens
- [/login → /books → /tags](https://featkpr.com/library/flows#fl-c37b6edea190) 3 screens

#### Create, edit and delete webhooks

BookStack · Activity a screen found by the crawl 4 screens found

part of 4 goals · 4 flows end here

its routes; the links below are by route

`GET /settings/webhooks` `GET /settings/webhooks/create` `GET /settings/webhooks/{id}` `GET /settings/webhooks/{id}/delete`

goals kept on its routes

- [Open the webhook (index)](https://featkpr.com/library/goals#g-8fed4f8de332) no test yet · complex
- [Open the webhook (create)](https://featkpr.com/library/goals#g-a5db1c50e135) no test yet · moderate
- [Open the webhook (edit)](https://featkpr.com/library/goals#g-e8d789289cbb) no test yet · moderate
- [Open the webhook (delete)](https://featkpr.com/library/goals#g-a220b1a8349f) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0035237bc138)

- [/ → … → /settings/{category} → /settings/webhooks](https://featkpr.com/library/flows#fl-399db856210f) 4 screens · drafted in words
- [/ → … → /settings/webhooks → /settings/webhooks/create](https://featkpr.com/library/flows#fl-523cde9b87ec) 5 screens
- [/ → … → /settings/webhooks → /settings/webhooks/{id}](https://featkpr.com/library/flows#fl-f61d151b0c61) 5 screens
- [/ → … → /settings/webhooks/{id} → /settings/webhooks/{id}/delete](https://featkpr.com/library/flows#fl-14aadea1d735) 6 screens

#### Comment on content

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage books

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage bookshelf sort rules

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage bookshelves

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage chapters

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage pages

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage user accounts

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Create and manage user roles

BookStack · Activity found in the code only no screen found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /settings/roles/new` `GET /settings/roles/{id}`

goals kept on its routes

- [Open the role (create)](https://featkpr.com/library/goals#g-da40cf9edd82) proven · moderate
- [Open the role (edit)](https://featkpr.com/library/goals#g-e0794ad9d7e3) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0b882f1290c2)

- [/ → … → /settings/roles → /settings/roles/new](https://featkpr.com/library/flows#fl-8828c2a92996) 5 screens
- [/ → … → /settings/roles → /settings/roles/{id}](https://featkpr.com/library/flows#fl-a74ff394155c) 5 screens

#### Delete and restore page revisions

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Favourite content items

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Manage API tokens

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Manage recycle bin (restore, destroy, empty)

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Receive notifications for watched content

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Reset a user's multi-factor authentication

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Run maintenance actions

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Set up and remove multi-factor authentication

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Track content import activity

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Track login and registration activity

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Track password reset requests

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Update content permissions

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Update system settings

- BookStack · Activity found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### GET /api/audit-log

BookStack · Activity proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /api/audit-log`

goals kept on its routes

- [Open the audit log api (list)](https://featkpr.com/library/goals#g-3f34c159111e) passed, not proven · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-9b0e3d483fb0)

- [/ → … → /api/docs → /api/audit-log](https://featkpr.com/library/flows#fl-193a117ded6a) 6 screens

#### POST /api/comments

BookStack · Activity proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /api/comments`

goals kept on its routes

- [Comment on the page](https://featkpr.com/library/goals#g-930c689412df) passed, not proven · moderate

#### POST /comment/{pageId}

BookStack · Activity proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /comment/{pageId}`

goals kept on its routes

- [Comment on the page](https://featkpr.com/library/goals#g-930c689412df) passed, not proven · moderate

#### PUT /watching/update

- BookStack · Activity proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### Create a new user

BookStack · Users proven by the wrong-user check 2 screens found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/users`

goals kept on its routes

- [Open the user (index)](https://featkpr.com/library/goals#g-c9a1b608a7d4) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-26bceb213d5a)

- [/ → … → /settings/{category} → /settings/users](https://featkpr.com/library/flows#fl-4c2000037d22) 4 screens · drafted in words

#### Manage notification preferences

BookStack · Users proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/notifications`

goals kept on its routes

- [Open the user account (show notifications)](https://featkpr.com/library/goals#g-3727190f95ed) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0720d8c1c141)

- [/ → … → /my-account/profile → /my-account/notifications](https://featkpr.com/library/flows#fl-9b6d1f55f2ed) 4 screens · drafted in words

#### Change account password

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Customize dashboard layout

BookStack · Users a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /layouts/{location}`

goals kept on its routes

- [Open the layout (edit)](https://featkpr.com/library/goals#g-29074db5b4fd) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-18a817c1d99a)

- [/ → … → /my-account/interface → /layouts/{location}](https://featkpr.com/library/flows#fl-420754379331) 5 screens

#### Customize keyboard shortcuts

- BookStack · Users a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Delete a user

- BookStack · Users a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Delete own account

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit a user's account

- BookStack · Users a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Edit profile information (name, email, avatar)

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Manage user roles and permissions

- BookStack · Users a screen found by the crawl 4 screens found no goal is kept on its routes and no flow ends here yet

#### Manage watched pages notifications

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set interface display mode

BookStack · Users a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/interface`

goals kept on its routes

- [Open the user account (show interface)](https://featkpr.com/library/goals#g-9c523b00d371) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-784f95d0f187)

- [/ → … → /my-account/profile → /my-account/interface](https://featkpr.com/library/flows#fl-d8cd82e707c8) 4 screens

#### View a user's public profile

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View account preferences overview

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View user list

- BookStack · Users a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Reset a user's multi-factor authentication

- BookStack · Users found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### DELETE /settings/roles/delete/{id}

BookStack · Users proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`DELETE /settings/roles/delete/{id}`

goals kept on its routes

- [Delete the role](https://featkpr.com/library/goals#g-9ad6d04ae974) proven · complex

#### DELETE /settings/users/{id}

BookStack · Users proven by the wrong-user check no screen found · 4 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`DELETE /settings/users/{id}`

goals kept on its routes

- [Delete the user](https://featkpr.com/library/goals#g-8da5d0738eb5) a test written · complex

#### DELETE /settings/users/{id}/mfa

BookStack · Users proven by the wrong-user check no screen found · 4 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`DELETE /settings/users/{id}/mfa`

goals kept on its routes

- [Reset the user mfa](https://featkpr.com/library/goals#g-79d9ec8068bd) a test written · moderate

#### GET /search/users/mention

- BookStack · Users proven by the wrong-user check no screen found · 4 tests written, 2 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### GET /search/users/select

- BookStack · Users proven by the wrong-user check no screen found · 8 tests written, 8 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /settings/roles/new

BookStack · Users proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /settings/roles/new`

goals kept on its routes

- [Create a role](https://featkpr.com/library/goals#g-4048dfd27de6) proven · complex

#### POST /settings/users/create

BookStack · Users proven by the wrong-user check no screen found · 1 test written, 1 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /settings/users/create`

goals kept on its routes

- [Create a user](https://featkpr.com/library/goals#g-7a19c47eb80f) proven · complex

#### PUT /my-account/notifications

- BookStack · Users proven by the wrong-user check no screen found · 4 tests written, 2 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### PUT /settings/roles/{id}

BookStack · Users proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`PUT /settings/roles/{id}`

goals kept on its routes

- [Update the role](https://featkpr.com/library/goals#g-e14d735a5d9f) proven · complex

#### PUT /settings/users/{id}

BookStack · Users proven by the wrong-user check no screen found · 4 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`PUT /settings/users/{id}`

goals kept on its routes

- [Update the user](https://featkpr.com/library/goals#g-150598514523) a test written · hard

#### POST /settings/users/{id}/reset-mfa

- BookStack · Users a test written, not proven yet no screen found · 2 tests written, 0 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### Browse image gallery

- BookStack · Uploads a screen found by the crawl 4 screens found no goal is kept on its routes and no flow ends here yet

#### Delete images

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Edit and save code snippets

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Rebuild image thumbnails

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Rename or update image name

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Replace an existing image

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Select an image for insertion

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Upload images

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View code snippet edit history

- BookStack · Uploads a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### View image details

- BookStack · Uploads a screen found by the crawl 4 screens found no goal is kept on its routes and no flow ends here yet

#### Control who can create attachments

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Control who can delete attachments

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Control who can delete images

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Control who can update attachments

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Control who can update images

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Control who can upload images

- BookStack · Uploads found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### POST /api/attachments

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 8 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /api/image-gallery

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 8 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /attachments/link

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 4 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /attachments/upload

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 4 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /images/drawio

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 6 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### POST /images/gallery

- BookStack · Uploads proven by the wrong-user check no screen found · 8 tests written, 6 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### Auto-initialize instance setup

- BookStack · Access a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Confirm email address after registration

- BookStack · Access a screen found by the crawl 3 screens found no goal is kept on its routes and no flow ends here yet

#### Invite a new user by email

- BookStack · Access a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Log in with a social account (SSO)

- BookStack · Access a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Log in with email and password

BookStack · Access a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /login`

goals kept on its routes

- [Open the login (get login)](https://featkpr.com/library/goals#g-cde26c6ed327) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-4b065f5c6b47)

- [/ → /login](https://featkpr.com/library/flows#fl-75dbcd68654f) 2 screens

#### Log out of account

BookStack · Access a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /my-account/shortcuts`

goals kept on its routes

- [Open the user account (show shortcuts)](https://featkpr.com/library/goals#g-31e7b57b1985) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-9d9d6d059616)

- [/ → … → /my-account/profile → /my-account/shortcuts](https://featkpr.com/library/flows#fl-422b76da07a9) 4 screens · drafted in words

#### Register a new account

- BookStack · Access a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Remove a two-factor authentication method

- BookStack · Access a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Reset a forgotten password

BookStack · Access a screen found by the crawl 2 screens found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /password/email`

goals kept on its routes

- [Open the forgot password (show link request form)](https://featkpr.com/library/goals#g-f0a219b5dd18) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0a76777ada61)

- [/login → /password/email](https://featkpr.com/library/flows#fl-f49d6360111e) 2 screens

#### Set up two-factor authentication via backup codes

BookStack · Access a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /mfa/backup_codes/generate`

goals kept on its routes

- [Open the mfa backup codes (generate)](https://featkpr.com/library/goals#g-7962eb99dfc6) no test yet · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-05d7f2771d4a)

- [/ → … → /mfa/setup → /mfa/backup_codes/generate](https://featkpr.com/library/flows#fl-46d288b6b5a2) 6 screens

#### Set up two-factor authentication via TOTP app

BookStack · Access a screen found by the crawl 2 screens found

part of 2 goals · 2 flows end here

its routes; the links below are by route

`GET /mfa/setup` `GET /mfa/totp/generate`

goals kept on its routes

- [Open the mfa (setup)](https://featkpr.com/library/goals#g-99cc650d8df6) no test yet · moderate
- [Open the mfa totp (generate)](https://featkpr.com/library/goals#g-bb7aa35402a7) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0debd7fc50f5)

- [/ → … → /my-account/auth → /mfa/setup](https://featkpr.com/library/flows#fl-cfffa951e936) 5 screens
- [/ → … → /mfa/setup → /mfa/totp/generate](https://featkpr.com/library/flows#fl-84aecf042643) 6 screens

#### Verify identity with two-factor authentication at login

- BookStack · Access a screen found by the crawl 2 screens found no goal is kept on its routes and no flow ends here yet

#### Log in via LDAP

- BookStack · Access found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Stay logged in with 'remember me'

- BookStack · Access found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### POST /password/email

BookStack · Access proven by the wrong-user check no screen found · 1 test written, 1 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /password/email`

goals kept on its routes

- [Request the password reset](https://featkpr.com/library/goals#g-0a4e240c398c) proven · complex

#### POST /register

BookStack · Access proven by the wrong-user check no screen found · 1 test written, 1 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /register`

goals kept on its routes

- [Sign in](https://featkpr.com/library/goals#g-4c354ed927c2) proven · hard

#### Set custom permissions on a book

- BookStack · Permissions a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set custom permissions on a chapter

- BookStack · Permissions a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set custom permissions on a page

- BookStack · Permissions a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Set custom permissions on a shelf

- BookStack · Permissions a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Create custom roles

- BookStack · Permissions found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Delete a role

BookStack · Permissions found in the code only no screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /settings/roles/delete/{id}`

goals kept on its routes

- [Open the role (show delete)](https://featkpr.com/library/goals#g-bcc597e7ce1f) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-2a3d7fda862c)

- [/ → … → /settings/roles/{id} → /settings/roles/delete/{id}](https://featkpr.com/library/flows#fl-2fb458787dec) 6 screens

#### Manage content permission restrictions for all items

- BookStack · Permissions found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Manage content permission restrictions for own items

- BookStack · Permissions found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Manage user role assignments

- BookStack · Permissions found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Update role details and permissions

- BookStack · Permissions found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### GET /permissions/form-row/{entityType}/{roleId}

- BookStack · Permissions proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### Create an API token

BookStack · Api proven by the wrong-user check 1 screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /api-tokens/{userId}/create`

goals kept on its routes

- [Open the user api token (create)](https://featkpr.com/library/goals#g-216129f86b32) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-706a85ff90e3)

- [/ → … → /my-account/auth → /api-tokens/{userId}/create](https://featkpr.com/library/flows#fl-4e5e7c4501e9) 5 screens · drafted in words

#### Delete an API token

BookStack · Api proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /api-tokens/{userId}/{tokenId}/delete`

goals kept on its routes

- [Open the user api token (delete)](https://featkpr.com/library/goals#g-cc2905cac6f2) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-643b2f658bba)

- [/ → … → /api-tokens/{userId}/{tokenId} → /api-tokens/{userId}/{tokenId}/delete](https://featkpr.com/library/flows#fl-8dbd00523be6) 6 screens · drafted in words

#### Edit an API token

BookStack · Api proven by the wrong-user check 1 screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /api-tokens/{userId}/{tokenId}`

goals kept on its routes

- [Open the user api token (edit)](https://featkpr.com/library/goals#g-2ade8e0637d0) proven · moderate

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-0c1dbdd87eba)

- [/ → … → /settings/users/{id} → /api-tokens/{userId}/{tokenId}](https://featkpr.com/library/flows#fl-4aed2b358675) 5 screens

#### View API documentation

BookStack · Api a screen found by the crawl 1 screen found

part of 1 goal · 1 flow ends here

its routes; the links below are by route

`GET /api/docs`

goals kept on its routes

- [Open the api docs (display)](https://featkpr.com/library/goals#g-492645102f90) no test yet · complex

flows that end here · [their group on the Flows board](https://featkpr.com/library/flows#b-4c20c1491de0)

- [/ → … → /my-account/auth → /api/docs](https://featkpr.com/library/flows#fl-5436d2ae0d74) 5 screens

#### Grant access to the API

- BookStack · Api found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### DELETE /api-tokens/{userId}/{tokenId}

BookStack · Api proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`DELETE /api-tokens/{userId}/{tokenId}`

goals kept on its routes

- [Delete the api token](https://featkpr.com/library/goals#g-963e6f0c8583) proven · complex

#### POST /api-tokens/{userId}/create

BookStack · Api proven by the wrong-user check no screen found · 4 tests written, 4 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`POST /api-tokens/{userId}/create`

goals kept on its routes

- [Create an api token](https://featkpr.com/library/goals#g-78ae7ec4f709) proven · complex

#### PUT /api-tokens/{userId}/{tokenId}

BookStack · Api proven by the wrong-user check no screen found · 2 tests written, 2 proven by the wrong-user check

part of 1 goal

its routes; the links below are by route

`PUT /api-tokens/{userId}/{tokenId}`

goals kept on its routes

- [Update the api token](https://featkpr.com/library/goals#g-2567ddcbe500) proven · complex

#### View references to a book

- BookStack · References a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View references to a chapter

- BookStack · References a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View references to a page

- BookStack · References a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### View references to a shelf

- BookStack · References a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Create a sort rule

- BookStack · Sorting a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Edit a sort rule

- BookStack · Sorting a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Sort books view

- BookStack · Sorting a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Delete a sort rule

- BookStack · Sorting found in the code only no screen found no goal is kept on its routes and no flow ends here yet

#### Search across all content

- BookStack · Search a screen found by the crawl 1 screen found no goal is kept on its routes and no flow ends here yet

#### Switch application theme

- BookStack · Theming a test written, not proven yet no screen found · 1 test written, 0 proven by the wrong-user check no goal is kept on its routes and no flow ends here yet

#### View and manage orphan visits

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `DELETE /rest/v{version}/visits/orphan` `GET /rest/v{version}/visits/orphan` module/Rest/src/Action/Visit/DeleteOrphanVisitsAction.php, line 16 no crawl of this app yet, so no goals or flows

#### View non-orphan visits

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/visits/non-orphan` module/Rest/src/Action/Visit/NonOrphanVisitsAction.php, line 14 no crawl of this app yet, so no goals or flows

#### View overall visit statistics

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/visits` module/Rest/src/Action/Visit/GlobalVisitsAction.php, line 16 no crawl of this app yet, so no goals or flows

#### View visit statistics for domains

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/domains/{domain}/visits` module/Rest/src/Action/Visit/DomainVisitsAction.php, line 17 no crawl of this app yet, so no goals or flows

#### View visit statistics for short URLs

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/short-urls/{shortCode}/visits` module/Rest/src/Action/Visit/ShortUrlVisitsAction.php, line 15 no crawl of this app yet, so no goals or flows

#### View visit statistics for tags

- Shlink · Visit found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/tags/{tag}/visits` module/Rest/src/Action/Visit/TagVisitsAction.php, line 14 no crawl of this app yet, so no goals or flows

#### Delete a short URL

- Shlink · ShortUrl found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `DELETE /rest/v{version}/short-urls/{shortCode}` module/Rest/src/Action/ShortUrl/DeleteShortUrlAction.php, line 17 no crawl of this app yet, so no goals or flows

#### Delete visits for a short URL

- Shlink · ShortUrl found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `DELETE /rest/v{version}/short-urls/{shortCode}/visits` module/Rest/src/Action/ShortUrl/DeleteShortUrlVisitsAction.php, line 17 no crawl of this app yet, so no goals or flows

#### Edit a short URL

- Shlink · ShortUrl found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `PATCH /rest/v{version}/short-urls/{shortCode}` module/Rest/src/Action/ShortUrl/EditShortUrlAction.php, line 20 no crawl of this app yet, so no goals or flows

#### List short URLs

- Shlink · ShortUrl found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/short-urls` `GET /rest/v{version}/short-urls/{shortCode}` module/Rest/src/Action/ShortUrl/ListShortUrlsAction.php, line 20 no crawl of this app yet, so no goals or flows

#### Shorten a URL

- Shlink · ShortUrl found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `POST /rest/v{version}/short-urls` `GET /rest/v{version}/short-urls/shorten` module/Rest/src/Action/ShortUrl/CreateShortUrlAction.php, line 13 no crawl of this app yet, so no goals or flows

#### Redirect visitors via short URL

- Shlink · Core found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /{shortCode}/track` `GET /{shortCode}` config/autoload/routes.config.php, line 88 no crawl of this app yet, so no goals or flows

#### Serve robots.txt for crawlers

- Shlink · Core found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /robots.txt` config/autoload/routes.config.php, line 80 no crawl of this app yet, so no goals or flows

#### Configure domain-level redirects

- Shlink · Domain found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `PATCH /rest/v{version}/domains/redirects` module/Rest/src/Action/Domain/DomainRedirectsAction.php, line 18 no crawl of this app yet, so no goals or flows

#### List domains

- Shlink · Domain found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/domains` module/Rest/src/Action/Domain/ListDomainsAction.php, line 18 no crawl of this app yet, so no goals or flows

#### Check service health status

- Shlink · Rest found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/health` module/Rest/src/Action/HealthAction.php, line 20 no crawl of this app yet, so no goals or flows

#### Enable real-time update notifications

- Shlink · Rest found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/mercure-info` module/Rest/src/Action/MercureInfoAction.php, line 18 no crawl of this app yet, so no goals or flows

#### Manage tags

- Shlink · Tag found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `DELETE /rest/v{version}/tags` `GET /rest/v{version}/tags` `PUT /rest/v{version}/tags` module/Rest/src/Action/Tag/DeleteTagsAction.php, line 16 no crawl of this app yet, so no goals or flows

#### View tag usage statistics

- Shlink · Tag found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/tags/stats` module/Rest/src/Action/Tag/TagsStatsAction.php, line 18 no crawl of this app yet, so no goals or flows

#### Configure redirect rules for a short URL

- Shlink · RedirectRule found in the code only read from the code 24 Sep 2026, 00:15 UTC · commit 4a8fee47 `GET /rest/v{version}/short-urls/{shortCode}/redirect-rules` `PATCH /rest/v{version}/short-urls/{shortCode}/redirect-rules` `POST /rest/v{version}/short-urls/{shortCode}/redirect-rules` module/Rest/src/Action/RedirectRule/ListRedirectRulesAction.php, line 18 no crawl of this app yet, so no goals or flows

## Want your app in the library?

Name it in the demo form. We read each request and write back; the walkthrough is on BookStack.

[Ask for a private demo](https://featkpr.com/demo)

---

The page this twin stands for: https://featkpr.com/library/features. Every page on this site has a `.md` twin, and answers `Accept: text/markdown`.
