MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / CreateAdminRouter

Function CreateAdminRouter

rest/routing.go:146–346  ·  view source on GitHub ↗

CreateAdminRouter Creates the HTTP handler for the PRIVATE admin API of a gateway server.

(sc *ServerContext)

Source from the content-addressed store, hash-verified

144
145// CreateAdminRouter Creates the HTTP handler for the PRIVATE admin API of a gateway server.
146func CreateAdminRouter(sc *ServerContext) *mux.Router {
147 r, dbr, keyspace := createCommonRouter(sc, adminPrivs, adminServer)
148
149 // Keyspace handlers (single collection):
150 keyspace.Handle("/_purge",
151 makeHandler(sc, adminPrivs, []Permission{PermWriteAppData}, nil, (*handler).handlePurge)).Methods("POST")
152 keyspace.Handle("/_raw/{docid:"+docRegex+"}",
153 makeHandler(sc, adminPrivs, []Permission{PermReadAppData}, nil, (*handler).handleGetRawDoc)).Methods("GET", "HEAD")
154 keyspace.Handle("/_revtree/{docid:"+docRegex+"}",
155 makeHandler(sc, adminPrivs, []Permission{PermReadAppData}, nil, (*handler).handleGetRevTree)).Methods("GET")
156 keyspace.Handle("/_dumpchannel/{channel}",
157 makeHandler(sc, adminPrivs, []Permission{PermReadAppData}, nil, (*handler).handleDumpChannel)).Methods("GET")
158
159 // Database handlers (multi collection):
160 dbr.Handle("/_resync",
161 makeOfflineHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handleGetResync)).Methods("GET")
162 dbr.Handle("/_resync",
163 makeOfflineHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handlePostResync)).Methods("POST")
164 dbr.Handle("/_compact",
165 makeHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handleCompact)).Methods("POST")
166 dbr.Handle("/_compact",
167 makeHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handleGetCompact)).Methods("GET")
168 dbr.Handle("/_attachment_migration",
169 makeHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handleAttachmentMigration)).Methods("POST")
170 dbr.Handle("/_attachment_migration",
171 makeHandler(sc, adminPrivs, []Permission{PermUpdateDb}, nil, (*handler).handleGetAttachmentMigration)).Methods("GET")
172 dbr.Handle("/_session",
173 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).createUserSession)).Methods("POST")
174 dbr.Handle("/_session/{sessionid}",
175 makeHandler(sc, adminPrivs, []Permission{PermReadPrincipal}, nil, (*handler).getUserSession)).Methods("GET")
176 dbr.Handle("/_session/{sessionid}",
177 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).deleteUserSession)).Methods("DELETE")
178
179 dbr.Handle("/_user/",
180 makeHandler(sc, adminPrivs, []Permission{PermReadPrincipal}, nil, (*handler).getUsers)).Methods("GET", "HEAD")
181 dbr.Handle("/_user/",
182 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).putUser)).Methods("POST")
183 dbr.Handle("/_user/{name}",
184 makeHandler(sc, adminPrivs, []Permission{PermReadPrincipal}, []Permission{PermReadPrincipalAppData}, (*handler).getUserInfo)).Methods("GET", "HEAD")
185 dbr.Handle("/_user/{name}",
186 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).putUser)).Methods("PUT")
187 dbr.Handle("/_user/{name}",
188 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).deleteUser)).Methods("DELETE")
189
190 dbr.Handle("/_user/{name}/_session",
191 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).deleteUserSessions)).Methods("DELETE")
192 dbr.Handle("/_user/{name}/_session/{sessionid}",
193 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).deleteUserSession)).Methods("DELETE")
194
195 dbr.Handle("/_role/",
196 makeHandler(sc, adminPrivs, []Permission{PermReadPrincipal}, nil, (*handler).getRoles)).Methods("GET", "HEAD")
197 dbr.Handle("/_role/",
198 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).putRole)).Methods("POST")
199 dbr.Handle("/_role/{name}",
200 makeHandler(sc, adminPrivs, []Permission{PermReadPrincipal}, []Permission{PermReadPrincipalAppData}, (*handler).getRoleInfo)).Methods("GET", "HEAD")
201 dbr.Handle("/_role/{name}",
202 makeHandler(sc, adminPrivs, []Permission{PermWritePrincipal}, nil, (*handler).putRole)).Methods("PUT")
203 dbr.Handle("/_role/{name}",

Callers 1

CreateAdminHandlerFunction · 0.85

Calls 7

PtrFunction · 0.92
createCommonRouterFunction · 0.85
makeHandlerFunction · 0.85
makeOfflineHandlerFunction · 0.85
makeHandlerWithOptionsFunction · 0.85

Tested by

no test coverage detected