livingdocs-server CLI

Livingdocs provides a powerful server CLI where you can execute maintenance and administration tasks.

To execute a livingdocs-server CLI command, go to your Livingdocs Server folder and

  • run npx livingdocs-server to get help for all available commands (see the list below)
  • run npx livingdocs-server <command> to get help for a specific command
Command Description
cleanup-documents Truncate stale revisions, publications and metadata.
cleanup-migrations Truncate accepted migrations.
cleanup-metadata Truncate metadata with no reference to documents or publications.
data-migration-run Execute a data migration (create/prepare/accept)
database Postgres database actions
design-add Upload a design to the design server
design-set-active Set active design version of a project
elasticsearch-delete-index Delete Elasticsearch index
elasticsearch-index Index documents into Elasticsearch
migrate Execute database migrations
project-seed Setup multiple projects with a seed configuration
project-delete Delete a project
project-truncate Truncate documents/events
redis-flushdb Flush Redis DB
revision-migration Migrate document revisions
test Execute livingdocs tests
transform-to-configurable-channel Transform a static channel to a configurable channel
user-assign-group Assign a user to a group in a project
user-create-admin Create an admin user
user-create-admins Create admin users
secret-add Add a secret and optionally update the project config with it
secret-reencrypt Re-encrypt all secrets with the configured encryption key
key-generate Generate a signing or encryption json web key
completion generate completion script for livingdocs-server CLI

Create PostgreSQL database

The livingdocs-server utility allows you to easily manage your PostgreSQL database. When you execute livingdocs-server database create, the database will be created with the provided superuser, but it will also configure a migrate (owner) user and write user as specified in the Server configuration, if configuration bellow are not defined it will take default values.

  db: {
    // name of the databse
    database: 'li_test',

    // write user: gets created automatically
    username: 'user_li_test_write',
    password: 'something',

    // migrate user: gets created automatically, used to run database migrations
    migrate: {
      username: 'li_test_owner',
      password: 'something2'

    // this is the superuser that has permissions to create the users above
    setup: {
      username: 'postgres',
      password: 'something3',
      writeRole: `role_database_write`,
      readRole: `role_database_read`