Docs: create overview of online services (for F-Droid acceptance); inline ELI again

This commit is contained in:
Pieter Vander Vennet 2025-06-27 18:36:02 +02:00
parent 1a75823f17
commit e9209f6b7c
26 changed files with 1099 additions and 298 deletions

View file

@ -1,7 +1,7 @@
import * as packagefile from "../../package.json"
import * as extraconfig from "../../config.json"
import { Utils } from "../Utils"
import { AuthConfig } from "../Logic/Osm/AuthConfig"
import { ServerSourceInfo } from "./SourceOverview"
export type PriviligedLayerType = (typeof Constants.priviliged_layers)[number]
export type DefaultPinIcon = (typeof Constants._defaultPinIcons)[number]
@ -55,7 +55,14 @@ export default class Constants {
token: string
sequence: string
testsequence: string
} = packagefile.config.panoramax
} & ServerSourceInfo = { ...packagefile.config.panoramax,
description: "The panoramax-server that MapComplete uploads to",
category: "core",
sourceAvailable: true,
openData: true,
selfhostable: true,
moreInfo: ["https://wiki.openstreetmap.org/wiki/Panoramax"]
}
// The user journey states thresholds when a new feature gets unlocked
public static userJourney = {
@ -134,15 +141,68 @@ export default class Constants {
public static readonly mapillary_client_token_v4 = Constants.config.api_keys.mapillary_v4
public static defaultOverpassUrls = Constants.config.default_overpass_urls
public static countryCoderEndpoint: string = Constants.config.country_coder_host
public static countryCoderInfo: ServerSourceInfo = {
url: this.countryCoderEndpoint,
trigger: ["always"],
openData: true,
category: "core",
logging: "no",
selfhostable: true,
sourceAvailable: true,
moreInfo:["https://source.mapcomplete.org/MapComplete/latlon2country"],
description: "For quite some functions, we need to know in what _country_ a feature is located. LatLon2Country is a static dataset, which, by cleverly encoding the data, can quickly tell in what country a feature is located."
}
public static communityIndexHost: string = Constants.config.community_index_host
public static osmAuthConfig: AuthConfig = Constants.config.oauth_credentials
private static osmServerInfo: Omit<ServerSourceInfo, "url"> = { trigger: ["always"],
description: "Login service, by OpenStreetMap.org",
sourceAvailable: true,
openData: true,
selfhostable: "partially - a copy can be hosted, but this would be useless",
category: "core",
moreInfo: ["https://www.openstreetmap.org/copyright","https://www.openstreetmap.org/about", "https://osmfoundation.org/wiki/Privacy_Policy"]
}
public static osmAuthConfig: AuthConfig & ServerSourceInfo= {... Constants.config.oauth_credentials,
...this.osmServerInfo
}
public static nominatimEndpoint: string = Constants.config.nominatimEndpoint
public static nominatimEndpointInfo: ServerSourceInfo = {
url: this.nominatimEndpoint,
description: "Nominatim search engine endpoint, used when searching",
selfhostable: true,
openData: true,
sourceAvailable: true,
category: "core",
trigger:["specific_feature"],
moreInfo: ["https://wiki.openstreetmap.org/wiki/Nominatim"]
}
public static photonEndpoint: string = Constants.config.photonEndpoint
public static photonEndpointInfo: ServerSourceInfo = {
url: this.photonEndpoint,
description: "Endpoint for search with photon",
sourceAvailable: true,
selfhostable: true,
openData: true,
category: "core",
trigger: ["specific_feature"],
moreInfo: ["https://wiki.openstreetmap.org/wiki/Photon"]
}
public static nsiLogosEndpoint: string = Constants.config.nsi_logos_server ?? null
public static weblate: string = "https://translate.mapcomplete.org/"
public static linkedDataProxy: string = Constants.config["jsonld-proxy"]
public static linkedDataProxyInfo: ServerSourceInfo = {
url: Constants.config["jsonld-proxy"],
trigger: ["specific_feature"],
category: "core",
openData: true,
description: "This proxy queries websites to detect if they contain linked open data and gives this data back. Triggered by opening a feature",
sourceAvailable: true,
selfhostable: true,
moreInfo: ["https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/scripts/serverLdScrape.ts"]
}
/**
* These are the values that are allowed to use as 'backdrop' icon for a map pin
*/
@ -208,22 +268,65 @@ export default class Constants {
* This is a MapLibre/MapBox vector tile server which hosts vector tiles for every (official) layer
*/
public static VectorTileServer: string | undefined = Constants.config.mvt_layer_server
public static vectorTileServerInfo: ServerSourceInfo = {
url: this.VectorTileServer,
description: "The vectortileserver is a cache of OSM data and can be used as an alternative for overpass to actually show data, esp on low zoom levels",
selfhostable: true,
openData: true,
category: "core",
sourceAvailable: true,
trigger: ["always"],
moreInfo: ["https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/SettingUpPSQL.md"]
}
public static GeoIpServer: string | undefined = Constants.config.geoip_server
public static geoIpServerInfo: ServerSourceInfo = {
url: this.GeoIpServer,
category: "core",
description: "When opening MapComplete for the first time, we try to set the map at a relevant location. For this, we try to determine the location based on the IP-address; this is done by this service.",
selfhostable: true,
openData: false,
trigger: ["always"],
sourceAvailable: true
}
public static ErrorReportServer: string | undefined = Constants.config.error_server
public static errorReportServerInfo: ServerSourceInfo = {
url: this.ErrorReportServer,
logging: "yes",
category: "core",
selfhostable: "yes",
openData: "no (privacy)",
trigger: ["on_failure"],
description: "If a severe error occurs in MapComplete, this is logged on this server - this mostly concerns errors where making a change to OpenStreetMap failed. Data is handled confidentially and _only_ to replay the change and fix the root cause."
}
public static readonly SummaryServer: string = Constants.config.summary_server
public static allServers: string[] = [
Constants.SummaryServer,
Constants.VectorTileServer,
Constants.GeoIpServer,
Constants.ErrorReportServer,
Constants.countryCoderEndpoint,
Constants.osmAuthConfig.url,
Constants.nominatimEndpoint,
Constants.photonEndpoint,
Constants.linkedDataProxy,
...Constants.defaultOverpassUrls,
public static readonly summaryServerInfo: ServerSourceInfo = {
url: this.SummaryServer,
trigger: ["always"],
category: "core",
selfhostable: true,
sourceAvailable: true,
openData: true,
description: "This server indicates how much items there are (according to OpenStreetMap) at a given slippy tile coordinate"
}
public static allServers: ServerSourceInfo[] = [
Constants.summaryServerInfo,
Constants.vectorTileServerInfo,
Constants.geoIpServerInfo,
Constants.errorReportServerInfo,
Constants.osmAuthConfig,
Constants.countryCoderInfo,
Constants.nominatimEndpointInfo,
Constants.photonEndpointInfo,
...Constants.defaultOverpassUrls.map(url => (<ServerSourceInfo>{
url,
openData: true,
selfhostable: true,
trigger: ["always"],
sourceAvailable: true,
category: "core",
description: "Overpass is a query service where OpenStreetMap-data can be retrieved. Various overpass-servers are used to query this data",
moreInfo: ["https://wiki.openstreetmap.org/wiki/Overpass_turbo"]
})),
]
private static priviligedLayerSet = new Set<string>(Constants.priviliged_layers)