Route posture¶
What each endpoint demands of its caller. Regenerate with npm run route-table;
CI fails when this file is stale, so a change in authorization shows up here as a
diff rather than staying buried in 14 controllers.
175 routes.
- admin: 13
- admin (checked in body): 23
- anonymous: 17
- any logged-in user: 122
| Verb | URL | Handler | Requires | CSRF |
|---|---|---|---|---|
| GET | /api/v1/pages |
api#listPages |
any logged-in user | exempt |
| POST | /api/v1/pages |
api#createPage |
any logged-in user | required |
| GET | /api/v1/pages/{id} |
api#getPage |
any logged-in user | exempt |
| PUT | /api/v1/pages/{id} |
api#updatePage |
any logged-in user | required |
| DELETE | /api/v1/pages/{id} |
api#deletePage |
any logged-in user | required |
| POST | /api/v1/pages/{pageId}/media |
mediaApi#uploadMedia |
any logged-in user | required |
| GET | /api/v1/pages/{pageId}/media |
mediaApi#listMedia |
any logged-in user | exempt |
| GET | /api/v1/pages/{pageId}/media/{filename} |
mediaApi#getMedia |
any logged-in user | exempt |
| POST | /api/pages |
api#createPage |
any logged-in user | required |
| GET | /api/pages |
api#listPages |
any logged-in user | exempt |
| GET | /api/pages/tree |
api#getPageTree |
any logged-in user | exempt |
| POST | /api/pages/reorder |
api#reorderPages |
any logged-in user | required |
| POST | /api/pages/copy |
api#copyPage |
any logged-in user | required |
| POST | /api/pages/move |
api#movePage |
any logged-in user | required |
| GET | /api/pages/{id} |
api#getPage |
any logged-in user | exempt |
| PUT | /api/pages/{id} |
api#updatePage |
any logged-in user | required |
| DELETE | /api/pages/{id} |
api#deletePage |
any logged-in user | required |
| POST | /api/pages/{pageId}/media |
mediaApi#uploadMedia |
any logged-in user | required |
| POST | /api/pages/{pageId}/media/check |
mediaApi#checkMediaDuplicate |
any logged-in user | required |
| POST | /api/pages/{pageId}/media/upload |
mediaApi#uploadMediaWithName |
any logged-in user | required |
| GET | /api/pages/{pageId}/media/list |
mediaApi#listMedia |
any logged-in user | exempt |
| GET | /api/pages/{pageId}/media/{filename} |
mediaApi#getMedia |
any logged-in user | exempt |
| GET | /api/resources/media/{folder}/{filename} |
mediaApi#getResourcesMediaWithFolder |
any logged-in user | exempt |
| GET | /api/resources/media/{filename} |
mediaApi#getResourcesMedia |
any logged-in user | exempt |
| GET | /api/pages/{pageId}/versions |
pageContentApi#getPageVersions |
any logged-in user | exempt |
| POST | /api/pages/{pageId}/versions/{timestamp} |
pageContentApi#restorePageVersion |
any logged-in user | required |
| PUT | /api/pages/{pageId}/versions/{timestamp}/label |
pageContentApi#updateVersionLabel |
any logged-in user | required |
| GET | /api/pages/{pageId}/versions/{timestamp}/content |
pageContentApi#getVersionContent |
any logged-in user | exempt |
| GET | /api/pages/{pageId}/content |
pageContentApi#getCurrentPageContent |
any logged-in user | exempt |
| GET | /api/pages/{pageId}/metadata |
pageContentApi#getPageMetadata |
any logged-in user | exempt |
| PUT | /api/pages/{pageId}/metadata |
pageContentApi#updatePageMetadata |
any logged-in user | required |
| GET | /api/pages/{pageId}/lock |
pageLock#getLock |
any logged-in user | exempt |
| POST | /api/pages/{pageId}/lock |
pageLock#acquireLock |
any logged-in user | required |
| PUT | /api/pages/{pageId}/lock |
pageLock#refreshLock |
any logged-in user | required |
| DELETE | /api/pages/{pageId}/lock |
pageLock#releaseLock |
any logged-in user | required |
| POST | /api/pages/{pageId}/lock/force-release |
pageLock#forceReleaseLock |
admin (checked in body) | required |
| GET | /api/page/{pageId}/cache-status |
pageContentApi#checkPageCacheStatus |
any logged-in user | exempt |
| GET | /api/search |
api#searchPages |
any logged-in user | exempt |
| GET | /api/news |
api#getNews |
any logged-in user | exempt |
| GET | /api/pages/{id}/breadcrumb |
api#getBreadcrumb |
any logged-in user | exempt |
| GET | /api/metavox/status |
pageContentApi#getMetavoxStatus |
any logged-in user | exempt |
| GET | /api/metavox/fields |
pageContentApi#getMetavoxFields |
any logged-in user | exempt |
| GET | /api/permissions |
api#getPermissions |
any logged-in user | exempt |
| GET | /api/navigation |
navigation#get |
any logged-in user | exempt |
| POST | /api/navigation |
navigation#save |
any logged-in user | required |
| GET | /api/footer |
footer#get |
any logged-in user | exempt |
| POST | /api/footer |
footer#save |
any logged-in user | required |
| POST | /api/homepage |
api#setHomepage |
any logged-in user | required |
| POST | /api/pages/{pageId}/translations |
translationApi#linkTranslation |
any logged-in user | required |
| DELETE | /api/pages/{pageId}/translations |
translationApi#unlinkTranslation |
any logged-in user | required |
| GET | /api/pages/{pageId}/translation-candidates |
translationApi#getTranslationCandidates |
any logged-in user | required |
| POST | /api/pages/{pageId}/translations/create |
translationApi#createTranslation |
any logged-in user | required |
| GET | /api/pages/{pageId}/translatable-languages |
translationApi#getTranslatableLanguages |
any logged-in user | required |
| POST | /api/setup |
api#runSetup |
admin (checked in body) | required |
| GET | /api/demo-data/status |
demoData#getStatus |
any logged-in user | required |
| GET | /api/demo-data/languages |
demoData#getLanguages |
any logged-in user | required |
| POST | /api/demo-data/import |
demoData#importDemoData |
admin | required |
| POST | /api/demo-data/clean-start |
demoData#cleanStart |
admin | required |
| GET | /api/languages |
language#list |
admin | required |
| GET | /api/languages/content-status |
language#contentStatus |
any logged-in user | required |
| POST | /api/languages/primary |
language#setPrimary |
admin | required |
| POST | /api/languages/{code}/add |
language#addLanguage |
admin | required |
| DELETE | /api/languages/{code} |
language#removeLanguage |
admin | required |
| POST | /api/languages/enabled |
language#setEnabled |
admin | required |
| POST | /api/languages/{code}/empty-homepage |
language#createEmptyHomepage |
admin | required |
| GET | /api/settings/video-domains |
settingsApi#getVideoDomains |
any logged-in user | exempt |
| POST | /api/settings/video-domains |
settingsApi#setVideoDomains |
admin (checked in body) | required |
| GET | /api/settings/upload-limit |
mediaApi#getUploadLimit |
any logged-in user | exempt |
| GET | /api/settings/engagement |
settingsApi#getEngagementSettings |
any logged-in user | exempt |
| POST | /api/settings/engagement |
settingsApi#setEngagementSettings |
admin (checked in body) | required |
| GET | /api/settings/publication |
settingsApi#getPublicationSettings |
any logged-in user | exempt |
| POST | /api/settings/publication |
settingsApi#setPublicationSettings |
admin (checked in body) | required |
| GET | /api/settings/public-share-people |
settingsApi#getPublicSharePeopleSetting |
any logged-in user | exempt |
| POST | /api/settings/public-share-people |
settingsApi#setPublicSharePeopleSetting |
admin (checked in body) | required |
| GET | /api/export/languages |
export#getExportableLanguages |
any logged-in user | exempt |
| GET | /api/export/language/{language} |
export#exportLanguage |
any logged-in user | exempt |
| GET | /api/export/language/{language}/zip |
export#exportLanguageZip |
any logged-in user | exempt |
| GET | /api/export/page/{uniqueId} |
export#exportPage |
any logged-in user | exempt |
| POST | /api/import/zip |
importApi#import_zip |
admin (checked in body) | required |
| POST | /api/import/confluence/html |
importApi#import_confluence_html |
admin (checked in body) | required |
| GET | /api/pages/{pageId}/comments |
comment#getComments |
any logged-in user | exempt |
| POST | /api/pages/{pageId}/comments |
comment#createComment |
any logged-in user | required |
| PUT | /api/comments/{commentId} |
comment#updateComment |
any logged-in user | required |
| DELETE | /api/comments/{commentId} |
comment#deleteComment |
any logged-in user | required |
| GET | /api/pages/{pageId}/reactions |
comment#getPageReactions |
any logged-in user | exempt |
| POST | /api/pages/{pageId}/reactions/{emoji} |
comment#addPageReaction |
any logged-in user | required |
| DELETE | /api/pages/{pageId}/reactions/{emoji} |
comment#removePageReaction |
any logged-in user | required |
| GET | /api/comments/{commentId}/reactions |
comment#getCommentReactions |
any logged-in user | exempt |
| POST | /api/comments/{commentId}/reactions/{emoji} |
comment#addCommentReaction |
any logged-in user | required |
| DELETE | /api/comments/{commentId}/reactions/{emoji} |
comment#removeCommentReaction |
any logged-in user | required |
| POST | /api/analytics/track/{pageId} |
analytics#trackView |
any logged-in user | required |
| GET | /api/analytics/page/{pageId} |
analytics#getPageStats |
any logged-in user | exempt |
| GET | /api/analytics/top |
analytics#getTopPages |
any logged-in user | exempt |
| GET | /api/analytics/dashboard |
analytics#getDashboard |
admin (checked in body) | exempt |
| GET | /api/analytics/settings |
analytics#getSettings |
admin (checked in body) | exempt |
| POST | /api/analytics/settings |
analytics#setSettings |
admin (checked in body) | required |
| POST | /api/bulk/validate |
bulk#validateOperation |
admin (checked in body) | required |
| POST | /api/bulk/delete |
bulk#deletePages |
admin (checked in body) | required |
| POST | /api/bulk/move |
bulk#movePages |
admin (checked in body) | required |
| POST | /api/bulk/update |
bulk#updatePages |
admin (checked in body) | required |
| GET | /api/orphaned/scan |
orphanedData#scan |
admin | required |
| GET | /api/orphaned/{id}/details |
orphanedData#getDetails |
admin | required |
| DELETE | /api/orphaned/{id} |
orphanedData#cleanup |
admin | required |
| POST | /api/orphaned/{id}/migrate |
orphanedData#migrate |
admin | required |
| GET | /api/license/stats |
license#getStats |
admin (checked in body) | exempt |
| POST | /api/license/telemetry |
license#sendTelemetry |
admin (checked in body) | required |
| GET | /api/license/instance |
license#getInstanceInfo |
admin (checked in body) | exempt |
| POST | /api/settings/license |
license#saveSettings |
admin (checked in body) | required |
| POST | /api/license/validate |
license#validate |
admin (checked in body) | required |
| POST | /api/license/update-usage |
license#updateUsage |
admin (checked in body) | required |
| POST | /api/settings/telemetry |
settingsApi#setTelemetrySettings |
admin (checked in body) | required |
| GET | /api/templates |
templateApi#listTemplates |
any logged-in user | required |
| GET | /api/templates/{id} |
templateApi#getTemplate |
any logged-in user | required |
| POST | /api/templates |
templateApi#saveAsTemplate |
any logged-in user | required |
| DELETE | /api/templates/{id} |
templateApi#deleteTemplate |
any logged-in user | required |
| POST | /api/pages/from-template |
templateApi#createPageFromTemplate |
any logged-in user | required |
| GET | /api/pages/{uniqueId}/share-info |
shareAdminApi#getShareInfo |
any logged-in user | exempt |
| GET | /api/admin/shares |
shareAdminApi#getActiveShares |
admin (checked in body) | required |
| GET | /api/users/search |
people#searchUsers |
any logged-in user | exempt |
| POST | /api/users |
people#getUsers |
any logged-in user | required |
| GET | /api/users/groups |
people#getGroups |
any logged-in user | exempt |
| GET | /api/users/fields |
people#getUserFields |
any logged-in user | exempt |
| GET | /api/people |
people#getPeople |
any logged-in user | exempt |
| GET | /api/people/facet-preflight |
people#facetPreflight |
any logged-in user | exempt |
| GET | /api/calendar/calendars |
calendar#getCalendars |
any logged-in user | exempt |
| GET | /api/calendar/events |
calendar#getEvents |
any logged-in user | exempt |
| GET | /api/feed/external |
feedReader#getFeed |
any logged-in user | exempt |
| GET | /api/feed/preview |
feedReader#getPreview |
any logged-in user | required |
| GET | /api/feed/image |
feedReader#proxyImage |
any logged-in user | exempt |
| GET | /api/feed/courses/{connectionId} |
feedReader#getCourses |
any logged-in user | exempt |
| GET | /api/feed/sharepoint-lists/{connectionId} |
feedReader#getSharePointLists |
any logged-in user | exempt |
| GET | /api/feed/jira-projects/{connectionId} |
feedReader#getJiraProjects |
any logged-in user | exempt |
| GET | /api/feed/moodle-forums/{connectionId} |
feedReader#getMoodleForums |
any logged-in user | exempt |
| GET | /api/settings/feed-connections |
feedReader#getConnections |
any logged-in user | exempt |
| POST | /api/settings/feed-connections |
feedReader#setConnections |
admin | required |
| GET | /api/lms/connections |
lmsOAuth#getUserConnections |
any logged-in user | exempt |
| POST | /api/lms/connect/{connectionId} |
lmsOAuth#startOAuth |
any logged-in user | required |
| GET | /api/lms/callback |
lmsOAuth#callback |
any logged-in user | exempt |
| POST | /api/lms/token/{connectionId} |
lmsOAuth#saveManualToken |
any logged-in user | required |
| DELETE | /api/lms/token/{connectionId} |
lmsOAuth#disconnect |
any logged-in user | required |
| GET | /feed/{token} |
feed#getFeed |
anonymous | exempt |
| GET | /feed/{token}/media/{pageId}/{filename} |
feed#getFeedMedia |
anonymous | exempt |
| GET | /api/feed/token |
feed#getToken |
any logged-in user | exempt |
| POST | /api/feed/token |
feed#regenerateToken |
any logged-in user | required |
| DELETE | /api/feed/token |
feed#revokeToken |
any logged-in user | required |
| PUT | /api/feed/config |
feed#updateConfig |
any logged-in user | required |
| GET | /api/share/{token}/page/{uniqueId} |
publicShare#getPageByShare |
anonymous | exempt |
| GET | /api/share/{token}/page/{uniqueId}/media/{filename} |
publicShare#getMediaByShare |
anonymous | exempt |
| GET | /api/share/{token}/resources/media/{filename} |
publicShare#getResourcesMediaByShare |
anonymous | exempt |
| GET | /api/share/{token}/resources/media/{folder}/{filename} |
publicShare#getResourcesMediaWithFolderByShare |
anonymous | exempt |
| GET | /api/share/{token}/navigation |
publicShare#getNavigationByShare |
anonymous | exempt |
| GET | /api/share/{token}/tree |
publicShare#getPageTreeByShare |
anonymous | exempt |
| GET | /api/share/{token}/news |
publicShare#getNewsByShare |
anonymous | exempt |
| GET | /api/share/{token}/people |
publicShare#getPeopleByShare |
anonymous | exempt |
| GET | /api/share/{token}/calendar/events |
publicShare#getEventsByShare |
anonymous | exempt |
| GET | /api/share/{token}/feed/external |
publicShare#getFeedByShare |
anonymous | exempt |
| GET | /api/share/{token}/feed/image |
publicShare#proxyImageByShare |
anonymous | exempt |
| GET | /api/health |
api#health |
anonymous | exempt |
| GET | /api/photo-story/photos |
photoStory#photos |
any logged-in user | exempt |
| GET | /api/photo-story/clusters |
photoStory#clusters |
any logged-in user | exempt |
| GET | /api/photo-story/capabilities |
photoStory#capabilities |
any logged-in user | exempt |
| GET | /api/photo-story/photo-exif |
photoStory#photoExif |
any logged-in user | exempt |
| GET | /api/photo-story/open-in-files |
photoStory#openInFiles |
any logged-in user | exempt |
| GET | /api/photo-story/video |
photoStory#video |
any logged-in user | exempt |
| GET | /api/photo-story/metavox-fields |
photoStory#metaVoxFields |
any logged-in user | exempt |
| GET | /api/file-story/files |
fileStory#files |
any logged-in user | exempt |
| GET | /api/file-story/capabilities |
fileStory#capabilities |
any logged-in user | exempt |
| GET | /api/file-story/metavox-fields |
fileStory#metaVoxFields |
any logged-in user | exempt |
| GET | /api/preview |
preview#fetch |
any logged-in user | exempt |
| POST | /api/preview/warmup |
preview#warmup |
any logged-in user | exempt |
| GET | / |
page#index |
anonymous | exempt |
| GET | /s/{shareToken} |
page#shareAccess |
anonymous | exempt |
| POST | /s/{shareToken}/authenticate |
page#shareAuthenticate |
anonymous | exempt |
| GET | /page/{id} |
page#show |
any logged-in user | exempt |
| GET | /p/{uniqueId} |
page#showByUniqueId |
any logged-in user | exempt |