require("dotenv").config() const PF_DOMAIN = process.env.PF_DOMAIN || "demo.onegeosuite.fr" const PF_PROTOCOL = process.env.PF_PROTOCOL || "https" const PF_PORT = process.env.PF_PORT || 443 const PF_URL = PF_PORT != 443 && PF_PORT != 80 ? PF_PROTOCOL + "://" + PF_DOMAIN + ":" + PF_PORT : PF_PROTOCOL + "://" + PF_DOMAIN const DIRECTUS_URL = process.env.DIRECTUS_URL || PF_URL + "/directus/" console.info("Plateform URL = ", PF_URL) console.info("Directus URL = ", DIRECTUS_URL, process.env.DIRECTUS_TOKEN) module.exports = { siteMetadata: { title: `Onegeo Portal`, subtitle: `Hub géospatial collaboratif`, description: `Solution Open Source sur-mesure pour communiquer et valoriser les données disponibles sur votre territoire ou vos infrastructures`, author: `NEOGEO`, // Required for gatsby-plugin-sitemap siteUrl: PF_URL, icon: ``, }, plugins: [ `gatsby-plugin-react-helmet`, `gatsby-plugin-typescript`, `gatsby-plugin-image`, `gatsby-transformer-sharp`, `gatsby-plugin-sharp`, `gatsby-plugin-sitemap`, { resolve: `gatsby-plugin-env-variables`, options: { allowList: [ "PROJECT_INTERNAL_PROTOCOL", "PROJECT_INTERNAL_HOST", "PROJECT_INTERNAL_PORT", "PROJECT_PROTOCOL", "PROJECT_HOST", "PROJECT_PORT", "PROJECT_URL", "PF_URL", "DIRECTUS_URL", "DIRECTUS_ASSETS_URL", "GRAPHQL_URL", "OGS_EXPLORER_PATH", "OGS_LOGIN_PATH", "DEV_BASE_URL", ], }, }, { resolve: `gatsby-source-filesystem`, options: { name: `images`, path: `${__dirname}/src/images`, }, }, process.env.NODE_ENV === `development` ? { resolve: `gatsby-plugin-page-creator`, options: { path: `${__dirname}/src/pages-doc`, }, } : { resolve: `gatsby-plugin-page-creator`, options: { path: `${__dirname}/src/pages`, }, }, { resolve: `gatsby-plugin-feed`, options: { query: ` { directus { site { id theme title description author } } site { pathPrefix siteMetadata { title description siteUrl } } } `, feeds: [ { serialize: ({ query: { site, directus } }) => { return directus.news.map((item) => { const baseUrl = [ site.siteMetadata.siteUrl, site.pathPrefix || "", "news", ].join("/") const thumbnail = item.image?.imageFile?.publicURL // TODO URL ENcode image url const thumbnailUrl = thumbnail ? site.siteMetadata.siteUrl + encodeURI(thumbnail) : null return Object.assign( {}, { title: item.title, description: ( item.abstract || item.content ).slice(0, 250) + "...", date: item.date_published, url: baseUrl + "/" + item.slug, guid: baseUrl + "/" + item.slug, enclosure: { url: thumbnailUrl, }, category: "news", } ) }) }, query: ` { directus { news( filter: { status: { _eq: "published" } } sort: "-date_published" ) { id slug content abstract title date_published image { id imageFile { publicURL } } categories { id name label } } } } `, output: "/feed.rss", title: "Onegeo Suite Portal RSS Feed", }, ], }, }, { resolve: "@onegeo-suite/gatsby-source-directus", options: { url: DIRECTUS_URL, auth: { token: process.env.DIRECTUS_TOKEN, }, }, }, { resolve: "@onegeo-suite/gatsby-plugin-auth", options: {}, }, // this (optional) plugin enables Progressive Web App + Offline functionality // To learn more, visit: https://gatsby.dev/offline // `gatsby-plugin-offline`, ], proxy: [ { // Access Geoserver API prefix: "/geoserver", url: PF_URL, }, { // Access Metabase API prefix: "/metabase", url: PF_URL, }, { // Access OGS Explorer API prefix: "/fr", url: PF_URL, }, { // Access OGS Maps API prefix: "/maps", url: PF_URL, }, { // Access Mapstore API prefix: "/geoportal", url: PF_URL, }, ], }