require("dotenv").config()
const proxy = require("http-proxy-middleware")
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",
"TYPESENSE_API_PATH",
// TODO add API_TOKEN with Read Only privileges (client use)
"TYPESENSE_API_TOKEN",
"DIRECTUS_URL",
"DIRECTUS_ASSETS_URL",
"GRAPHQL_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: "@onegeo-suite/gatsby-source-directus",
options: {
url: DIRECTUS_URL,
auth: {
token: process.env.DIRECTUS_TOKEN,
},
},
},
{
resolve: "@onegeo-suite/gatsby-plugin-auth",
options: {},
},
/*
{
resolve: `gatsby-plugin-typesense`,
options: {
publicDir: `./public`, // Required
collectionSchema: {
// Required
name: "pages_v1",
fields: [
{
name: "title",
type: "string",
},
{
name: "description",
type: "string",
},
{
name: "typeData",
type: "string",
optional: true,
facet: true,
},
{
name: "thumbnail",
type: "string",
optional: true,
},
{
name: "tags",
type: "string[]",
optional: true,
facet: true,
},
{
name: "page_path", // Required
type: "string",
},
{
name: "page_priority_score", // Required
type: "int32",
},
],
default_sorting_field: "page_priority_score", // Required
},
server: {
// Required
apiKey: process.env.TYPESENSE_API_TOKEN,
nodes: [
{
protocol:
process.env.PROJECT_INTERNAL_PROTOCOL ||
process.env.PROJECT_PROTOCOL,
host:
process.env.PROJECT_INTERNAL_HOST || process.env.PROJECT_HOST,
port:
process.env.PROJECT_INTERNAL_PORT || process.env.PROJECT_PORT,
path: process.env.TYPESENSE_API_PATH || "/search/",
},
],
},
},
},
*/
// this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.dev/offline
// `gatsby-plugin-offline`,
],
developMiddleware: (app) => {
app.use(
"/geoportal/",
proxy.createProxyMiddleware("/geoportal/", {
target: PF_URL,
secure: false,
})
)
app.use(
"/fr/",
proxy.createProxyMiddleware("/fr/", {
target: PF_URL,
secure: false,
})
)
},
}