TERMINUSDB(1)

πŸ“¦
version 12.0.6 Β· 2 versions
, in nixpkgs unstable

🌸 TERMINUSDB(1) β€” the terminusdb girlies' guide 🌸

okay so bestie, welcome to the terminusdb manual page β€” like, the actual manpage for the terminusdb command line interface to the terminusdb Graph DBMS, but make it readable πŸ’…


✨ NAME ✨

terminusdb β€” command line interface to the terminusdb Graph DBMS.

periodt. that's the whole vibe of this page.


πŸ¦‹ SYNOPSIS πŸ¦‹

terminusdb [command subcommand positional_arguments] flags

like, command first, maybe a subcommand, then your positional arguments, then flags. the order?? matters. okurrr πŸŽ€


πŸ’– DESCRIPTION πŸ’–

The terminusdb(1) command line tool lets you interact with a database, so you get to do all the common operations β€” querying (and, yes, updating πŸ™ˆ), database creation, data ingestion and maintainence. she does it all, no cap.


πŸ‘‘ COMMANDS πŸ‘‘

terminusdb accepts a command, sometimes followed by a subcommand. every accepted command is listed riiiight here, along with its arguments. buckle up bestie, there's a lot of them πŸ’€


🧚 help

terminusdb help

Display help regarding terminusdb. literally the "help me help you" of commands 🫢

  • -m, --markdown=[value] β€” generate help as markdown ✨

πŸ“ test

terminusdb test OPTIONS

Run internal TerminusDB tests. self care is running your own test suite πŸ’…

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for test command
  • -t, --test=[value] β€” Run a specific test

🌈 serve

terminusdb serve OPTIONS

Run the TerminusDB server. main character energy fr πŸ”₯

  • -h, --help=[value] β€” Print help for serve command
  • -i, --interactive=[value] β€” Run server in interactive mode
  • -m, --memory=[value] β€” Run server in-memory, without a persistent store. Takes a password as an optional argument. The in-memory store will be initialized with an admin account with the given password. If absent, the admin account will have 'root' as a password. ⚠️ (yes, 'root', that's the default, that's just what it is πŸ™ˆ)

πŸ¦‹ list

terminusdb list OPTIONS

List available databases. [DEPRECATED] β€” she's retired, iconic, but retired πŸ’€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the list command
  • -b, --branches=[value] β€” also describe the available branches
  • -j, --json=[value] β€” Return a JSON as the result of the list command

⭐ optimize

terminusdb optimize DB_SPEC OPTIONS

Optimize a database (including _system and _meta). glow-up for your database, lowkey ✨

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the optimize command

πŸŽ€ query

terminusdb query DB_SPEC QUERY OPTIONS

Query a database. the moment everyone's been waiting for πŸ‘‘

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the query command
  • -m, --message=[value] β€” message to associate with the commit
  • -a, --author=[value] β€” author to place on the commit
  • -o, --optimize=[value] β€” allow query reordering
  • -l, --library=[value] β€” Add a WOQL library to use for defined predicates.
  • -j, --json=[value] β€” return results as a json object

πŸ’œ push

terminusdb push DB_SPEC

Push a branch. sending it~~~ πŸš€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the push command
  • -b, --branch=[value] β€” set the origin branch for push
  • -e, --remote-branch=[value] β€” set the branch on the remote for push
  • -r, --remote=[value] β€” the name of the remote to use
  • -x, --prefixes=[value] β€” send prefixes for database
  • -t, --token=[value] β€” machine access token
  • -u, --user=[value] β€” the user on the remote
  • -p, --password=[value] β€” the password on the remote

🌸 clone

terminusdb clone URI <DB_SPEC>

Clone a database (into DB_SPEC). twinning, but make it data πŸ’–

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the clone command
  • -t, --token=[value] β€” machine access token
  • -u, --user=[value] β€” the user on the remote
  • -p, --password=[value] β€” the password on the remote
  • -o, --organization=[value] β€” organizational owner of the cloned database
  • -l, --label=[value] β€” label to use for this database
  • -r, --remote=[value] β€” remote to use for this database
  • -c, --comment=[value] β€” long description of the cloned database
  • -b, --public=[value] β€” whether the cloned database is to be public

🫢 pull

terminusdb pull BRANCH_SPEC

Pull a branch from a database. come through come through 🧲

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the pull command
  • -e, --remote-branch=[value] β€” set the branch on the remote for pull
  • -r, --remote=[value] β€” the name of the remote to use
  • -t, --token=[value] β€” machine access token
  • -u, --user=[value] β€” the user on the remote
  • -p, --password=[value] β€” the password on the remote

🧲 fetch

terminusdb fetch DB_SPEC

fetch data from a remote. very fetch, honestly 🐢

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the fetch command
  • -r, --remote=[value] β€” the name of the remote to use
  • -t, --token=[value] β€” machine access token
  • -u, --user=[value] β€” the user on the remote
  • -p, --password=[value] β€” the password on the remote

πŸ’« rebase

terminusdb rebase TO_DATABASE_SPEC FROM_DATABASE_SPEC OPTIONS

Rebase a database with commits from FROM_DATABASE_SPEC into TO_DATABASE_SPEC. moving commits around like furniture, slay πŸ›‹οΈ

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the rebase command
  • -a, --author=[value] β€” The author of the rebase

🍬 squash

terminusdb squash DATABASE_SPEC OPTIONS

Squash a commit. compressing, condensing, gorgeous πŸ’…

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the squash command
  • -j, --json=[value] β€” output result status as JSON
  • -m, --message=[value] β€” message to associate with the commit
  • -a, --author=[value] β€” author to place on the commit

πŸ”₯ rollup

terminusdb rollup DATABASE_SPEC OPTIONS

Creates an optimisation layer for queries on the given commit. the way this one just makes things faster, obsessed ⚑

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the rollup command

🎁 bundle

terminusdb bundle DATABASE_SPEC OPTIONS

Create a pack for a given DATABASE_SPEC that can then be reconsistuted with terminusdb unbundle. gift wrapping your database fr fr πŸŽ€ (yes, "reconsistuted" β€” that's literally what the page says, i don't make the rules πŸ’€)

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the bundle command
  • -o, --output=[value] β€” file name to use for pack output file (defaults to descriptor based name).

πŸͺ„ unbundle

terminusdb unbundle DATABASE_SPEC FILE OPTIONS

Unbundle a bundle file. the un-gifting πŸŽβž‘οΈπŸ“¦

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the unbundle command

πŸ¦‹ diff

terminusdb diff [Path] OPTIONS

Create a diff between two JSONs, a JSON and a commit (path required), or two commits (path required). spotting the difference, eagle eye behaviour πŸ‘€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the diff command
  • -b, --before=[value] β€” JSON document which is the before
  • -a, --after=[value] β€” JSON document which is the after
  • -k, --keep=[value] β€” Skeleton of the document to retain as context
  • -c, --copy-value, --copy_value=[value] β€” Maintain explit copies of diffs in lists (yes, "explit", staying faithful bestie πŸ’œ)
  • -d, --docid=[value] β€” document id to use for comparisons
  • -p, --before_commit, --before-commit=[value] β€” Commit or branch of the before document(s)
  • -s, --after_commit, --after-commit=[value] β€” Commit or branch of the after document(s)
  • -n, --start=[value] β€” How many diff results to skip before returning (ignored if not comparing resources)
  • -l, --count=[value] β€” Number of results to return (ignored if not comparing resources)

🌟 apply

terminusdb apply [Path] OPTIONS

Apply a diff to path which is obtained from the differences between two commits. putting it on, wearing the diff 🫢

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the apply command
  • -m, --message=[value] β€” message to associate with the commit
  • -a, --author=[value] β€” author to place on the commit
  • -k, --keep=[value] β€” Skeleton of the document to retain as context
  • -t, --type=[value] β€” Variety of commit to create on apply (currently only squash)
  • -f, --match-final-state, --match_final_state=[value] β€” Allow conflicting patch to apply if patch would yield the same final state
  • -p, --before_commit, --before-commit=[value] β€” Commit of the before document(s)
  • -s, --after_commit, --after-commit=[value] β€” Commit of the after document(s)

🌸 log

terminusdb log DB_SPEC

Get the log for a branch given by DB_SPEC. the receipts, basically 🧾

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the log command
  • -j, --json=[value] β€” return log as JSON
  • -s, --start=[value] β€” How far back in commit log to start giving results
  • -c, --count=[value] β€” Number of results to return
  • -v, --verbose=[value] β€” Give back additional information on commits

πŸ•°οΈ history

terminusdb history DB_SPEC

Get the history for a given document by id in DB_SPEC. the lore πŸ’œ

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the history command
  • -i, --id=[value] β€” The id of the document to provide history for
  • -j, --json=[value] β€” return history as JSON
  • -s, --start=[value] β€” How far back in commit history to start giving results
  • -k, --created=[value] β€” return time of creation (does not report all history)
  • -u, --updated=[value] β€” return time of last update (does not report all history)
  • -c, --count=[value] β€” Number of results to return
  • -v, --verbose=[value] β€” give back schema update information

🧚 enrich-history

terminusdb enrich-history DB_SPEC

Enrich legacy commits with document change tracking metadata. Required before using fast=true on the history endpoint. so like, do this one first, okurrr ⚠️✨

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the enrich-history command
  • -f, --force=[value] β€” force re-enrichment of all commits, even those already enriched
  • -d, --diagnose=[value] β€” diagnose enrichment: print what each commit would produce without writing

πŸ”„ reset

terminusdb reset BRANCH_SPEC COMMIT_OR_COMMIT_SPEC

Reset the branch at BRANCH_SPEC to the COMMIT_OR_COMMIT_SPEC. starting fresh, we love a clean slate πŸ’…

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the reset command

🚚 migration

terminusdb migration BRANCH_SPEC

Reset the branch at BRANCH_SPEC to the COMMIT_OR_COMMIT_SPEC. (yes, that's the description the page gives this one β€” i'm just the messenger 🫢)


ok bestie that's the first chunk done β€” the rest is coming up next, don't go anywhere πŸ’–
  • --impersonate=[value] β€” lowkey lets you impersonate a particular user πŸ™ˆ you're somebody else for this one command, no cap
  • -h, --help=[value] β€” print help for the migration command πŸ’– classic, iconic, always there for you
  • -a, --author=[value] β€” the author to place on the commit ✨ like signing your work
  • -m, --message=[value] β€” the message to associate with the commit πŸ’Œ say something nice
  • -o, --operations=[value] β€” the operations to perform on the schema πŸ› οΈ this is the actual work
  • -t, --target=[value] β€” the resource with a schema as migration target 🎯 where it's all going down
  • -v, --verbose=[value] β€” give back schema update information πŸ—£οΈ it will talk, bestie
  • -d, --dry_run=[value] β€” provide information about what would occur if the operations were performed πŸ‘€ a little sneak preview, nothing actually happens

🧡 concat

terminusdb concat DB_SPEC

Concatenate any number of space-separated COMMIT_SPEC or BRANCH_SPEC (provided they are base layers only) passed on standard-input into a commit on DB_SPEC ✨ fr fr, they come in on standard-input and get smooshed into one commit.

⚠️ heads up: those specs gotta be base layers only β€” no fancy layered business here
  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the concat command πŸ’…
  • -a, --author=[value] β€” author to place on the commit ✍️
  • -m, --message=[value] β€” message to associate with the commit πŸ’¬
  • -j, --json=[value] β€” Return a JSON readable commit identifier πŸŽ€ machine-friendly output, we love to see it

🌿 branch create

terminusdb branch create BRANCH_SPEC OPTIONS

Create a branch πŸ¦‹ new timeline, who dis.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the branch create sub command πŸ’–
  • -o, --origin=[value] β€” the origin branch to use (false for none) 🌱 like, where this branch branches from β€” or false if you want none at all

βœ‚οΈ branch delete

terminusdb branch delete BRANCH_SPEC OPTIONS

Delete a branch πŸ’€ gone, reduced to atoms.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the branch delete sub command πŸŽ€

πŸ“š db list

terminusdb list DB_SPEC [.. DB_SPECN] OPTIONS

List available databases πŸ‘‘ you can pass one DB_SPEC or a whole bunch of them [.. DB_SPECN], and it shows you what's available.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the list command πŸ’…
  • -b, --branches=[value] β€” also describe the available branches 🌿 the little branch lore too
  • -v, --verbose=[value] β€” return lots of metadata πŸ—‚οΈ lots. it's giving data dump
  • -j, --json=[value] β€” Return a JSON as the result of the list command πŸŽ€

πŸ†• db create

terminusdb db create DATABASE_SPEC OPTIONS

Create a database ✨ your very own baby database, main character energy.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the db create sub command πŸ’–
  • -o, --organization=[value] β€” organizational owner of the database 🏒 who it belongs to
  • -l, --label=[value] β€” label to use for this database 🏷️
  • -c, --comment=[value] β€” long description of this database πŸ“ the whole essay version
  • -p, --public=[value] β€” whether this database is to be public 🌍
  • -k, --schema=[value] β€” whether to use a schema 🧬
  • -d, --data_prefix, --data-prefix=[value] β€” uri prefix to use for data πŸ”—
  • -s, --schema_prefix, --schema-prefix=[value] β€” uri prefix to use for schema πŸ”—
  • -x, --prefixes=[value] β€” additional defined prefixes in JSON πŸŽ€

πŸ—‘οΈ db delete

terminusdb db delete DATABASE_SPEC OPTIONS

Delete a database 😭 it's over.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the db delete sub command πŸ’…
  • -o, --organization=[value] β€” organizational owner of the database 🏒
  • -f, --force=[value] β€” force the deletion of the database (unsafe) πŸ’€πŸ’€πŸ’€ bestie this one is literally labelled unsafe, so read it twice before you press enter

πŸ”§ db update

terminusdb db update DATABASE_SPEC OPTIONS

Update a database setting the OPTIONS in an existing database πŸ› οΈ glow-up, but for settings.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the db update sub command πŸ’–
  • -l, --label=[value] β€” label to use for this database 🏷️
  • -c, --comment=[value] β€” long description of this database πŸ“
  • -p, --public=[value] β€” whether this database is to be public 🌍
  • -k, --schema=[value] β€” whether to use a schema 🧬
  • -x, --prefixes=[value] β€” Explicitly defined prefix set (in JSON) πŸŽ€

πŸ“₯ doc insert

terminusdb doc insert DATABASE_SPEC OPTIONS

Insert documents πŸ’– feed the database, it's hungry.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the doc insert sub command ✨
  • -m, --message=[value] β€” message to associate with the commit πŸ’¬
  • -a, --author=[value] β€” author to place on the commit ✍️
  • -g, --graph_type, --graph-type=[value] β€” graph type (instance or schema) 🌈
  • -r, --require-migration=[value] β€” require an inferred migration (assuming this is a schema change) 🧬 so like, don't move unless a migration gets inferred
  • -x, --allow-destructive-migration=[value] β€” allow inferred migration to be destructive (assuming this is a schema change) πŸ’€ that's the spicy one, it can literally nuke stuff
  • -d, --data=[value] β€” document data πŸ“„
  • -j, --raw_json, --raw-json=[value] β€” inserts as raw json πŸŽ€
  • -s, --merge_repeats, --merge-repeats=[value] β€” merge repeated documents into a single document record 🧚 tidy queen behaviour
  • -f, --full_replace, --full-replace=[value] β€” delete all previous documents and substitute these 😭 scorched earth, but make it documented

🧹 doc delete

terminusdb doc delete DATABASE_SPEC OPTIONS

Delete documents πŸ’€ bye bestie.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the doc delete sub command πŸ’…
  • -m, --message=[value] β€” message to associate with the commit πŸ’¬
  • -a, --author=[value] β€” author to place on the commit ✍️
  • -g, --graph_type, --graph-type=[value] β€” graph type (instance or schema) 🌈
  • -r, --require-migration=[value] β€” require an inferred migration (assuming this is a schema change) 🧬
  • -x, --allow-destructive-migration=[value] β€” allow inferred migration to be destructive (assuming this is a schema change) πŸ’€ careeeeeful
  • -i, --id=[value] β€” document id to delete 🎯
  • -t, --type=[value] β€” document type to delete 🏷️
  • -d, --data=[value] β€” document data πŸ“„
  • -n, --nuke=[value] β€” nuke all documents ☒️ the name says it all, no notes

πŸ” doc replace

terminusdb doc replace DATABASE_SPEC OPTIONS

Replace documents ✨ out with the old, in with the new.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the doc replace sub command πŸ’–
  • -m, --message=[value] β€” message to associate with the commit πŸ’¬
  • -a, --author=[value] β€” author to place on the commit ✍️
  • -g, --graph_type, --graph-type=[value] β€” graph type (instance or schema) 🌈
  • -r, --require-migration=[value] β€” require an inferred migration (assuming this is a schema change) 🧬
  • -x, --allow-destructive-migration=[value] β€” allow inferred migration to be destructive (assuming this is a schema change) πŸ’€
  • -d, --data=[value] β€” document data πŸ“„
  • -j, --raw_json, --raw-json=[value] β€” replace as raw json πŸŽ€
  • -s, --merge_repeats, --merge-repeats=[value] β€” merge repeated documents into a single document record 🧚
  • -c, --create=[value] β€” create document if it does not exist 🌱 surprise, it exists now

πŸ” doc get

terminusdb doc get DATABASE_SPEC OPTIONS

Query documents πŸ¦‹ the reading half of the equation.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the doc get sub command πŸ’…
  • -g, --graph_type, --graph-type=[value] β€” graph type (instance or schema) 🌈
  • -s, --skip=[value] β€” number of documents to skip ⏭️
  • -c, --count=[value] β€” number of documents to return πŸ”’
  • -m, --minimized=[value] β€” return minimized prefixes πŸŽ€
  • -l, --as_list, --as-list=[value] β€” return results as a JSON list (as opposed to JSON-lines) πŸ“‹
  • -u, --unfold=[value] β€” include subdocuments, or only subdocument ids 🌸
  • -i, --id=[value] β€” id of document to retrieve 🎯
  • --ids=[value] β€” list of document ids to retrieve 🎯🎯🎯
  • -t, --type=[value] β€” type of document to retrieve 🏷️
  • -z, --compress_ids, --compress-ids=[value] β€” return compressed / minimized ids using default prefixes πŸ—œοΈ
  • -q, --query=[value] β€” document query search template πŸ”

πŸ‘‘ role create

terminusdb role create ROLE_NAME ACTION_1 .. ACTION_N OPTIONS

Create a new role with the listed actions ✨ Actions may be any of: "create_database", "delete_database", "class_frame", "clone", "fetch", "push", "branch", "rebase", "instance_read_access", "instance_write_access", "schema_read_access", "schema_write_access", "meta_read_access", "meta_write_access", "commit_read_access", "commit_write_access", "manage_capabilities" πŸŽ€ pick your lil power set.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the role create sub command πŸ’–

πŸ—‘οΈ role delete

terminusdb role create ROLE_ID_OR_ROLE_NAME

Delete a role from the system database πŸ’€ yes, the synopsis above literally says role create β€” that's what the page says, I'm just the messenger πŸ™ˆ

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the role delete sub command πŸ’…
  • -i, --id=[value] β€” Interpret argument as a role Id rather than a name. πŸŽ€

πŸ”„ role update

terminusdb role update ROLE_ID_OR_ROLE_NAME ACTIONS OPTIONS

Update a role from the system database πŸ› οΈ new actions, new you.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the role update sub command πŸ’–
  • -i, --id=[value] β€” Interpret argument as a role Id rather than a name. πŸŽ€

πŸ”Ž role get

terminusdb role get <ROLE_ID_OR_ROLE_NAME>

Get a role description from name or id, or all roles if unspecified πŸ‘€ pass nothing and you get everything.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the role get sub command πŸ’…
  • -i, --id=[value] β€” Interpret argument as a role id rather than a name. πŸŽ€
  • -j, --json=[value] β€” Return answer as a JSON document πŸ“¦

🏒 organization create

terminusdb organization create ORGANIZATION_NAME

Create an organization with a given name 🌈 collective era.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the organization create sub command πŸ’–

πŸ—‘οΈ organization delete

terminusdb organization delete ORGANIZATION_NAME_OR_ID

Create an organization with a given name or id 😭 β€” okay the page says "create" right here on the delete command, that's word-for-word what's in the manual, I'm not gonna pretend otherwise bestie πŸ’€ this is the delete one tho.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the organization delete sub command πŸ’…
  • -i, --id=[value] β€” Interpret argument as an organization id rather than a name. πŸŽ€

πŸ” organization get

terminusdb organization get <ORGANIZATION_NAME_OR_ID>

Get an organization from its name or id, or list all if unspecified πŸ‘‘ leave it blank and get the whole roster.

  • --impersonate=[value] β€” impersonate a particular user πŸ™ˆ
  • -h, --help=[value] β€” print help for the organization get sub command πŸ’–
  • -i, --id=[value] β€” Interpret argument as an organization id rather than a name. πŸŽ€
  • -j, --json=[value] β€” Return answer as a JSON document πŸ“¦

πŸ§‘ user create

terminusdb user create USER

Create a user with a given name USER 🌟 welcome to the system, new person.

…and the page literally keeps going from here, so don't close the tab bestie πŸ’…

  • --impersonate=[value] β€” lowkey log in as somebody else for this one. impersonate a particular user ✨
  • -h, --help=[value] β€” print help for the user create sub command 🫢
  • -p, --password=[value] β€” Specify the password to use for the user πŸ”

🌸 user delete 🌸

terminusdb organization delete USER

Delete a user with a given name or ID. bye bestie πŸ‘‹πŸ’…

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the user delete sub command
  • -i, --id=[value] β€” Interpret argument as an organization id rather than a name. (yes, organization β€” that's what it says, iykyk)

πŸ¦‹ user get πŸ¦‹

terminusdb user get <USER_NAME_OR_ID>

Get a user from its name or id, or list all if unspecified. no argument? you just get the whole roster, main character behavior οΏ½οΏ½

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the organization get sub command
  • -i, --id=[value] β€” Interpret argument as an organization id rather than a name.
  • -c, --capability=[value] β€” Report on all capabilities of this user.
  • -j, --json=[value] β€” Return answer as a JSON document πŸ“¦

πŸŽ€ user password πŸŽ€

terminusdb user password USER

Change password for user USER. glow-up era fr fr πŸ”‘

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the user create sub command
  • -p, --password=[value] β€” Specify the password to use for the user

πŸ‘‘ capability grant πŸ‘‘

terminusdb capability grant USER SCOPE ROLE1 <...ROLEN>

Grant ROLE1 ... ROLEN over SCOPE to USER. handing out permissions like friendship bracelets 🫢✨

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the store init sub command
  • -s, --scope_type, --scope-type=[value] β€” Should the scope be interpreted as a database (default) or an organization. If ids is specified then the parameters are assumed to be ids rather than names. πŸ—‚οΈ

πŸ’œ capability revoke πŸ’œ

terminusdb capability revoke USER SCOPE ROLE1 <...ROLEN>

Revoke ROLE1 ... ROLEN over SCOPE from USER. taking it back, no hard feelings πŸ’€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the store init sub command
  • -s, --scope_type, --scope-type=[value] β€” Should the scope be interpreted as a database (default) or an organization. If ids is specified then the parameters are assumed to be ids rather than names.

πŸ”₯ store init πŸ”₯

terminusdb store init OPTIONS

Initialize a store for TerminusDB. the birth of a whole universe, honestly 🌈

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the store init sub command
  • -k, --key=[value] β€” key to use for admin login πŸ”‘
  • -f, --force=[value] β€” force the creation of a new store even when one already exists
ngl --force is exactly what it sounds like β€” it will make a brand new store even if one's already sitting there. proceed with the confidence of someone who has backups πŸ’…

⭐ triples dump ⭐

terminusdb triples dump GRAPH_SPEC

Dump an RDF string. straight to stdout, no cap πŸ“€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the triples dump sub command
  • -f, --format=[value] β€” format of RDF (can be one of: [turtle]) 🐒

🧚 triples update 🧚

terminusdb triples update GRAPH_SPEC FILE

Update from an RDF file (replaces current content). REPLACES. like a full reset on your content, so know that before you commit 😭

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the triples update sub command
  • -m, --message=[value] β€” message to associate with the commit πŸ’¬
  • -a, --author=[value] β€” author to place on the commit ✍️
  • -f, --format=[value] β€” format of RDF (can be one of: [turtle])

πŸ“ triples load πŸ“

terminusdb triples load GRAPH_SPEC FILE

Load triples from RDF file (Appending new). appending, bestie β€” not replacing. very different vibe from update 🫢

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the triples load sub command
  • -m, --message=[value] β€” message to associate with the commit
  • -a, --author=[value] β€” author to place on the commit
  • -f, --format=[value] β€” format of RDF (can be one of: [turtle])

🌈 remote add 🌈

terminusdb remote add DATABASE_SPEC REMOTE_NAME REMOTE_LOCATION OPTIONS

Add a remote. new friend for your database ✨

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the remote add sub command

πŸŽ€ remote remove πŸŽ€

terminusdb remote remove DATABASE_SPEC REMOTE_NAME OPTIONS

Remove a remote. friend breakup πŸ˜”

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the remote remove sub command

πŸ’« remote set-url πŸ’«

terminusdb remote set-url DATABASE_SPEC REMOTE_NAME REMOTE_LOCATION OPTIONS

Set the URL of a remote. moving house 🏠

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the remote set-url sub command

πŸ¦‹ remote get-url πŸ¦‹

terminusdb remote get-url DATABASE_SPEC REMOTE_NAME OPTIONS

Get the URL of a remote. where do you live πŸ‘€

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the remote get-url sub command
  • -r, --remote=[value] β€” the name of the remote to use

🌸 remote list 🌸

terminusdb remote list DATABASE_SPEC OPTIONS

List remotes. the whole contact list πŸ“‹

  • --impersonate=[value] β€” impersonate a particular user
  • -h, --help=[value] β€” print help for the remote list sub command

✨ SYNTAX ✨

okay so this is the part everyone skims and then gets confused about, so like, actually read it πŸ’…

The designation of databases, repositories, the associated commit graph of a database, and various graphs as used in the above command requires the use of an appropriate descriptor path which is referred to as the DB_SPEC.

  • _system β€” This is the system meta-data, which contains the user information, organization information and database records.
  • <organization>/<database> β€” This is the most basic descriptor path and actually refers to the more specific default path <organization>/<database>/local/branch/main.
  • <organization>/<database>/_meta β€” This is the repository graph associated with database. It contains information about the local repository and all known remotes.
  • <organization>/<database>/<repository> β€” This is a longer form database designator which specifies which respository we would like to address. It refers implicitly to <organization>/<database>/<repository>/branch/main.
  • <organization>/<database>/<repository>/_commits β€” The commit graph associated with a given database. This graph contains metadata about branch histories with their commit objects including the authorship and time.
  • <organization>/<database>/<repository>/branch/<branch> β€” The most specific branch descriptor, allows you to address a branch other than main.
  • <organization>/<database>/<repository>/commit/<commit> β€” The descriptor which allows an individual commit to be addressed directly.

For commands that refer to a GRAPH_SPEC, it should be a DB_SPEC (specifying the precise branch if a database) followed by one of:

  • DB_SPEC/instance
  • DB_SPEC/schema

For example:

terminusdb triples dump admin/people/local/branch/main/schema

see? not scary. ate. πŸ”₯


🌱 ENVIRONMENT 🌱

the little env vars that run the whole show, honestly 🎬

  • TERMINUSDB_SERVER_NAME β€” Set the servername to use forterminusdb serve. Default is 127.0.0.1.
  • TERMINUSDB_SERVER_PORT β€” Set the port to use forterminusdb serve. Default is 6363.
  • TERMINUSDB_SERVER_WORKERS β€” Set the number of worker threads to use for terminusdb serve. Default is 8.
  • TERMINUSDB_SERVER_MAX_TRANSACTION_RETRIES β€” Set the transaction retry count. Default is 3.
  • TERMINUSDB_SERVER_DB_PATH β€” Set the location of the storage volume to be used by terminusdb operations. Can be addressed relative to current path using ./path. Default is ./storage/db.
  • TERMINUSDB_SERVER_JWT_PUBLIC_KEY_PATH β€” Set the public key path for JWT. Default is ''.
  • TERMINUSDB_SERVER_JWT_PUBLIC_KEY_ID β€” Set the public key identifier for JWT. Default is ''.
  • TERMINUSDB_CONSOLE_BASE_URL β€” Set the console javascript load URL. Default is https://cdn.terminusdb.com/js_libs/terminusdb_console/dev.
  • TERMINUSDB_AUTOLOGIN_ENABLED β€” If true then attempt to login automatically with default password. Default is true.
  • TERMINUSDB_SERVER_PACK_DIR β€” Location of the prolog pack directory if loading third party modules.
  • TERMINUSDB_SERVER_TMP_PATH β€” Path to use for temporary files.
  • TERMINUSDB_IGNORE_REF_AND_REPO_SCHEMA β€” Assume that ref and repo operations are inherently correct.

πŸ’€ EXIT STATUS πŸ’€

the vibe check for whether things went slay or not:

  • 0 β€” Successfully program execution. Associated with api:success.
  • 1 β€” A generic failure of the API to carry out the operation. Associated with api:failure.
  • 2 β€” The resource which was being requested was not found. Associated with api:not_found.
  • 13 β€” The user attempted to carry out an operation without appropriately authorizing or without permission. Associated with api:unauthorized or api:forbidden.
  • 13 β€” Unauthorized access attempted. Associated with api:unauthorized.
  • 126 β€” An api command was attempted which is not possible. Associated with api:method_not_allowed.
  • 131 β€” Internal server error. Associated with api:server_error.
heads up bestie: 13 shows up twice in the original list, with two different descriptions. that's literally how it's written, so i'm giving you both, no edits πŸ’…

πŸŽ€ EXAMPLES πŸŽ€

little demo era, because examples eat every time:

  • terminusdb db create admin/foo β€” Create a database in the organization admin with the identifier foo.
  • terminusdb db create admin/foo --label="Foo" β€” Create a database in the organization admin with the identifier foo and name Foo.

Copyright 2021 TerminusDB

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


🫢 AUTHORS 🫢

the legends who built this, show some respect ✨

  • Gavin Mendel-Gleason gavin@terminusdb.com
  • Matthijs van Otterdijk matthijs@terminusdb.com
  • Robin de Rooij robin@terminusdb.com
  • Anne Ogborn anne@swi-prolog.org
  • Dmytri Kleiner dk@terminusdb.com
  • Paulo Moura https://github.com/pmoura
  • Sean Leather sean@terminusdb.com

and that's the whole page, bestie β€” you made it to the end πŸŽ‰ this edition is dated June 2026 and it's the TERMINUSDB(1) manual page, so go forth and be iconic with your triples πŸ’–πŸ¦‹

πŸ“¦ where this page comes from