Skip to content

Repository files navigation

planet-dumper

This cli is responsible for creating an osm dump file (pbf format) representing the current "planet" of an openstreetmap database, meaning a snapshot of all the osm elements in a current time. The dump will be uploaded to a s3 based object storage if configured so and the metadata will be insterted into dump-server.

This is accomplished by using the planet-dump-ng tool against a postgres backup file created with pg_dump.

supports versions 12, 13, 14 and 15 of postgres

Usage

pg_dump

index.js pg_dump
create a postgres dump from an existing osm database
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-o, --outputFormat, --output-format The resulting output name format,
example:
prefix_{state}_{timestamp}_suffix.pbf
[string] [required]
-s, --stateSource Determines state seqeunce number to
source [string] [default: "1"]
-c, --cleanupMode the command execution cleanup mode
[string] [choices: "none", "pre-clean-others", "post-clean-others"] [default:
"none"]

create

index.js create
create a pbf dump from an osm database
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-e, --s3Endpoint, --s3-endpoint The s3 endpoint [string] [required]
-b, --s3BucketName, --s3-bucket-name The bucket the resulting dump will
be uploaded to [string] [required]
-a, --s3Acl, --s3-acl The canned acl policy for uploaded
objects
[choices: "authenticated-read", "private", "public-read", "public-read-write"]
[default: "private"]
-s, --dumpServerEndpoint, The endpoint of the dump-server
--dump-server-endpoint [string]
-H, --dumpServerHeaders, The headers to attach to the
--dump-server-headers dump-server request
[array] [default: []]
-c, --cleanupMode the command execution cleanup mode
[string] [choices: "none", "pre-clean-others", "post-clean-others",
"post-clean-workdir", "post-clean-all"] [default: "none"]

Cli Environment Variables

Any option that can be set using the cli command line, can be also set by writing its value in SNAKE_CASE. For example, the option --s3-bucket-name can be set by using the S3_BUCKET_NAME environment variables.

Configuration

Env Variables

Required environment variables:

  • PGHOST - Database host
  • PGDATABASE - Database name
  • PGUSER - Database user
  • PGPASSWORD - Database user's password
  • PGPORT - Database's port
  • POSTGRES_ENABLE_SSL_AUTH - flag for enabling postgres certificate, auth set as 'true' for enabling any other value will be falsy

Optional environment variables:

  • PG_DUMP_VERBOSE - verbose flag for pg_dump defaults to false
  • NG_DUMP_MAX_CONCURRENCY - maximum number of disk writing threads to run for each table
  • HTTP_CLIENT_TIMEOUT - http client timeout duration in ms, defaults to 1000ms

Required if POSTGRES_ENABLE_SSL_AUTH is true:

  • POSTGRES_SSL_CERT - path to cert file
  • POSTGRES_SSL_KEY - path to cert auth kay
  • POSTGRES_SSL_ROOT_CERT - path to root cert

Exit Codes:

Exit codes mapping:

Exit Code NumberNameMeaning
0successthe program finished successfuly.
1general errorcatchall for general errors.
100pg-dump errorthe program threw an exception raised by pg_dump.
101planet-dump-ng errorthe program threw an exception raised by planet-dump-ng.
102s3 general errorthe program threw a general exception raised in the process of uploading to s3.
103s3 bucket not existthe given bucket name does not exist on the object storage.
104object key already existsthe created dump has an object key which does already exist on the bucket.
105remote service response errorremote service responded with an error.
106remote service unavailablecould not reach to remote service.
107invalid state errorstate file located in s3 is invalid.

Building and Running

Build argument variables

  • NODE_VERSION - the version of node, defaults to 16
  • PLANET_DUMP_NG_TAG - the version of planet-dump-ng, defaults to v1.2.7
  • POSTGRESQL_VERSION - the version of postgresql-client to be installed, by default version 15 notice that the postgresql-client version should be determined by your postgresql database version, tested on versions 12, 13, 14 and 15 of postgres.

Building the container

 docker build \
--build-arg PLANET_DUMP_NG_TAG=v1.2.0 \
--build-arg POSTGRESQL_VERSION=13 \
-f ./Dockerfile -t planet-dumper:latest .

Running the container

 docker run \
--env-file .env \
-t planet-dumper:latest

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages