Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,8 @@ apps/elt/logs/**

dist/

# mkdocs build output
site/

.claude/settings.local.json
.claude/plans/
17 changes: 17 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

build:
os: ubuntu-22.04
tools:
python: "3.11"

mkdocs:
configuration: mkdocs.yml

python:
install:
- requirements: mkdocs_requirements.txt
231 changes: 225 additions & 6 deletions apps/backend/datafeeder.env
Original file line number Diff line number Diff line change
@@ -1,13 +1,232 @@
# Used to override default values in config.py
# Datafeeder backend configuration reference
#
# This file documents every configuration option read by the backend
# (see apps/backend/src/core/config.py). Each option is listed with its
# default value and a short description.
#
# How configuration is resolved (first source that provides a value for a
# given setting wins; see settings_customise_sources in config.py):
# 1. geOrchestra default.properties (datadir/default.properties) [highest priority]
# 2. Environment variables
# 3. This .env file (DATAFEEDER_CONFIG or
# <datadir>/datafeeder/datafeeder.env)
# 4. Init/keyword arguments
# 5. Secret files [lowest priority]
#
# Only the values you want to override need to be present; every option below
# has a default. Uncomment and adapt the ones relevant to your instance.
#
# Notes:
# - Values may reference environment variables with ${VAR} syntax; they are
# expanded at load time (see expand_env_vars validator).
# - Some PostgreSQL options also accept geOrchestra-style aliases coming from
# default.properties (pgsqlHost, pgsqlPort, ...). These aliases are noted
# below.

### Project information

# Human readable name of the application.
# Default: Datafeeder
#PROJECT_NAME=Datafeeder

# Internal URL of the backend, as reachable by other services (server side).
# Default: http://localhost:8000
BACKEND_INTERNAL_URL=http://host.docker.internal:8000
TMP_UPLOAD_PATH=/tmp/
ENCRYPTION_KEY=your_encryption_key

# Public base URL of the published data service (GeoServer), shown to users.
# Default: http://localhost:8080/geoserver
#DATA_PUBLIC_URL=http://localhost:8080/geoserver

# Public URL template of a dataset in Datahub. {metadata_id} is substituted.
# Default: http://localhost:8080/datahub/dataset/{metadata_id}
#DATAHUB_PUBLIC_URL=http://localhost:8080/datahub/dataset/{metadata_id}

# Public base URL of the metadata catalog (GeoNetwork), shown to users.
# Default: http://localhost:8080/geonetwork
#METADATA_PUBLIC_URL=http://localhost:8080/geonetwork

# Path to the geOrchestra datadir used by the application.
# Default: resolved by get_default_datadir()
#DATADIR_PATH=/etc/georchestra

### API configuration

# Deployment environment. Controls strictness of secret validation:
# in "local" weak secrets only warn, otherwise they raise an error.
# Allowed values: local, staging, production
# Default: local
#ENVIRONMENT=local

# Directory where uploaded files are temporarily stored.
# Default: /tmp/
#TMP_UPLOAD_PATH=/tmp/

# JSON array of projections offered to the frontend.
# Each item is {"value": "<EPSG code>", "label": "<display name>"}.
# Default: [{"value": "EPSG:4326", "label": "WGS 84"}, {"value": "EPSG:3857", "label": "Web Mercator"}]
#PROJECTIONS=[{"value": "EPSG:4326", "label": "WGS 84"}, {"value": "EPSG:3857", "label": "Web Mercator"}]

### Security

# Secret key used to sign/secure tokens. Generated randomly if unset.
# Must NOT be "changethis"; required to be strong outside local environment.
# Default: randomly generated at startup
#SECRET_KEY=changeme

# Encryption key used to store sensitive data (e.g. HTTP Basic Auth
# credentials). Must NOT be "changethis" outside local environment.
# Default: (empty)
#ENCRYPTION_KEY=your_encryption_key

### Task executor

# Backend used to run ingestion/processing tasks.
# Allowed values: AIRFLOW (and other TaskExecutorType members).
# Default: AIRFLOW
#TASK_EXECUTOR=AIRFLOW

### Airflow

# Internal URL of the Airflow API/web server.
# Default: http://localhost:8081/airflow
#AIRFLOW_INTERNAL_URL=http://localhost:8081/airflow

# Airflow username used by the backend to trigger DAGs.
# Default: airflow
#AIRFLOW_USERNAME=airflow

# Airflow password used by the backend to trigger DAGs.
# Default: airflow
#AIRFLOW_PASSWORD=airflow

# Lifetime of issued access tokens, in minutes.
# Default: 11520 (8 days)
#ACCESS_TOKEN_EXPIRE_MINUTES=11520

# Hour of the day (0-23) at which daily/weekly/monthly/yearly recurrences run.
# Default: 4
#RECURRENCE_EXECUTION_HOUR=4

### CORS

# URL of the frontend application; always added to the allowed CORS origins.
# Default: http://localhost:5173
#FRONTEND_HOST=http://localhost:5173

# Additional allowed CORS origins. Comma-separated list or a JSON array.
# Default: (empty)
#BACKEND_CORS_ORIGINS=http://localhost:5173,http://localhost:8080

### PostgreSQL - Datafeeder application database
# This is the database holding the application's own data.
# Aliases from default.properties / generic names are accepted as noted.

# Host of the application database.
# Aliases accepted: pgsqlHost, POSTGRES_HOST
# Default: localhost
#POSTGRES_DATAFEEDER_HOST=localhost

# Port of the application database.
# Aliases accepted: pgsqlPort, POSTGRES_PORT
# Default: 5432
#POSTGRES_DATAFEEDER_PORT=5432

# User of the application database.
# Aliases accepted: pgsqlUser, POSTGRES_USER
# Default: georchestra
#POSTGRES_DATAFEEDER_USER=georchestra

# Password of the application database. Must NOT be "changethis" outside local.
# Aliases accepted: pgsqlPassword, POSTGRES_PASSWORD
# Default: georchestra
#POSTGRES_DATAFEEDER_PASSWORD=georchestra

# Name of the application database.
# Aliases accepted: pgsqlDatabase, POSTGRES_DB
# Default: georchestra
#POSTGRES_DATAFEEDER_DB=georchestra

### PostgreSQL - Data database
# Database where imported/published datasets are written.
# If any of these is left unset, it falls back to the matching
# POSTGRES_DATAFEEDER_* value (see _set_data_db_defaults).

# Host of the data database. Default: same as POSTGRES_DATAFEEDER_HOST
POSTGRES_DATA_HOST=localhost

# Port of the data database. Default: same as POSTGRES_DATAFEEDER_PORT
POSTGRES_DATA_PORT=5433

# User of the data database. Default: same as POSTGRES_DATAFEEDER_USER
POSTGRES_DATA_USER=postgres

# Password of the data database. Default: same as POSTGRES_DATAFEEDER_PASSWORD
POSTGRES_DATA_PASSWORD=mypassword

# Name of the data database. Default: same as POSTGRES_DATAFEEDER_DB
POSTGRES_DATA_DB=postgres
# In local dev the source DB reuses the same PostgreSQL instance as the data DB.
# In production these point to a separate external source database.

# Source databases for the "database import" type, as a JSON object mapping a
# key to a SQLAlchemy/PostgreSQL URI. The key (e.g. SOURCE_DB_1) must match the
# Airflow connection name in airflow/files/conn.json.
# Default: {} (empty)
SOURCE_DATABASES={"SOURCE_DB_1": "postgresql://postgres:mypassword@localhost:5433/postgres"}
#TASK_EXECUTOR=CELERY

# When true, final tables are written to a schema named after the org short
# name instead of the default "data" schema.
# Default: false
#USE_ORG_SCHEMA=false

### GeoServer

# Internal URL of the GeoServer instance, MUST be through the gateway.
# Default: http://localhost:8080/geoserver
#GEOSERVER_INTERNAL_URL=http://localhost:8080/geoserver

# GeoServer administrator user. Default: testadmin
#GEOSERVER_USER=testadmin

# GeoServer administrator password. Default: testadmin
#GEOSERVER_PASSWORD=testadmin

### GeoNetwork

# Internal URL of the GeoNetwork instance, MUST be through the gateway.
# Default: http://localhost:8080/geonetwork
#GEONETWORK_INTERNAL_URL=http://localhost:8080/geonetwork

# GeoNetwork administrator user. Default: testadmin
#GEONETWORK_USERNAME=testadmin

# GeoNetwork administrator password. Default: testadmin
#GEONETWORK_PASSWORD=testadmin

# XSRF token sent to GeoNetwork. Any UUID is accepted.
# Default: c9f33266-e242-4198-a18c-b01290dce5f1
#GEONETWORK_XSRF_TOKEN=c9f33266-e242-4198-a18c-b01290dce5f1

# Strategy used to synchronize metadata privileges with GeoNetwork groups.
# Allowed values: ORG, ROLE
# Default: ORG
#GN_SYNC_MODE=ORG

# Default GeoNetwork group name used when publishing metadata.
# Default: sample
METADATA_DEFAULT_GROUP_NAME=PSC

### Console

# Internal URL of the geOrchestra console.
# Default: http://localhost:8085/console
#CONSOLE_INTERNAL_URL=http://localhost:8085/console

### Authorization UI filters

# Regex used to filter metadata groups shown in the authorization UI.
# Default: (empty, no filtering)
#METADATA_GROUPS_LABEL_FILTER_REGEX=

# Regex used to filter data groups shown in the GeoServer authorization UI.
# Default: (empty, no filtering)
#DATA_GROUPS_LABEL_FILTER_REGEX=

Loading
Loading