diff --git a/code/common/service/java/nu/marginalia/service/server/Service.java b/code/common/service/java/nu/marginalia/service/server/Service.java index 283ed439..84502649 100644 --- a/code/common/service/java/nu/marginalia/service/server/Service.java +++ b/code/common/service/java/nu/marginalia/service/server/Service.java @@ -122,7 +122,6 @@ public class Service { configureStaticFiles.run(); Spark.before(this::auditRequestIn); - Spark.before(this::filterPublicRequests); Spark.after(this::auditRequestOut); // Live and ready endpoints @@ -130,6 +129,18 @@ public class Service { Spark.get("/internal/started", this::isInitialized); Spark.get("/internal/ready", this::isReady); + Spark.get("/public/", (rq, rp) -> { + rp.type("text/html"); + + return """ +
+The system is configured to use an old URL scheme. If you are the operator of the service, + you need to modify the reverse proxy to not use the /public prefix. If you are a user, please + contact the operator of the service.
+ """; + }); + grpcServer = new GrpcServer(config, serviceRegistry, partition, grpcServices); grpcServer.start(); } @@ -159,23 +170,6 @@ public class Service { Spark.staticFiles.header("Cache-control", "public"); } - private void filterPublicRequests(Request request, Response response) { - if (null == request.headers("X-Public")) { - return; - } - - String context = Optional - .ofNullable(request.headers("X-Context")) - .orElseGet(request::ip); - - if (!request.pathInfo().startsWith("/public/")) { - logger.warn(httpMarker, "External connection to internal API: {} -> {} {}", context, request.requestMethod(), request.pathInfo()); - Spark.halt(403); - } - - logRequest(request); - } - private Object isInitialized(Request request, Response response) { if (initialization.isReady()) { return "ok"; diff --git a/code/services-application/api-service/java/nu/marginalia/api/ApiService.java b/code/services-application/api-service/java/nu/marginalia/api/ApiService.java index 85a19473..e6fd7767 100644 --- a/code/services-application/api-service/java/nu/marginalia/api/ApiService.java +++ b/code/services-application/api-service/java/nu/marginalia/api/ApiService.java @@ -66,15 +66,15 @@ public class ApiService extends Service { this.rateLimiterService = rateLimiterService; this.searchOperator = searchOperator; - Spark.get("/public/api/", (rq, rsp) -> { + Spark.get("/api/", (rq, rsp) -> { rsp.redirect("https://memex.marginalia.nu/projects/edge/api.gmi"); return ""; }); - Spark.get("/public/api/:key", (rq, rsp) -> licenseService.getLicense(rq.params("key")), gson::toJson); - Spark.get("/public/api/:key/", (rq, rsp) -> licenseService.getLicense(rq.params("key")), gson::toJson); + Spark.get("/api/:key", (rq, rsp) -> licenseService.getLicense(rq.params("key")), gson::toJson); + Spark.get("/api/:key/", (rq, rsp) -> licenseService.getLicense(rq.params("key")), gson::toJson); - Spark.get("/public/api/:key/search/*", this::search, gson::toJson); + Spark.get("/api/:key/search/*", this::search, gson::toJson); } @MqRequest(endpoint = "FLUSH_CACHES") diff --git a/code/services-application/dating-service/java/nu/marginalia/dating/DatingService.java b/code/services-application/dating-service/java/nu/marginalia/dating/DatingService.java index c768ea09..9753fa96 100644 --- a/code/services-application/dating-service/java/nu/marginalia/dating/DatingService.java +++ b/code/services-application/dating-service/java/nu/marginalia/dating/DatingService.java @@ -44,13 +44,13 @@ public class DatingService extends Service { this.browseRandom = browseRandom; this.screenshotService = screenshotService; - Spark.get("/public/reset", this::getReset); - Spark.get("/public/", this::getInitSession); - Spark.get("/public/view", this::getCurrent); - Spark.get("/public/next", this::getNext); - Spark.get("/public/similar/:id", this::getSimilar); - Spark.get("/public/rewind", this::getRewind); - Spark.get("/public/init", this::getInitSession); + Spark.get("/reset", this::getReset); + Spark.get("/", this::getInitSession); + Spark.get("/view", this::getCurrent); + Spark.get("/next", this::getNext); + Spark.get("/similar/:id", this::getSimilar); + Spark.get("/rewind", this::getRewind); + Spark.get("/init", this::getInitSession); } private Object getInitSession(Request request, Response response) { diff --git a/code/services-application/explorer-service/java/nu/marginalia/explorer/ExplorerService.java b/code/services-application/explorer-service/java/nu/marginalia/explorer/ExplorerService.java index 0b6ae0de..c46fff40 100644 --- a/code/services-application/explorer-service/java/nu/marginalia/explorer/ExplorerService.java +++ b/code/services-application/explorer-service/java/nu/marginalia/explorer/ExplorerService.java @@ -51,9 +51,9 @@ public class ExplorerService extends Service { this.dataSource = dataSource; this.staticResources = staticResources; - Spark.get("/public/", this::serveIndex, this::render); - Spark.get("/public/search", this::search, this::render); - Spark.get("/public/:resource", this::serveStatic); + Spark.get("/", this::serveIndex, this::render); + Spark.get("/search", this::search, this::render); + Spark.get("/:resource", this::serveStatic); } diff --git a/code/services-application/search-service/java/nu/marginalia/search/SearchService.java b/code/services-application/search-service/java/nu/marginalia/search/SearchService.java index 8e8594be..e80dbbf9 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/SearchService.java +++ b/code/services-application/search-service/java/nu/marginalia/search/SearchService.java @@ -55,20 +55,19 @@ public class SearchService extends Service { Spark.staticFiles.expireTime(600); SearchServiceMetrics.get("/search", searchQueryService::pathSearch); - SearchServiceMetrics.get("/public/search", searchQueryService::pathSearch); - SearchServiceMetrics.get("/public/", frontPageService::render); - SearchServiceMetrics.get("/public/news.xml", frontPageService::renderNewsFeed); - SearchServiceMetrics.get("/public/:resource", this::serveStatic); + SearchServiceMetrics.get("/", frontPageService::render); + SearchServiceMetrics.get("/news.xml", frontPageService::renderNewsFeed); + SearchServiceMetrics.get("/:resource", this::serveStatic); - SearchServiceMetrics.post("/public/site/suggest/", addToCrawlQueueService::suggestCrawling); + SearchServiceMetrics.post("/site/suggest/", addToCrawlQueueService::suggestCrawling); - SearchServiceMetrics.get("/public/site-search/:site/*", this::siteSearchRedir); + SearchServiceMetrics.get("/site-search/:site/*", this::siteSearchRedir); - SearchServiceMetrics.get("/public/site/:site", siteInfoService::handle); - SearchServiceMetrics.post("/public/site/:site", siteInfoService::handlePost); + SearchServiceMetrics.get("/site/:site", siteInfoService::handle); + SearchServiceMetrics.post("/site/:site", siteInfoService::handlePost); - SearchServiceMetrics.get("/public/crosstalk/", crosstalkService::handle); + SearchServiceMetrics.get("/crosstalk/", crosstalkService::handle); Spark.exception(Exception.class, (e,p,q) -> { logger.error("Error during processing", e); diff --git a/code/services-core/assistant-service/java/nu/marginalia/assistant/AssistantService.java b/code/services-core/assistant-service/java/nu/marginalia/assistant/AssistantService.java index 741261b8..c048ac24 100644 --- a/code/services-core/assistant-service/java/nu/marginalia/assistant/AssistantService.java +++ b/code/services-core/assistant-service/java/nu/marginalia/assistant/AssistantService.java @@ -39,9 +39,8 @@ public class AssistantService extends Service { Spark.staticFiles.expireTime(600); - Spark.get("/public/screenshot/:id", screenshotService::serveScreenshotRequest); Spark.get("/screenshot/:id", screenshotService::serveScreenshotRequest); - Spark.get("/public/suggest/", this::getSuggestions, this::convertToJson); + Spark.get("/suggest/", this::getSuggestions, this::convertToJson); Spark.awaitInitialization(); } diff --git a/code/services-core/control-service/java/nu/marginalia/control/ControlService.java b/code/services-core/control-service/java/nu/marginalia/control/ControlService.java index 8eb44279..5c0a014e 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/ControlService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/ControlService.java @@ -96,21 +96,21 @@ public class ControlService extends Service { this.staticResources = staticResources; this.messageQueueService = messageQueueService; - Spark.get("/public/heartbeats", (req, res) -> { + Spark.get("/heartbeats", (req, res) -> { res.type("application/json"); return heartbeatService.getServiceHeartbeats(); }, gson::toJson); - Spark.get("/public/", this::overviewModel, indexRenderer::render); + Spark.get("/", this::overviewModel, indexRenderer::render); - Spark.get("/public/actions", (req,rs) -> new Object() , actionsViewRenderer::render); - Spark.get("/public/events", eventLogService::eventsListModel , eventsRenderer::render); - Spark.get("/public/services/:id", this::serviceModel, serviceByIdRenderer::render); + Spark.get("/actions", (req,rs) -> new Object() , actionsViewRenderer::render); + Spark.get("/events", eventLogService::eventsListModel , eventsRenderer::render); + Spark.get("/services/:id", this::serviceModel, serviceByIdRenderer::render); // Needed to be able to show website screenshots - Spark.get("/public/screenshot/:id", screenshotService::serveScreenshotRequest); + Spark.get("/screenshot/:id", screenshotService::serveScreenshotRequest); - Spark.get("/public/:resource", this::serveStatic); + Spark.get("/:resource", this::serveStatic); monitors.subscribe(this::logMonitorStateChange); diff --git a/code/services-core/control-service/java/nu/marginalia/control/app/svc/ApiKeyService.java b/code/services-core/control-service/java/nu/marginalia/control/app/svc/ApiKeyService.java index 8da2dd2c..88ac8da4 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/app/svc/ApiKeyService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/app/svc/ApiKeyService.java @@ -34,11 +34,11 @@ public class ApiKeyService { var apiKeysRenderer = rendererFactory.renderer("control/app/api-keys"); - Spark.get("/public/api-keys", this::apiKeysModel, apiKeysRenderer::render); - Spark.post("/public/api-keys", this::createApiKey, Redirects.redirectToApiKeys); - Spark.delete("/public/api-keys/:key", this::deleteApiKey, Redirects.redirectToApiKeys); + Spark.get("/api-keys", this::apiKeysModel, apiKeysRenderer::render); + Spark.post("/api-keys", this::createApiKey, Redirects.redirectToApiKeys); + Spark.delete("/api-keys/:key", this::deleteApiKey, Redirects.redirectToApiKeys); // HTML forms don't support the DELETE verb :-( - Spark.post("/public/api-keys/:key/delete", this::deleteApiKey, Redirects.redirectToApiKeys); + Spark.post("/api-keys/:key/delete", this::deleteApiKey, Redirects.redirectToApiKeys); } diff --git a/code/services-core/control-service/java/nu/marginalia/control/app/svc/ControlBlacklistService.java b/code/services-core/control-service/java/nu/marginalia/control/app/svc/ControlBlacklistService.java index 5ce23599..a5e3d300 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/app/svc/ControlBlacklistService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/app/svc/ControlBlacklistService.java @@ -36,8 +36,8 @@ public class ControlBlacklistService { public void register() throws IOException { var blacklistRenderer = rendererFactory.renderer("control/app/blacklist"); - Spark.get("/public/blacklist", this::blacklistModel, blacklistRenderer::render); - Spark.post("/public/blacklist", this::updateBlacklist, Redirects.redirectToBlacklist); + Spark.get("/blacklist", this::blacklistModel, blacklistRenderer::render); + Spark.post("/blacklist", this::updateBlacklist, Redirects.redirectToBlacklist); } private Object blacklistModel(Request request, Response response) { diff --git a/code/services-core/control-service/java/nu/marginalia/control/app/svc/DomainComplaintService.java b/code/services-core/control-service/java/nu/marginalia/control/app/svc/DomainComplaintService.java index 262bc4b5..04988c55 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/app/svc/DomainComplaintService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/app/svc/DomainComplaintService.java @@ -46,8 +46,8 @@ public class DomainComplaintService { public void register() throws IOException { var domainComplaintsRenderer = rendererFactory.renderer("control/app/domain-complaints"); - Spark.get("/public/complaints", this::complaintsModel, domainComplaintsRenderer::render); - Spark.post("/public/complaints/:domain", this::reviewComplaint, Redirects.redirectToComplaints); + Spark.get("/complaints", this::complaintsModel, domainComplaintsRenderer::render); + Spark.post("/complaints/:domain", this::reviewComplaint, Redirects.redirectToComplaints); } private Object complaintsModel(Request request, Response response) { diff --git a/code/services-core/control-service/java/nu/marginalia/control/app/svc/RandomExplorationService.java b/code/services-core/control-service/java/nu/marginalia/control/app/svc/RandomExplorationService.java index 38b74106..1720079b 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/app/svc/RandomExplorationService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/app/svc/RandomExplorationService.java @@ -32,9 +32,9 @@ public class RandomExplorationService { public void register() throws IOException { var reviewRandomDomainsRenderer = rendererFactory.renderer("control/app/review-random-domains"); - Spark.get("/public/review-random-domains", this::reviewRandomDomainsModel, reviewRandomDomainsRenderer::render); + Spark.get("/review-random-domains", this::reviewRandomDomainsModel, reviewRandomDomainsRenderer::render); - Spark.post("/public/review-random-domains", this::reviewRandomDomainsAction); + Spark.post("/review-random-domains", this::reviewRandomDomainsAction); } private Object reviewRandomDomainsModel(Request request, Response response) throws SQLException { diff --git a/code/services-core/control-service/java/nu/marginalia/control/app/svc/SearchToBanService.java b/code/services-core/control-service/java/nu/marginalia/control/app/svc/SearchToBanService.java index f9487e22..7993009c 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/app/svc/SearchToBanService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/app/svc/SearchToBanService.java @@ -39,8 +39,8 @@ public class SearchToBanService { public void register() throws IOException { var searchToBanRenderer = rendererFactory.renderer("control/app/search-to-ban"); - Spark.get("/public/search-to-ban", this::handle, searchToBanRenderer::render); - Spark.post("/public/search-to-ban", this::handle, searchToBanRenderer::render); + Spark.get("/search-to-ban", this::handle, searchToBanRenderer::render); + Spark.post("/search-to-ban", this::handle, searchToBanRenderer::render); } public Object handle(Request request, Response response) { diff --git a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlFileStorageService.java b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlFileStorageService.java index b385e32e..ea1b8d47 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlFileStorageService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlFileStorageService.java @@ -32,12 +32,12 @@ public class ControlFileStorageService { } public void register() throws IOException { - Spark.post("/public/storage/:fid/delete", this::flagFileForDeletionRequest, Redirects.redirectToStorage); + Spark.post("/storage/:fid/delete", this::flagFileForDeletionRequest, Redirects.redirectToStorage); - Spark.post("/public/nodes/:id/storage/:fid/delete", this::deleteFileStorage); - Spark.post("/public/nodes/:id/storage/:fid/enable", this::enableFileStorage); - Spark.post("/public/nodes/:id/storage/:fid/disable", this::disableFileStorage); - Spark.get("/public/nodes/:id/storage/:fid/transfer", this::downloadFileFromStorage); + Spark.post("/nodes/:id/storage/:fid/delete", this::deleteFileStorage); + Spark.post("/nodes/:id/storage/:fid/enable", this::enableFileStorage); + Spark.post("/nodes/:id/storage/:fid/disable", this::disableFileStorage); + Spark.get("/nodes/:id/storage/:fid/transfer", this::downloadFileFromStorage); } diff --git a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeActionsService.java b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeActionsService.java index b711be14..4b833789 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeActionsService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeActionsService.java @@ -58,55 +58,55 @@ public class ControlNodeActionsService { } public void register() { - Spark.post("/public/nodes/:node/actions/repartition-index", this::triggerRepartition, + Spark.post("/nodes/:node/actions/repartition-index", this::triggerRepartition, redirectControl.renderRedirectAcknowledgement("Repartitioning", "..") ); - Spark.post("/public/nodes/:node/actions/sideload-encyclopedia", this::sideloadEncyclopedia, + Spark.post("/nodes/:node/actions/sideload-encyclopedia", this::sideloadEncyclopedia, redirectControl.renderRedirectAcknowledgement("Sideloading", "..") ); - Spark.post("/public/nodes/:node/actions/sideload-dirtree", this::sideloadDirtree, + Spark.post("/nodes/:node/actions/sideload-dirtree", this::sideloadDirtree, redirectControl.renderRedirectAcknowledgement("Sideloading", "..") ); - Spark.post("/public/nodes/:node/actions/sideload-reddit", this::sideloadReddit, + Spark.post("/nodes/:node/actions/sideload-reddit", this::sideloadReddit, redirectControl.renderRedirectAcknowledgement("Sideloading", "..") ); - Spark.post("/public/nodes/:node/actions/sideload-warc", this::sideloadWarc, + Spark.post("/nodes/:node/actions/sideload-warc", this::sideloadWarc, redirectControl.renderRedirectAcknowledgement("Sideloading", "..") ); - Spark.post("/public/nodes/:node/actions/sideload-stackexchange", this::sideloadStackexchange, + Spark.post("/nodes/:node/actions/sideload-stackexchange", this::sideloadStackexchange, redirectControl.renderRedirectAcknowledgement("Sideloading", "..") ); - Spark.post("/public/nodes/:node/actions/export-segmentation", this::exportSegmentationModel, + Spark.post("/nodes/:node/actions/export-segmentation", this::exportSegmentationModel, redirectControl.renderRedirectAcknowledgement("Exporting", "..") ); - Spark.post("/public/nodes/:node/actions/download-sample-data", this::downloadSampleData, + Spark.post("/nodes/:node/actions/download-sample-data", this::downloadSampleData, redirectControl.renderRedirectAcknowledgement("Downloading", "..") ); - Spark.post("/public/nodes/:id/actions/new-crawl", this::triggerNewCrawl, + Spark.post("/nodes/:id/actions/new-crawl", this::triggerNewCrawl, redirectControl.renderRedirectAcknowledgement("Crawling", "..") ); - Spark.post("/public/nodes/:id/actions/recrawl", this::triggerAutoRecrawl, + Spark.post("/nodes/:id/actions/recrawl", this::triggerAutoRecrawl, redirectControl.renderRedirectAcknowledgement("Recrawling", "..") ); - Spark.post("/public/nodes/:id/actions/process", this::triggerProcess, + Spark.post("/nodes/:id/actions/process", this::triggerProcess, redirectControl.renderRedirectAcknowledgement("Processing", "..") ); - Spark.post("/public/nodes/:id/actions/load", this::triggerLoadSelected, + Spark.post("/nodes/:id/actions/load", this::triggerLoadSelected, redirectControl.renderRedirectAcknowledgement("Loading", "..") ); - Spark.post("/public/nodes/:id/actions/restore-backup", this::triggerRestoreBackup, + Spark.post("/nodes/:id/actions/restore-backup", this::triggerRestoreBackup, redirectControl.renderRedirectAcknowledgement("Restoring", "..") ); - Spark.post("/public/nodes/:id/actions/new-crawl-specs", this::createNewSpecsAction, + Spark.post("/nodes/:id/actions/new-crawl-specs", this::createNewSpecsAction, redirectControl.renderRedirectAcknowledgement("Creating", "../actions?view=new-crawl") ); - Spark.post("/public/nodes/:id/actions/export-db-data", this::exportDbData, + Spark.post("/nodes/:id/actions/export-db-data", this::exportDbData, redirectControl.renderRedirectAcknowledgement("Exporting", "..") ); - Spark.post("/public/nodes/:id/actions/export-from-crawl-data", this::exportFromCrawlData, + Spark.post("/nodes/:id/actions/export-from-crawl-data", this::exportFromCrawlData, redirectControl.renderRedirectAcknowledgement("Exporting", "..") ); - Spark.post("/public/nodes/:id/actions/export-sample-data", this::exportSampleData, + Spark.post("/nodes/:id/actions/export-sample-data", this::exportSampleData, redirectControl.renderRedirectAcknowledgement("Exporting", "..") ); } diff --git a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeService.java b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeService.java index a62bbad3..bc87a921 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/node/svc/ControlNodeService.java @@ -75,29 +75,29 @@ public class ControlNodeService { var configRenderer = rendererFactory.renderer("control/node/node-config"); - Spark.get("/public/nodes", this::nodeListModel, nodeListRenderer::render); - Spark.get("/public/nodes/:id", this::nodeOverviewModel, overviewRenderer::render); - Spark.get("/public/nodes/:id/", this::nodeOverviewModel, overviewRenderer::render); - Spark.get("/public/nodes/:id/actors", this::nodeActorsModel, actorsRenderer::render); - Spark.get("/public/nodes/:id/actions", this::nodeActionsModel, actionsRenderer::render); - Spark.get("/public/nodes/:id/storage/", this::nodeStorageConfModel, storageConfRenderer::render); - Spark.get("/public/nodes/:id/storage/conf", this::nodeStorageConfModel, storageConfRenderer::render); - Spark.get("/public/nodes/:id/storage/details", this::nodeStorageDetailsModel, storageDetailsRenderer::render); + Spark.get("/nodes", this::nodeListModel, nodeListRenderer::render); + Spark.get("/nodes/:id", this::nodeOverviewModel, overviewRenderer::render); + Spark.get("/nodes/:id/", this::nodeOverviewModel, overviewRenderer::render); + Spark.get("/nodes/:id/actors", this::nodeActorsModel, actorsRenderer::render); + Spark.get("/nodes/:id/actions", this::nodeActionsModel, actionsRenderer::render); + Spark.get("/nodes/:id/storage/", this::nodeStorageConfModel, storageConfRenderer::render); + Spark.get("/nodes/:id/storage/conf", this::nodeStorageConfModel, storageConfRenderer::render); + Spark.get("/nodes/:id/storage/details", this::nodeStorageDetailsModel, storageDetailsRenderer::render); - Spark.post("/public/nodes/:id/process/:processBase/stop", this::stopProcess, + Spark.post("/nodes/:id/process/:processBase/stop", this::stopProcess, redirectControl.renderRedirectAcknowledgement("Stopping", "../..") ); - Spark.get("/public/nodes/:id/storage/:view", this::nodeStorageListModel, storageListRenderer::render); + Spark.get("/nodes/:id/storage/:view", this::nodeStorageListModel, storageListRenderer::render); - Spark.get("/public/nodes/:id/configuration", this::nodeConfigModel, configRenderer::render); - Spark.post("/public/nodes/:id/configuration", this::updateConfigModel, configRenderer::render); + Spark.get("/nodes/:id/configuration", this::nodeConfigModel, configRenderer::render); + Spark.post("/nodes/:id/configuration", this::updateConfigModel, configRenderer::render); - Spark.post("/public/nodes/:id/storage/reset-state/:fid", this::resetState, + Spark.post("/nodes/:id/storage/reset-state/:fid", this::resetState, redirectControl.renderRedirectAcknowledgement("Restoring", "..") ); - Spark.post("/public/nodes/:id/fsms/:fsm/start", this::startFsm); - Spark.post("/public/nodes/:id/fsms/:fsm/stop", this::stopFsm); + Spark.post("/nodes/:id/fsms/:fsm/start", this::startFsm); + Spark.post("/nodes/:id/fsms/:fsm/stop", this::stopFsm); } private Object resetState(Request request, Response response) throws SQLException { diff --git a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/AbortedProcessService.java b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/AbortedProcessService.java index 8290e7dc..d188a25c 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/AbortedProcessService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/AbortedProcessService.java @@ -60,9 +60,9 @@ public class AbortedProcessService { public void register() { var abortedProcessesRenderer = rendererFactory.renderer("control/sys/aborted-processes"); - Spark.get("/public/aborted-processes", this::abortedProcessesModel, abortedProcessesRenderer::render); - Spark.get("/public/aborted-processes/", this::abortedProcessesModel, abortedProcessesRenderer::render); - Spark.post("/public/aborted-processes/:id", this::restartProcess, redirectControl.renderRedirectAcknowledgement("Restarting...", "/")); + Spark.get("/aborted-processes", this::abortedProcessesModel, abortedProcessesRenderer::render); + Spark.get("/aborted-processes/", this::abortedProcessesModel, abortedProcessesRenderer::render); + Spark.post("/aborted-processes/:id", this::restartProcess, redirectControl.renderRedirectAcknowledgement("Restarting...", "/")); } private Object abortedProcessesModel(Request request, Response response) { diff --git a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlDomainRankingSetsService.java b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlDomainRankingSetsService.java index e2adf14b..5e060c07 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlDomainRankingSetsService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlDomainRankingSetsService.java @@ -29,10 +29,10 @@ public class ControlDomainRankingSetsService { var updateDatasetRenderer = rendererFactory.renderer("control/sys/update-domain-ranking-set"); var newDatasetRenderer = rendererFactory.renderer("control/sys/new-domain-ranking-set"); - Spark.get("/public/domain-ranking-sets", this::rankingSetsModel, datasetsRenderer::render); - Spark.get("/public/domain-ranking-sets/new", (rq,rs) -> new Object(), newDatasetRenderer::render); - Spark.get("/public/domain-ranking-sets/:id", this::rankingSetModel, updateDatasetRenderer::render); - Spark.post("/public/domain-ranking-sets/:id", this::alterSetModel, Redirects.redirectToRankingDataSets); + Spark.get("/domain-ranking-sets", this::rankingSetsModel, datasetsRenderer::render); + Spark.get("/domain-ranking-sets/new", (rq,rs) -> new Object(), newDatasetRenderer::render); + Spark.get("/domain-ranking-sets/:id", this::rankingSetModel, updateDatasetRenderer::render); + Spark.post("/domain-ranking-sets/:id", this::alterSetModel, Redirects.redirectToRankingDataSets); } private Object alterSetModel(Request request, Response response) throws SQLException { diff --git a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlSysActionsService.java b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlSysActionsService.java index 738e2cd5..f2e52c2d 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlSysActionsService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/ControlSysActionsService.java @@ -64,13 +64,13 @@ public class ControlSysActionsService { public void register() { var actionsView = rendererFactory.renderer("control/sys/sys-actions"); - Spark.get("/public/actions", this::actionsModel, actionsView::render); - Spark.post("/public/actions/recalculate-adjacencies-graph", this::calculateAdjacencies, Redirects.redirectToOverview); - Spark.post("/public/actions/reindex-all", this::reindexAll, Redirects.redirectToOverview); - Spark.post("/public/actions/reprocess-all", this::reprocessAll, Redirects.redirectToOverview); - Spark.post("/public/actions/recrawl-all", this::recrawlAll, Redirects.redirectToOverview); - Spark.post("/public/actions/flush-api-caches", this::flushApiCaches, Redirects.redirectToOverview); - Spark.post("/public/actions/reload-blogs-list", this::reloadBlogsList, Redirects.redirectToOverview); + Spark.get("/actions", this::actionsModel, actionsView::render); + Spark.post("/actions/recalculate-adjacencies-graph", this::calculateAdjacencies, Redirects.redirectToOverview); + Spark.post("/actions/reindex-all", this::reindexAll, Redirects.redirectToOverview); + Spark.post("/actions/reprocess-all", this::reprocessAll, Redirects.redirectToOverview); + Spark.post("/actions/recrawl-all", this::recrawlAll, Redirects.redirectToOverview); + Spark.post("/actions/flush-api-caches", this::flushApiCaches, Redirects.redirectToOverview); + Spark.post("/actions/reload-blogs-list", this::reloadBlogsList, Redirects.redirectToOverview); } @SneakyThrows diff --git a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/DataSetsService.java b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/DataSetsService.java index d1636623..c85d5b80 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/DataSetsService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/DataSetsService.java @@ -28,8 +28,8 @@ public class DataSetsService { public void register() throws IOException { var datasetsRenderer = rendererFactory.renderer("control/sys/data-sets"); - Spark.get("/public/datasets", this::dataSetsModel, datasetsRenderer::render); - Spark.post("/public/datasets", this::updateDataSets, datasetsRenderer::render); + Spark.get("/datasets", this::dataSetsModel, datasetsRenderer::render); + Spark.post("/datasets", this::updateDataSets, datasetsRenderer::render); } public Object dataSetsModel(Request request, Response response) { diff --git a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/MessageQueueService.java b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/MessageQueueService.java index 922d4a20..4ef9df9a 100644 --- a/code/services-core/control-service/java/nu/marginalia/control/sys/svc/MessageQueueService.java +++ b/code/services-core/control-service/java/nu/marginalia/control/sys/svc/MessageQueueService.java @@ -41,13 +41,13 @@ public class MessageQueueService { var newMessageRenderer = rendererFactory.renderer("control/sys/new-message"); var viewMessageRenderer = rendererFactory.renderer("control/sys/view-message"); - Spark.get("/public/message-queue", this::listMessageQueueModel, messageQueueRenderer::render); - Spark.post("/public/message-queue/", this::createMessage, Redirects.redirectToMessageQueue); - Spark.get("/public/message-queue/new", this::newMessageModel, newMessageRenderer::render); - Spark.get("/public/message-queue/:id", this::viewMessageModel, viewMessageRenderer::render); - Spark.get("/public/message-queue/:id/reply", this::replyMessageModel, newMessageRenderer::render); - Spark.get("/public/message-queue/:id/edit", this::viewMessageForEditStateModel, updateMessageStateRenderer::render); - Spark.post("/public/message-queue/:id/edit", this::editMessageState, Redirects.redirectToMessageQueue); + Spark.get("/message-queue", this::listMessageQueueModel, messageQueueRenderer::render); + Spark.post("/message-queue/", this::createMessage, Redirects.redirectToMessageQueue); + Spark.get("/message-queue/new", this::newMessageModel, newMessageRenderer::render); + Spark.get("/message-queue/:id", this::viewMessageModel, viewMessageRenderer::render); + Spark.get("/message-queue/:id/reply", this::replyMessageModel, newMessageRenderer::render); + Spark.get("/message-queue/:id/edit", this::viewMessageForEditStateModel, updateMessageStateRenderer::render); + Spark.post("/message-queue/:id/edit", this::editMessageState, Redirects.redirectToMessageQueue); } diff --git a/code/services-core/query-service/java/nu/marginalia/query/QueryService.java b/code/services-core/query-service/java/nu/marginalia/query/QueryService.java index 5a2cc82f..6a7a7b0a 100644 --- a/code/services-core/query-service/java/nu/marginalia/query/QueryService.java +++ b/code/services-core/query-service/java/nu/marginalia/query/QueryService.java @@ -31,10 +31,10 @@ public class QueryService extends Service { List.of(queryGRPCService, domainLinksService)); - Spark.get("/public/search", queryBasicInterface::handleBasic); + Spark.get("/search", queryBasicInterface::handleBasic); if (!Boolean.getBoolean("noQdebug")) { - Spark.get("/public/qdebug", queryBasicInterface::handleAdvanced); + Spark.get("/qdebug", queryBasicInterface::handleAdvanced); } Spark.exception(Exception.class, (e, request, response) -> { diff --git a/run/install/docker-compose-barebones-1.yml.template b/run/install/docker-compose-barebones-1.yml.template index e4c71a6b..66283e8c 100644 --- a/run/install/docker-compose-barebones-1.yml.template +++ b/run/install/docker-compose-barebones-1.yml.template @@ -50,9 +50,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.search-service.rule=PathPrefix(`/`)" - "traefik.http.routers.search-service.entrypoints=search" - - "traefik.http.routers.search-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" control-service: <<: *service image: "marginalia/control-service" @@ -66,9 +63,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.control-service.rule=PathPrefix(`/`)" - "traefik.http.routers.control-service.entrypoints=control" - - "traefik.http.routers.control-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" mariadb: image: "mariadb:lts" container_name: "mariadb" diff --git a/run/install/docker-compose-barebones-2.yml.template b/run/install/docker-compose-barebones-2.yml.template index ab9d0a08..0b6b9971 100644 --- a/run/install/docker-compose-barebones-2.yml.template +++ b/run/install/docker-compose-barebones-2.yml.template @@ -78,9 +78,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.search-service.rule=PathPrefix(`/`)" - "traefik.http.routers.search-service.entrypoints=search" - - "traefik.http.routers.search-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" control-service: <<: *service image: "marginalia/control-service" @@ -94,9 +91,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.control-service.rule=PathPrefix(`/`)" - "traefik.http.routers.control-service.entrypoints=control" - - "traefik.http.routers.control-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" mariadb: image: "mariadb:lts" container_name: "mariadb" diff --git a/run/install/docker-compose-marginalia.yml.template b/run/install/docker-compose-marginalia.yml.template index e8622a97..ed562ab9 100644 --- a/run/install/docker-compose-marginalia.yml.template +++ b/run/install/docker-compose-marginalia.yml.template @@ -82,9 +82,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.search-service.rule=PathPrefix(`/`)" - "traefik.http.routers.search-service.entrypoints=search" - - "traefik.http.routers.search-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" assistant-service: <<: *service image: "marginalia/assistant-service" @@ -95,13 +92,8 @@ services: - "traefik.enable=true" - "traefik.http.routers.assistant-service-screenshot.rule=PathPrefix(`/screenshot`)" - "traefik.http.routers.assistant-service-screenshot.entrypoints=search" - - "traefik.http.routers.assistant-service-screenshot.middlewares=add-xpublic" - - "traefik.http.routers.assistant-service-screenshot.middlewares=add-public" - "traefik.http.routers.assistant-service-suggest.rule=PathPrefix(`/suggest`)" - "traefik.http.routers.assistant-service-suggest.entrypoints=search" - - "traefik.http.routers.assistant-service-suggest.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" api-service: <<: *service image: "marginalia/api-service" @@ -112,9 +104,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.api-service.rule=PathPrefix(`/`)" - "traefik.http.routers.api-service.entrypoints=api" - - "traefik.http.routers.api-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" control-service: <<: *service image: "marginalia/control-service" @@ -128,9 +117,6 @@ services: - "traefik.enable=true" - "traefik.http.routers.control-service.rule=PathPrefix(`/`)" - "traefik.http.routers.control-service.entrypoints=control" - - "traefik.http.routers.control-service.middlewares=add-xpublic,add-public" - - "traefik.http.middlewares.add-xpublic.headers.customrequestheaders.X-Public=1" - - "traefik.http.middlewares.add-public.addprefix.prefix=/public" mariadb: image: "mariadb:lts" container_name: "mariadb"