mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2026-10-19 16:14:39 +00:00
chore (refactoring): killing server/ctrl
This commit is contained in:
+6
-4
@@ -9,12 +9,14 @@ import (
|
||||
"github.com/mickael-kerjean/filestash"
|
||||
"github.com/mickael-kerjean/filestash/server"
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"github.com/mickael-kerjean/filestash/server/ctrl"
|
||||
|
||||
_ "github.com/mickael-kerjean/filestash/server/pkg"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/extension"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/workflow"
|
||||
_ "github.com/mickael-kerjean/filestash/server/plugin"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/extension"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/frontend"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/workflow"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
@@ -26,7 +28,7 @@ func Run(router *mux.Router) {
|
||||
check(InitLogger(), "Logger init failed. err=%s")
|
||||
check(InitConfig(), "Config init failed. err=%s")
|
||||
check(extension.Discovery(), "Plugin Discovery failed. err=%s")
|
||||
check(ctrl.InitPluginList(embed.EmbedPluginList, extension.All()), "Plugin Initialisation failed. err=%s")
|
||||
check(frontend.InitPluginList(embed.EmbedPluginList, extension.All()), "Plugin Initialisation failed. err=%s")
|
||||
check(workflow.Init(), "Worklow Initialisation failure. err=%s")
|
||||
if Hooks.Get.Starter() == nil {
|
||||
check(ErrNotFound, "Missing starter plugin. err=%s")
|
||||
|
||||
@@ -140,6 +140,7 @@ var (
|
||||
SendErrorResult = kernel.SendErrorResult
|
||||
Page = kernel.Page
|
||||
RedirectPage = kernel.RedirectPage
|
||||
NotFoundHandler = kernel.NotFoundHandler
|
||||
)
|
||||
|
||||
// path.go
|
||||
|
||||
+2
-73
@@ -1,12 +1,8 @@
|
||||
package ctrl
|
||||
|
||||
import (
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/admin"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/files"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/frontend"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/kernel"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/session"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/share"
|
||||
)
|
||||
|
||||
// tmpl.go
|
||||
@@ -15,75 +11,8 @@ var (
|
||||
TmplParams = kernel.TmplParams
|
||||
)
|
||||
|
||||
// files
|
||||
var (
|
||||
FileLs = files.FileLs
|
||||
FileCat = files.FileCat
|
||||
FileAccess = files.FileAccess
|
||||
FileSave = files.FileSave
|
||||
FileMv = files.FileMv
|
||||
FileRm = files.FileRm
|
||||
FileMkdir = files.FileMkdir
|
||||
FileTouch = files.FileTouch
|
||||
FileDownloader = files.FileDownloader
|
||||
FileExtract = files.FileExtract
|
||||
|
||||
FileSearch = files.FileSearch
|
||||
MetaSearch = files.MetaSearch
|
||||
MetaGet = files.MetaGet
|
||||
MetaUpsert = files.MetaUpsert
|
||||
)
|
||||
|
||||
// admin
|
||||
var (
|
||||
AdminSessionGet = admin.AdminSessionGet
|
||||
AdminSessionAuthenticate = admin.AdminSessionAuthenticate
|
||||
FetchAuditHandler = admin.FetchAuditHandler
|
||||
FetchLogHandler = admin.FetchLogHandler
|
||||
AdminBackend = admin.AdminBackend
|
||||
AdminAuthenticationMiddleware = admin.AdminAuthenticationMiddleware
|
||||
PrivateConfigHandler = admin.PrivateConfigHandler
|
||||
PrivateConfigUpdateHandler = admin.PrivateConfigUpdateHandler
|
||||
)
|
||||
|
||||
// session
|
||||
var (
|
||||
SessionGet = session.SessionGet
|
||||
SessionAuthenticate = session.SessionAuthenticate
|
||||
SessionLogout = session.SessionLogout
|
||||
SessionOAuthBackend = session.SessionOAuthBackend
|
||||
SessionAuthMiddleware = session.SessionAuthMiddleware
|
||||
)
|
||||
|
||||
// share
|
||||
var (
|
||||
ShareList = share.ShareListHandler
|
||||
ShareDelete = share.ShareDeleteHandler
|
||||
ShareUpsert = share.ShareUpsertHandler
|
||||
ShareVerifyProof = share.ShareVerifyProofHandler
|
||||
WebdavHandler = share.WebdavHandler
|
||||
WebdavBlacklist = share.WebdavBlacklist
|
||||
)
|
||||
|
||||
// frontend
|
||||
var (
|
||||
ServeBackofficeHandler = frontend.ServeBackofficeHandler
|
||||
ServeFrontofficeHandler = frontend.ServeFrontofficeHandler
|
||||
ServeFavicon = frontend.ServeFavicon
|
||||
ServeFile = frontend.ServeFile
|
||||
ServeBundle = frontend.ServeBundle
|
||||
NotFoundHandler = frontend.NotFoundHandler
|
||||
ManifestHandler = frontend.ManifestHandler
|
||||
RobotsHandler = frontend.RobotsHandler
|
||||
CustomCssHandler = frontend.CustomCssHandler
|
||||
AboutHandler = frontend.AboutHandler
|
||||
InitPluginList = frontend.InitPluginList
|
||||
HasPlugin = frontend.HasPlugin
|
||||
PluginExportHandler = frontend.PluginExportHandler
|
||||
PluginStaticHandler = frontend.PluginStaticHandler
|
||||
PluginDownloadHandler = frontend.PluginDownloadHandler
|
||||
ReportHandler = frontend.ReportHandler
|
||||
WellKnownSecurityHandler = frontend.WellKnownSecurityHandler
|
||||
HealthHandler = frontend.HealthHandler
|
||||
PublicConfigHandler = frontend.PublicConfigHandler
|
||||
InitPluginList = frontend.InitPluginList
|
||||
HasPlugin = frontend.HasPlugin
|
||||
)
|
||||
|
||||
@@ -34,9 +34,6 @@ import (
|
||||
var (
|
||||
WWWDir fs.FS
|
||||
|
||||
//go:embed static/404.html
|
||||
HtmlPage404 []byte
|
||||
|
||||
//go:embed static/loader.html
|
||||
TmplLoader []byte
|
||||
)
|
||||
@@ -100,15 +97,6 @@ func ServeFavicon(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
ServeFile("/assets/logo/")(ctx, res, r)
|
||||
}
|
||||
|
||||
func NotFoundHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
if strings.Contains(req.Header.Get("accept"), "text/html") {
|
||||
res.WriteHeader(http.StatusNotFound)
|
||||
res.Write(HtmlPage404)
|
||||
return
|
||||
}
|
||||
SendErrorResult(res, ErrNotFound)
|
||||
}
|
||||
|
||||
func ManifestHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
res.WriteHeader(http.StatusOK)
|
||||
res.Write([]byte(fmt.Sprintf(`{
|
||||
|
||||
@@ -3,7 +3,9 @@ package kernel
|
||||
import (
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
. "github.com/mickael-kerjean/filestash/server/pkg/core"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
@@ -159,3 +161,15 @@ func RedirectPage(url string) string {
|
||||
</html>
|
||||
`
|
||||
}
|
||||
|
||||
//go:embed static/404.html
|
||||
var HtmlPage404 []byte
|
||||
|
||||
func NotFoundHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
if strings.Contains(req.Header.Get("accept"), "text/html") {
|
||||
res.WriteHeader(http.StatusNotFound)
|
||||
res.Write(HtmlPage404)
|
||||
return
|
||||
}
|
||||
SendErrorResult(res, ErrNotFound)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import (
|
||||
"net/http"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
. "github.com/mickael-kerjean/filestash/server/ctrl"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/frontend"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/tracer"
|
||||
)
|
||||
|
||||
@@ -63,7 +64,7 @@ func (this Filestash) unmarshalResults(resp io.ReadCloser, data interface{}) err
|
||||
|
||||
func localURL() string {
|
||||
scheme := "http"
|
||||
if HasPlugin("plg_starter_https", "plg_starter_httpsfs", "plg_starter_web") {
|
||||
if frontend.HasPlugin("plg_starter_https", "plg_starter_httpsfs", "plg_starter_web") {
|
||||
scheme = "https"
|
||||
}
|
||||
return WithBase(fmt.Sprintf("%s://localhost:%d", scheme, Config.Get("general.port").Int()))
|
||||
|
||||
+75
-66
@@ -10,117 +10,126 @@ import (
|
||||
"github.com/gorilla/mux"
|
||||
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
. "github.com/mickael-kerjean/filestash/server/ctrl"
|
||||
// . "github.com/mickael-kerjean/filestash/server/ctrl"
|
||||
. "github.com/mickael-kerjean/filestash/server/middleware"
|
||||
. "github.com/mickael-kerjean/filestash/server/pkg/workflow"
|
||||
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/admin"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/files"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/frontend"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/session"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/share"
|
||||
"github.com/mickael-kerjean/filestash/server/pkg/workflow"
|
||||
)
|
||||
|
||||
func Build(r *mux.Router) {
|
||||
var middlewares []Middleware
|
||||
var (
|
||||
router *mux.Router
|
||||
middlewares []Middleware
|
||||
)
|
||||
|
||||
// API for Session
|
||||
session := r.PathPrefix(WithBase("/api/session")).Subrouter()
|
||||
router = r.PathPrefix(WithBase("/api/session")).Subrouter()
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, SessionStart, PluginInjector}
|
||||
session.HandleFunc("", NewMiddlewareChain(SessionGet, middlewares)).Methods("GET")
|
||||
router.HandleFunc("", NewMiddlewareChain(session.SessionGet, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, RateLimiter, BodyParser, PluginInjector}
|
||||
session.HandleFunc("", NewMiddlewareChain(SessionAuthenticate, middlewares)).Methods("POST")
|
||||
router.HandleFunc("", NewMiddlewareChain(session.SessionAuthenticate, middlewares)).Methods("POST")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, PluginInjector}
|
||||
session.HandleFunc("", NewMiddlewareChain(SessionLogout, middlewares)).Methods("DELETE")
|
||||
router.HandleFunc("", NewMiddlewareChain(session.SessionLogout, middlewares)).Methods("DELETE")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, PluginInjector}
|
||||
session.HandleFunc("/auth/{service}", NewMiddlewareChain(SessionOAuthBackend, middlewares)).Methods("GET")
|
||||
session.HandleFunc("/auth/", NewMiddlewareChain(SessionAuthMiddleware, middlewares)).Methods("GET", "POST")
|
||||
router.HandleFunc("/auth/{service}", NewMiddlewareChain(session.SessionOAuthBackend, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/auth/", NewMiddlewareChain(session.SessionAuthMiddleware, middlewares)).Methods("GET", "POST")
|
||||
|
||||
// API for Admin Console
|
||||
admin := r.PathPrefix(WithBase("/admin/api")).Subrouter()
|
||||
router = r.PathPrefix(WithBase("/admin/api")).Subrouter()
|
||||
middlewares = []Middleware{ApiHeaders, SecureOrigin, PluginInjector}
|
||||
admin.HandleFunc("/session", NewMiddlewareChain(AdminSessionGet, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/session", NewMiddlewareChain(admin.AdminSessionGet, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{ApiHeaders, SecureOrigin, RateLimiter, PluginInjector}
|
||||
admin.HandleFunc("/session", NewMiddlewareChain(AdminSessionAuthenticate, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/session", NewMiddlewareChain(admin.AdminSessionAuthenticate, middlewares)).Methods("POST")
|
||||
middlewares = []Middleware{ApiHeaders, AdminOnly, SecureOrigin, PluginInjector}
|
||||
admin.HandleFunc("/config", NewMiddlewareChain(PrivateConfigHandler, middlewares)).Methods("GET")
|
||||
admin.HandleFunc("/config", NewMiddlewareChain(PrivateConfigUpdateHandler, middlewares)).Methods("POST")
|
||||
admin.HandleFunc("/workflow", NewMiddlewareChain(WorkflowAll, middlewares)).Methods("GET")
|
||||
admin.HandleFunc("/workflow/{workflowID}", NewMiddlewareChain(WorkflowGet, middlewares)).Methods("GET")
|
||||
admin.HandleFunc("/workflow", NewMiddlewareChain(WorkflowUpsert, middlewares)).Methods("POST")
|
||||
admin.HandleFunc("/workflow", NewMiddlewareChain(WorkflowDelete, middlewares)).Methods("DELETE")
|
||||
admin.HandleFunc("/middlewares/authentication", NewMiddlewareChain(AdminAuthenticationMiddleware, middlewares)).Methods("GET")
|
||||
admin.HandleFunc("/audit", NewMiddlewareChain(FetchAuditHandler, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/config", NewMiddlewareChain(admin.PrivateConfigHandler, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/config", NewMiddlewareChain(admin.PrivateConfigUpdateHandler, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/workflow", NewMiddlewareChain(workflow.WorkflowAll, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/workflow/{workflowID}", NewMiddlewareChain(workflow.WorkflowGet, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/workflow", NewMiddlewareChain(workflow.WorkflowUpsert, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/workflow", NewMiddlewareChain(workflow.WorkflowDelete, middlewares)).Methods("DELETE")
|
||||
router.HandleFunc("/middlewares/authentication", NewMiddlewareChain(admin.AdminAuthenticationMiddleware, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/audit", NewMiddlewareChain(admin.FetchAuditHandler, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{IndexHeaders, AdminOnly, PluginInjector}
|
||||
admin.HandleFunc("/logs", NewMiddlewareChain(FetchLogHandler, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/logs", NewMiddlewareChain(admin.FetchLogHandler, middlewares)).Methods("GET")
|
||||
|
||||
// API for File management
|
||||
files := r.PathPrefix(WithBase("/api/files")).Subrouter()
|
||||
router = r.PathPrefix(WithBase("/api/files")).Subrouter()
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SessionStart, LoggedInOnly, PluginInjector}
|
||||
files.HandleFunc("/cat", NewMiddlewareChain(FileCat, middlewares)).Methods("GET", "HEAD")
|
||||
files.HandleFunc("/zip", NewMiddlewareChain(FileDownloader, middlewares)).Methods("GET")
|
||||
files.HandleFunc("/unzip", NewMiddlewareChain(FileExtract, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/cat", NewMiddlewareChain(files.FileCat, middlewares)).Methods("GET", "HEAD")
|
||||
router.HandleFunc("/zip", NewMiddlewareChain(files.FileDownloader, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/unzip", NewMiddlewareChain(files.FileExtract, middlewares)).Methods("POST")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, SessionStart, LoggedInOnly, PluginInjector}
|
||||
files.HandleFunc("/cat", NewMiddlewareChain(FileAccess, middlewares)).Methods("OPTIONS")
|
||||
files.HandleFunc("/cat", NewMiddlewareChain(FileSave, middlewares)).Methods("POST", "PATCH")
|
||||
files.HandleFunc("/save", NewMiddlewareChain(FileSave, middlewares)).Methods("POST", "PATCH", "HEAD", "OPTIONS")
|
||||
files.HandleFunc("/ls", NewMiddlewareChain(FileLs, middlewares)).Methods("GET")
|
||||
files.HandleFunc("/mv", NewMiddlewareChain(FileMv, middlewares)).Methods("POST")
|
||||
files.HandleFunc("/rm", NewMiddlewareChain(FileRm, middlewares)).Methods("POST")
|
||||
files.HandleFunc("/mkdir", NewMiddlewareChain(FileMkdir, middlewares)).Methods("POST")
|
||||
files.HandleFunc("/touch", NewMiddlewareChain(FileTouch, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/cat", NewMiddlewareChain(files.FileAccess, middlewares)).Methods("OPTIONS")
|
||||
router.HandleFunc("/cat", NewMiddlewareChain(files.FileSave, middlewares)).Methods("POST", "PATCH")
|
||||
router.HandleFunc("/save", NewMiddlewareChain(files.FileSave, middlewares)).Methods("POST", "PATCH", "HEAD", "OPTIONS")
|
||||
router.HandleFunc("/ls", NewMiddlewareChain(files.FileLs, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/mv", NewMiddlewareChain(files.FileMv, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/rm", NewMiddlewareChain(files.FileRm, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/mkdir", NewMiddlewareChain(files.FileMkdir, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/touch", NewMiddlewareChain(files.FileTouch, middlewares)).Methods("POST")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, SessionStart, LoggedInOnly, PluginInjector}
|
||||
files.HandleFunc("/search", NewMiddlewareChain(FileSearch, middlewares)).Methods("GET")
|
||||
router.HandleFunc("/search", NewMiddlewareChain(files.FileSearch, middlewares)).Methods("GET")
|
||||
|
||||
// API for Shared link
|
||||
share := r.PathPrefix(WithBase("/api/share")).Subrouter()
|
||||
router = r.PathPrefix(WithBase("/api/share")).Subrouter()
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, SessionStart, LoggedInOnly, PluginInjector}
|
||||
share.HandleFunc("", NewMiddlewareChain(ShareList, middlewares)).Methods("GET")
|
||||
router.HandleFunc("", NewMiddlewareChain(share.ShareListHandler, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, BodyParser, PluginInjector}
|
||||
share.HandleFunc("/{share}/proof", NewMiddlewareChain(ShareVerifyProof, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/{share}/proof", NewMiddlewareChain(share.ShareVerifyProofHandler, middlewares)).Methods("POST")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, CanManageShare, PluginInjector}
|
||||
share.HandleFunc("/{share}", NewMiddlewareChain(ShareDelete, middlewares)).Methods("DELETE")
|
||||
router.HandleFunc("/{share}", NewMiddlewareChain(share.ShareDeleteHandler, middlewares)).Methods("DELETE")
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, BodyParser, CanManageShare, PluginInjector}
|
||||
share.HandleFunc("/{share}", NewMiddlewareChain(ShareUpsert, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/{share}", NewMiddlewareChain(share.ShareUpsertHandler, middlewares)).Methods("POST")
|
||||
|
||||
meta := r.PathPrefix(WithBase("/api/metadata")).Subrouter()
|
||||
router = r.PathPrefix(WithBase("/api/metadata")).Subrouter()
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, SecureOrigin, SessionStart, LoggedInOnly, PluginInjector}
|
||||
meta.HandleFunc("", NewMiddlewareChain(MetaGet, middlewares)).Methods("GET")
|
||||
meta.HandleFunc("", NewMiddlewareChain(MetaUpsert, middlewares)).Methods("POST")
|
||||
meta.HandleFunc("/search", NewMiddlewareChain(MetaSearch, middlewares)).Methods("POST")
|
||||
router.HandleFunc("", NewMiddlewareChain(files.MetaGet, middlewares)).Methods("GET")
|
||||
router.HandleFunc("", NewMiddlewareChain(files.MetaUpsert, middlewares)).Methods("POST")
|
||||
router.HandleFunc("/search", NewMiddlewareChain(files.MetaSearch, middlewares)).Methods("POST")
|
||||
|
||||
// Webdav server / Shared Link
|
||||
middlewares = []Middleware{IndexHeaders, SecureHeaders, PluginInjector}
|
||||
r.HandleFunc(WithBase("/s/{share}"), NewMiddlewareChain(ServeFrontofficeHandler, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{WebdavBlacklist, SessionStart, PluginInjector}
|
||||
r.PathPrefix(WithBase("/s/{share}")).Handler(NewMiddlewareChain(WebdavHandler, middlewares))
|
||||
r.HandleFunc(WithBase("/s/{share}"), NewMiddlewareChain(frontend.ServeFrontofficeHandler, middlewares)).Methods("GET")
|
||||
middlewares = []Middleware{share.WebdavBlacklist, SessionStart, PluginInjector}
|
||||
r.PathPrefix(WithBase("/s/{share}")).Handler(NewMiddlewareChain(share.WebdavHandler, middlewares))
|
||||
|
||||
// Application Resources
|
||||
middlewares = []Middleware{ApiHeaders, SecureHeaders, PluginInjector}
|
||||
r.HandleFunc(WithBase("/api/backend"), NewMiddlewareChain(AdminBackend, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/api/plugin"), NewMiddlewareChain(PluginExportHandler, append(middlewares, PublicCORS))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/api/config"), NewMiddlewareChain(PublicConfigHandler, append(middlewares, PublicCORS))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/api/backend"), NewMiddlewareChain(admin.AdminBackend, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/api/plugin"), NewMiddlewareChain(frontend.PluginExportHandler, append(middlewares, PublicCORS))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/api/config"), NewMiddlewareChain(frontend.PublicConfigHandler, append(middlewares, PublicCORS))).Methods("GET", "OPTIONS")
|
||||
middlewares = []Middleware{StaticHeaders, SecureHeaders, PublicCORS, PluginInjector}
|
||||
r.PathPrefix(WithBase("/assets/bundle.js")).Handler(http.HandlerFunc(NewMiddlewareChain(ServeBundle(), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/assets/"+BUILD_REF+"/plugin/{name}.zip/{path:.+}"), NewMiddlewareChain(PluginStaticHandler, middlewares)).Methods("GET", "OPTIONS", "HEAD")
|
||||
r.HandleFunc(WithBase("/assets/"+BUILD_REF+"/plugin/{name}.zip"), NewMiddlewareChain(PluginDownloadHandler, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/assets/plugin/{name}.zip"), NewMiddlewareChain(PluginDownloadHandler, middlewares)).Methods("GET")
|
||||
r.PathPrefix(WithBase("/assets/"+BUILD_REF)).Handler(http.HandlerFunc(NewMiddlewareChain(ServeFile("/"), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.PathPrefix(WithBase("/assets/")).Handler(http.HandlerFunc(NewMiddlewareChain(ServeFile("/"), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/sw.js"), http.HandlerFunc(NewMiddlewareChain(ServeFile("/assets/"), middlewares))).Methods("GET")
|
||||
r.HandleFunc(WithBase("/favicon.ico"), NewMiddlewareChain(ServeFavicon, middlewares)).Methods("GET")
|
||||
r.PathPrefix(WithBase("/assets/bundle.js")).Handler(http.HandlerFunc(NewMiddlewareChain(frontend.ServeBundle(), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/assets/"+BUILD_REF+"/plugin/{name}.zip/{path:.+}"), NewMiddlewareChain(frontend.PluginStaticHandler, middlewares)).Methods("GET", "OPTIONS", "HEAD")
|
||||
r.HandleFunc(WithBase("/assets/"+BUILD_REF+"/plugin/{name}.zip"), NewMiddlewareChain(frontend.PluginDownloadHandler, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/assets/plugin/{name}.zip"), NewMiddlewareChain(frontend.PluginDownloadHandler, middlewares)).Methods("GET")
|
||||
r.PathPrefix(WithBase("/assets/"+BUILD_REF)).Handler(http.HandlerFunc(NewMiddlewareChain(frontend.ServeFile("/"), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.PathPrefix(WithBase("/assets/")).Handler(http.HandlerFunc(NewMiddlewareChain(frontend.ServeFile("/"), middlewares))).Methods("GET", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/sw.js"), http.HandlerFunc(NewMiddlewareChain(frontend.ServeFile("/assets/"), middlewares))).Methods("GET")
|
||||
r.HandleFunc(WithBase("/favicon.ico"), NewMiddlewareChain(frontend.ServeFavicon, middlewares)).Methods("GET")
|
||||
|
||||
// Other endpoints
|
||||
middlewares = []Middleware{ApiHeaders, PluginInjector, PublicCORS}
|
||||
r.HandleFunc(WithBase("/report"), NewMiddlewareChain(ReportHandler, middlewares)).Methods("POST", "OPTIONS")
|
||||
r.HandleFunc(WithBase("/report"), NewMiddlewareChain(frontend.ReportHandler, middlewares)).Methods("POST", "OPTIONS")
|
||||
middlewares = []Middleware{IndexHeaders, SecureHeaders, PluginInjector}
|
||||
r.HandleFunc(WithBase("/about"), NewMiddlewareChain(AboutHandler, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/robots.txt"), NewMiddlewareChain(RobotsHandler, []Middleware{}))
|
||||
r.HandleFunc(WithBase("/manifest.json"), NewMiddlewareChain(ManifestHandler, []Middleware{})).Methods("GET")
|
||||
r.HandleFunc(WithBase("/.well-known/security.txt"), NewMiddlewareChain(WellKnownSecurityHandler, []Middleware{})).Methods("GET")
|
||||
r.HandleFunc(WithBase("/healthz"), NewMiddlewareChain(HealthHandler, []Middleware{})).Methods("GET", "HEAD")
|
||||
r.HandleFunc(WithBase("/custom.css"), NewMiddlewareChain(CustomCssHandler, []Middleware{})).Methods("GET")
|
||||
r.HandleFunc(WithBase("/about"), NewMiddlewareChain(frontend.AboutHandler, middlewares)).Methods("GET")
|
||||
r.HandleFunc(WithBase("/robots.txt"), NewMiddlewareChain(frontend.RobotsHandler, []Middleware{}))
|
||||
r.HandleFunc(WithBase("/manifest.json"), NewMiddlewareChain(frontend.ManifestHandler, []Middleware{})).Methods("GET")
|
||||
r.HandleFunc(WithBase("/.well-known/security.txt"), NewMiddlewareChain(frontend.WellKnownSecurityHandler, []Middleware{})).Methods("GET")
|
||||
r.HandleFunc(WithBase("/healthz"), NewMiddlewareChain(frontend.HealthHandler, []Middleware{})).Methods("GET", "HEAD")
|
||||
r.HandleFunc(WithBase("/custom.css"), NewMiddlewareChain(frontend.CustomCssHandler, []Middleware{})).Methods("GET")
|
||||
}
|
||||
|
||||
func CatchAll(r *mux.Router) {
|
||||
middlewares := []Middleware{SecureHeaders, PluginInjector}
|
||||
r.PathPrefix(WithBase("/admin")).Handler(http.HandlerFunc(NewMiddlewareChain(ServeBackofficeHandler, middlewares))).Methods("GET")
|
||||
r.PathPrefix(WithBase("/admin")).Handler(http.HandlerFunc(NewMiddlewareChain(frontend.ServeBackofficeHandler, middlewares))).Methods("GET")
|
||||
middlewares = []Middleware{IndexHeaders, SecureHeaders, PluginInjector}
|
||||
r.PathPrefix("/").Handler(http.HandlerFunc(NewMiddlewareChain(ServeFrontofficeHandler, middlewares))).Methods("GET", "POST")
|
||||
r.PathPrefix("/").Handler(http.HandlerFunc(NewMiddlewareChain(frontend.ServeFrontofficeHandler, middlewares))).Methods("GET", "POST")
|
||||
}
|
||||
|
||||
func DebugRoutes(r *mux.Router) {
|
||||
|
||||
Reference in New Issue
Block a user