ORE Studio Shell Recipes

Demonstrates all of the functionality available on the ORE Studio Comms Shell Component.

Recipes

General

Help

./ores.shell ${log_args} --help
ORE Studio Shell is an interactive REPL for ORE Studio.
It provides a command-line interface for connecting to and interacting with ores.comms.service.

Usage: ores.shell [options]


General:
  -h [ --help ]                         Display usage and exit.
  -v [ --version ]                      Output version information and exit.

Logging:
  -e [ --log-enabled ]                  Generate a log file.
  -l [ --log-level ] arg (=info)        What level to use for logging. Valid
                                        values: trace, debug, info, warn,
                                        error.
  --log-to-console                      Output logging to the console, as well
                                        as to file.
  --log-directory arg (=log)            Where to place the log files.
  --log-filename arg (=ores.shell.log)
                                        Name of the log file.
  --log-include-pid                     Include process ID in log filename
                                        (e.g., app.12345.log).

Telemetry:
  --telemetry-enabled                   Enable telemetry export. When enabled,
                                        all log records are exported to a JSON
                                        Lines file for log aggregation.
  --telemetry-service-name arg (=ores-shell)
                                        Name of the service producing
                                        telemetry. Used as service.name in
                                        resource attributes.
  --telemetry-service-version arg (=0.0.11)
                                        Version of the service producing
                                        telemetry. Used as service.version in
                                        resource attributes.
  --telemetry-output-file arg (=telemetry.jsonl)
                                        Name of the telemetry output file (JSON
                                        Lines format).
  --telemetry-output-directory arg (=log)
                                        Directory in which to place the
                                        telemetry output file.
  --telemetry-streaming-enabled         Enable streaming of log records to the
                                        server. When enabled, log records are
                                        batched and sent to the connected
                                        server.
  --telemetry-batch-size arg (=50)      Number of records to batch before
                                        sending to the server.
  --telemetry-flush-interval arg (=5)   Maximum seconds to wait before flushing
                                        a partial batch.

Connection:
  --connect-host arg                    Host to connect to (e.g., localhost)
  --connect-port arg                    Port to connect to (e.g., 55555)
  --connect-identifier arg              Client identifier to use when
                                        connecting

Login:
  --login-username arg                  Username for authentication
  --login-password arg                  Password for authentication

Version

./ores.shell ${log_args} --version
Client for ORE Studio v0.0.11
Copyright (C) 2025 Marco Craveiro.
License GPLv3: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
local d5a9007e-dirty 2026/02/05 11:27:58
IMPORTANT: build details are NOT for security purposes.

Help Menu

./ores.shell ${log_args} << 'EOF'
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - change-reason-categories
	(menu)
 - change-reasons
	(menu)
 - connect <string> <string> <string>
	Connect to server (optional: host port identifier)
 - disconnect
	Disconnect from server
 - countries
	(menu)
 - currencies
	(menu)
 - accounts
	(menu)
 - bootstrap <string> <string> <string>
	Create initial admin (principal password email) - principal is username@hostname or username
 - login <string> <string>
	Login with principal (username@hostname or username) and password
 - logout
	Logout the current user (alias for 'accounts logout')
 - variability
	(menu)
 - compression <string> <string>
	Set compression: 'compression off', 'compression on', 'compression on <algo>' (zlib/gzip/bzip2)
 - compression
	Show current compression setting
 - events
	(menu)
 - permissions
	(menu)
 - roles
	(menu)
 - tenants
	(menu)
 - next
	Show next page of the last listed entity
 - prev
	Show previous page of the last listed entity
 - first
	Jump to first page of the last listed entity
 - last
	Jump to last page of the last listed entity
 - page-size
	Show current page size
 - page-size <int>
	Set page size (e.g., 'page-size 10')
ores-shell> Bye!

Accounts

Functionality related to the accounts domain entity in ORE Studio IAM Component.

Help Menu

./ores.shell ${log_args} << 'EOF'
accounts
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> accounts> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - create <string> <string> <string> <string>
	Create a new account (principal password totp_secret email) - principal is username@hostname or username
 - list
	Retrieve accounts from the server (paginated)
 - login <string> <string>
	Login with principal (username@hostname or username) and password
 - lock <string>
	Lock an account (account_id) - requires accounts:lock permission
 - unlock <string>
	Unlock a locked account (account_id) - requires accounts:unlock permission
 - list-logins
	Retrieve all login info records from the server
 - logout
	Logout the current user
 - roles <string>
	List roles assigned to an account (account_id)
 - assign-role <string> <string>
	Assign a role to an account (account_id role_id | principal role_name)
 - revoke-role <string> <string>
	Revoke a role from an account (account_id role_id | principal role_name)
 - permissions <string>
	List effective permissions for an account (account_id)
 - sessions
	List your session history
 - sessions-for <string>
	List sessions for an account (account_id) - requires accounts:read permission
 - active-sessions
	List your currently active sessions
 - session-stats
	Show session statistics for the last 30 days
 - session-stats-days <int>
	Show session statistics for the specified number of days
 - history <string>
	Get version history for an account by username
 - ores-shell
	(menu)
accounts> Bye!

Auto connect

./ores.shell ${log_args} ${connect_args} << 'EOF'
exit
EOF
✓ Connected to :51004

⚠ WARNING: System is in BOOTSTRAP MODE
  System in BOOTSTRAP MODE - awaiting initial admin account creation
  Use 'bootstrap <username> <password> <email>' to create the initial admin account.

ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> Bye!

Basic connect

./ores.shell ${log_args} << 'EOF'
connect localhost 51004 test
exit
EOF
ORE Studio Shell REPL v0.0.12
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Connected to :51004
ores-shell> Bye!

Bootstrap

Create the initial admin account.

./ores.shell ${log_args} ${connect_args} << 'EOF'
bootstrap newuser3 Secure-Password-123 newuser3@test.com
exit
EOF
✓ Connected to :51004

⚠ WARNING: System is in BOOTSTRAP MODE
  System in BOOTSTRAP MODE - awaiting initial admin account creation
  Use 'bootstrap <username> <password> <email>' to create the initial admin account.

ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Initial admin account created successfully!
  Account ID: 019c3245-5f29-7b86-8630-28988275db8a
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
  You can now login with the credentials provided.
ores-shell> Bye!

Auto login

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> Bye!

Login logout

./ores.shell ${log_args} << 'EOF'
connect localhost 51004 test
login newuser3 Secure-Password-123
logout
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Connected to :51004
ores-shell> ✓ Login successful!
  User: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ores-shell> ✓ Logged out successfully.
ores-shell> Bye!

Login

Explicit login is discouraged as it saves your credentials to the history. Instead, consider using Auto login.

./ores.shell ${log_args} ${connect_args} << 'EOF'
accounts login newuser3 Secure-Password-123
exit
EOF
✓ Connected to :51004
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Login successful!
  User: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ores-shell> Bye!

Logout

Explicit logout.

./ores.shell ${log_args} ${connect_args} << 'EOF'
accounts login newuser3 Secure-Password-123
accounts logout
exit
EOF
✓ Connected to :51004
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Login successful!
  User: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ores-shell> ✓ Logged out successfully.
ores-shell> Bye!

Create

Creates new user accounts on system tenant.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts create newuser40 Secure-Password-123 567 newuser40@example.com
accounts create newuser41 Secure-Password-123 567 newuser41@example.com
accounts create newuser42 Secure-Password-123 567 newuser42@example.com
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Account created with ID: 019c3245-8c98-742f-a1e5-4746ed74fa05
ores-shell> ✓ Account created with ID: 019c3245-8d12-7cae-9315-470f8a5c3839
ores-shell> ✓ Account created with ID: 019c3245-8d8e-7a18-a5d4-4e1b316e542a
ores-shell> Bye!

Info

Get all info for an existing account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
accounts info newuser60@acme.com
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✗ Account not found: newuser60@acme.com
ores-shell> Bye!

List

Lists existing accounts.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
accounts info newuser60@acme.com
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+--------------------+-----------------------+---------------------+-------------+-------------------------------+---------+
| ID (UUID)                            | Username           | Email                 | Change Reason       | Recorded By | Recorded At                   | Version |
+--------------------------------------+--------------------+-----------------------+---------------------+-------------+-------------------------------+---------+
| 019c2d93-213a-7800-a9e3-9093a7af2d5d | newuser41          | newuser41@example.com | system.new_record   | postgres    | 2026-02-05 11:32:23.000000000 | 1       |
| 019c2d93-20bf-7750-acdb-2b34d97ecfca | newuser40          | newuser40@example.com | system.new_record   | postgres    | 2026-02-05 11:32:22.000000000 | 1       |
| 019c2d92-8448-7158-90d0-ccb8b5f7e812 | newuser3           | newuser3@test.com     | system.new_record   | bootstrap   | 2026-02-05 11:31:42.000000000 | 1       |
| 644b4827-7281-4596-b9e0-befeb123688a | ores_test_dml_user | test_dml@system.ores  | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| 3860fdff-54db-4d83-bb6b-3a7f45b88687 | ores_test_ddl_user | test_ddl@system.ores  | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| 0308a18f-d075-4ea0-a7a9-0211d7ca217b | ores_http_user     | http@system.ores      | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| e775c0ca-5d55-4d2d-a5dd-5f6ae7a432ba | ores_shell_user    | comms@system.ores     | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| cd426d64-3fcc-4306-8e5a-19149e3b89e0 | ores_wt_user       | wt@system.ores        | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| 30ed8453-69a6-4f5c-92c3-930424565cd5 | ores_cli_user      | cli@system.ores       | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
| a9fb774d-2048-48dc-a96c-e432d7107ea4 | ores_ddl_user      | ddl@system.ores       | system.initial_load | postgres    | 2026-02-05 11:29:49.000000000 | 1       |
+--------------------------------------+--------------------+-----------------------+---------------------+-------------+-------------------------------+---------+



Page 1 of 1 (10 of 10 total)
ores-shell> Bye!

List Login Info

Lists login information.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
accounts list-logins
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+-----------+-----------------+--------+--------+--------+---------------------+
| Account ID                           | Last IP   | Last Attempt IP | Failed | Locked | Online | Last Login          |
+--------------------------------------+-----------+-----------------+--------+--------+--------+---------------------+
| 019c2d92-8448-7158-90d0-ccb8b5f7e812 | 127.0.0.1 | 127.0.0.1       | 0      | N      | Y      | 2026-02-05 11:32:44 |
| 019c2d93-20bf-7750-acdb-2b34d97ecfca | 0.0.0.0   | 0.0.0.0         | 0      | N      | N      | 1970-01-01 00:00:00 |
| 019c2d93-213a-7800-a9e3-9093a7af2d5d | 0.0.0.0   | 0.0.0.0         | 0      | N      | N      | 1970-01-01 00:00:00 |
+--------------------------------------+-----------+-----------------+--------+--------+--------+---------------------+


ores-shell> Bye!

Lock

Lock an account to prevent login.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts lock 019c2a9d-ea3a-76f5-a152-cf85f2adce9f
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Account locked successfully!
  Account ID: 019c2a9d-ea3a-76f5-a152-cf85f2adce9f
ores-shell> Bye!

Unlock

Unlock a previously locked account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts unlock 019c2a9d-ea3a-76f5-a152-cf85f2adce9f
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Account unlocked successfully!
  Account ID: 019c2a9d-ea3a-76f5-a152-cf85f2adce9f
ores-shell> Bye!

Account Roles

List roles assigned to an account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts roles 019c2d92-8448-7158-90d0-ccb8b5f7e812
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
Roles for Account: 019c2d92-8448-7158-90d0-ccb8b5f7e812

+--------------------------------------+------------+------------------------------------------------------------+-------------------------------------------------------+-------------+---------+
| ID (UUID)                            | Name       | Description                                                | Permissions                                           | Recorded By | Version |
+--------------------------------------+------------+------------------------------------------------------------+-------------------------------------------------------+-------------+---------+
| 43edf938-fb1e-4d0c-b752-a94362f5f194 | SuperAdmin | Platform super administrator with tenant management access | *, iam::tenants:create, iam::tenants:delete (+5 more) | postgres    | 1       |
+--------------------------------------+------------+------------------------------------------------------------+-------------------------------------------------------+-------------+---------+


ores-shell> Bye!

Account Permissions

List effective permissions for an account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts permissions 019c2d92-8448-7158-90d0-ccb8b5f7e812
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
Effective Permissions for Account: 019c2d92-8448-7158-90d0-ccb8b5f7e812
=======================================================================

  - *
  - iam::tenants:create
  - iam::tenants:delete
  - iam::tenants:impersonate
  - iam::tenants:read
  - iam::tenants:suspend
  - iam::tenants:terminate
  - iam::tenants:update

Total: 8 item(s)
ores-shell> Bye!

Assign Role

Assign a role to an account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
roles list
accounts assign-role 019c2d92-8448-7158-90d0-ccb8b5f7e812 24a02cd6-1a74-4bdf-9169-408227402106
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+
| ID (UUID)                            | Name        | Description                                                   | Permissions                                                                          | Recorded By | Version |
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+
| 24a02cd6-1a74-4bdf-9169-408227402106 | Operations  | Operations - currency management and account viewing          | iam::accounts:read, refdata::currencies:create, refdata::currencies:delete (+4 more) | postgres    | 1       |
| abc8bc10-01d7-496f-a48b-3160e868b514 | Sales       | Sales operations - read-only currency access                  | refdata::currencies:read, variability::flags:read                                    | postgres    | 1       |
| 43edf938-fb1e-4d0c-b752-a94362f5f194 | SuperAdmin  | Platform super administrator with tenant management access    | *, iam::tenants:create, iam::tenants:delete (+5 more)                                | postgres    | 1       |
| fbd1640c-3d8b-4aff-baae-7db0e34e54f5 | Support     | Support - read-only access to all resources and admin screens | iam::accounts:read, iam::login_info:read, iam::roles:read (+3 more)                  | postgres    | 1       |
| 2831ee60-87d8-4ac1-b559-4744d8e609d8 | TenantAdmin | Tenant administrator with full access within a tenant         | *                                                                                    | postgres    | 1       |
| cb3ff98c-f3e8-4f63-a091-2df4c5516123 | Trading     | Trading operations - currency read access                     | refdata::currencies:history, refdata::currencies:read, variability::flags:read       | postgres    | 1       |
| 05121548-c4c7-47c6-8d43-384177672a4a | Viewer      | Viewer - basic read-only access to domain data                | refdata::currencies:read, variability::flags:read                                    | postgres    | 1       |
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+


ores-shell> V Role assigned successfully!
  Account ID: 019c2d92-8448-7158-90d0-ccb8b5f7e812
  Role ID:    24a02cd6-1a74-4bdf-9169-408227402106
ores-shell> Bye!

Revoke Role

Revoke a role from an account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts revoke-role 019c2d92-8448-7158-90d0-ccb8b5f7e812 24a02cd6-1a74-4bdf-9169-408227402106
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> V Role revoked successfully!
  Account ID: 019c2d92-8448-7158-90d0-ccb8b5f7e812
  Role ID:    24a02cd6-1a74-4bdf-9169-408227402106
ores-shell> Bye!

Assign Role By Name

Assign a role to an account using a principal (username@hostname) and role name instead of UUIDs. The server resolves the principal to an account and the role name to a role ID.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts assign-role newuser60@example.com DataPublisher
exit
EOF

Revoke Role By Name

Revoke a role from an account using a principal (username@hostname) and role name instead of UUIDs.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts revoke-role newuser60@example.com DataPublisher
exit
EOF

History

Get version history for an account.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts history newuser41
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> +---------+-----------+-----------------------+-------------------+-------------+-------------------------------+----------------+
| Version | Username  | Email                 | Change Reason     | Recorded By | Recorded At                   | Change Summary |
+---------+-----------+-----------------------+-------------------+-------------+-------------------------------+----------------+
| 1       | newuser41 | newuser41@example.com | system.new_record | postgres    | 2026-02-05 11:32:23.000000000 | Version 1      |
+---------+-----------+-----------------------+-------------------+-------------+-------------------------------+----------------+

ores-shell> Bye!

Tenants

Tenant management functionality for multi-tenancy support in ORE Studio IAM Component.

Help Menu

./ores.shell ${log_args} << 'EOF'
tenants
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> tenants> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - get
	Retrieve active tenants from the server
 - get-all
	Retrieve all tenants including deleted
 - add <string> <string> <string> <string> <string>
	Add a tenant (code name type hostname description)
 - history <string>
	Show history for a tenant (tenant_id)
 - delete <string>
	Delete a tenant (tenant_id)
 - ores-shell
	(menu)
tenants> Bye!

Get Tenants

Retrieve all tenants from the server.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
tenants get
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------+-----------+--------------+-----------+--------+-------------+---------+
| Code   | Name      | Type         | Hostname  | Status | Recorded By | Version |
+--------+-----------+--------------+-----------+--------+-------------+---------+
| acme   | ACME Corp | organisation | acme.com  | active | newuser3    | 1       |
| system | System    | platform     | localhost | active | postgres    | 1       |
+--------+-----------+--------------+-----------+--------+-------------+---------+


ores-shell> Bye!

Get All Tenants

Retrieve all tenants from the server.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
tenants get-all
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+------------------------------------------------------------+------------------------------------------------------------+----------+----------------------------------------------------------------------+------------+-------------+---------+
| Code                                                       | Name                                                       | Type     | Hostname                                                             | Status     | Recorded By | Version |
+------------------------------------------------------------+------------------------------------------------------------+----------+----------------------------------------------------------------------+------------+-------------+---------+
| system                                                     | System                                                     | platform | localhost                                                            | active     | postgres    | 1       |
| ores.database.tests_20260205_150835_3067033_9329           | ores.database.tests_20260205_150835_3067033_9329           | test     | ores.database.tests_20260205_150835_3067033_9329.localhost           | terminated | postgres    | 1       |
| ores.eventing.tests_20260205_151018_3071471_7620           | ores.eventing.tests_20260205_151018_3071471_7620           | test     | ores.eventing.tests_20260205_151018_3071471_7620.localhost           | active     | postgres    | 1       |
| ores.platform.tests_20260205_150829_3066426_1928           | ores.platform.tests_20260205_150829_3066426_1928           | test     | ores.platform.tests_20260205_150829_3066426_1928.localhost           | terminated | postgres    | 1       |
| ores.telemetry.database.tests_20260205_150851_3067790_9672 | ores.telemetry.database.tests_20260205_150851_3067790_9672 | test     | ores.telemetry.database.tests_20260205_150851_3067790_9672.localhost | terminated | postgres    | 1       |
| ores.telemetry.tests_20260205_150845_3067263_8272          | ores.telemetry.tests_20260205_150845_3067263_8272          | test     | ores.telemetry.tests_20260205_150845_3067263_8272.localhost          | terminated | postgres    | 1       |
| ores.utility.tests_20260205_150615_3063963_9208            | ores.utility.tests_20260205_150615_3063963_9208            | test     | ores.utility.tests_20260205_150615_3063963_9208.localhost            | active     | postgres    | 1       |
| ores.utility.tests_20260205_150704_3065209_2957            | ores.utility.tests_20260205_150704_3065209_2957            | test     | ores.utility.tests_20260205_150704_3065209_2957.localhost            | terminated | postgres    | 1       |
| ores.variability.tests_20260205_150853_3067957_1182        | ores.variability.tests_20260205_150853_3067957_1182        | test     | ores.variability.tests_20260205_150853_3067957_1182.localhost        | terminated | postgres    | 1       |
+------------------------------------------------------------+------------------------------------------------------------+----------+----------------------------------------------------------------------+------------+-------------+---------+


ores-shell> Bye!

Add Tenant

Create a new tenant with the specified parameters.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
tenants add acme "Acme Corp" organisation acme.com "Acme Corporation tenant"
tenants add example "Example Corp" organisation example.com "Example Corporation tenant"
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Tenant added successfully!
  ID: ea8ee6fb-17e7-4bff-ad4f-cb2be4ed8e6c
ores-shell> ✓ Tenant added successfully!
  ID: a45224a2-9350-4f13-aba6-a7610b0530a6
ores-shell> Bye!

Create Account on Tenant

Creates new user accounts on system tenant.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts create newuser60@example.com Secure-Password-123 567 newuser60@example.com
accounts create newuser61@acme.com Secure-Password-123 567 newuser61@acme.com
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Account created with ID: 019c3245-e0d3-7fd2-9883-c335b920b797
ores-shell> ✓ Account created with ID: 019c3245-e15f-73dc-b843-3c131b96872f
ores-shell> Bye!

List accounts on Tenant

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
accounts list
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser60
  Tenant: ACME Corp (76bd1fef-6734-4a4e-b894-cfb7445d337f)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✗ Authorization failed
ores-shell> Bye!

Tenant History

Get version history for a specific tenant.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
tenants history 00000000-0000-0000-0000-000000000000
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> History for tenant 00000000-0000-0000-0000-000000000000 (1 versions):
--------------------------------------------------------------------------------
  Version 1
    Code: system
    Name: System
    Type: system_tenant
    Hostname: localhost
    Status: active
    Recorded: 2026-02-02 19:24:23 by system
    Reason: system.new_record - System tenant created during database initialization

ores-shell> Bye!

Delete Tenant

Delete a tenant by ID. Note: The system tenant cannot be deleted.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
tenants delete 019c1234-5678-90ab-cdef-1234567890ab
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Tenant deleted successfully!
ores-shell> Bye!

Variability

Functionality related to the accounts domain entity in ORE Studio Variability Component.

Help Menu

./ores.shell ${log_args} << 'EOF'
variability
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> variability> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - list-flags
	Retrieve all feature flags from the server
 - add-flag <string> <string> <string> <string> <string>
	Add a feature flag (name enabled description reason_code "commentary")
 - delete-flag <string>
	Delete a feature flag by name
 - flag-history <string>
	Get version history for a feature flag by name
 - ores-shell
	(menu)
variability> Bye!

List Feature Flags

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
variability list-flags
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+---------+---------------------------------------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+
| Name                                 | Version | Description                                                                                                         | Enabled | Change Reason     | Recorded By | Recorded At                   |
+--------------------------------------+---------+---------------------------------------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+
| system.bootstrap_mode                | 1       | Indicates whether the system is in bootstrap mode (waiting for initial admin account).                              | 0       | system.new_record | system      | 2026-02-05 11:31:42.000000000 |
| system.synthetic_data_generation     | 1       | Enables synthetic test data generation in the UI. FOR TESTING/DEVELOPMENT ONLY.                                     | 0       | system.new_record | postgres    | 2026-02-05 11:29:49.000000000 |
| system.disable_password_validation   | 1       | When enabled, disables strict password validation. FOR TESTING/DEVELOPMENT ONLY.                                    | 0       | system.new_record | postgres    | 2026-02-05 11:29:49.000000000 |
| system.signup_requires_authorization | 1       | Controls whether new signups require admin authorization. NOT YET IMPLEMENTED - enabling will cause signup to fail. | 0       | system.new_record | postgres    | 2026-02-05 11:29:49.000000000 |
| system.user_signups                  | 1       | Controls whether user self-registration is allowed.                                                                 | 0       | system.new_record | postgres    | 2026-02-05 11:29:49.000000000 |
+--------------------------------------+---------+---------------------------------------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+


ores-shell> Bye!

Add Feature Flag

Add a new feature flag.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
variability add-flag test.feature.flag false "Test feature flag for recipes" system.new_record "Test"
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Feature flag added successfully!
ores-shell> Bye!

Delete Feature Flag

Delete a feature flag by name.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
variability delete-flag test.feature.flag
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Feature flag deleted successfully!
ores-shell> Bye!

Feature Flag History

Get version history for a feature flag.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args}  << 'EOF'
variability flag-history system.bootstrap_mode
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+-----------------------+---------+----------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+
| Name                  | Version | Description                                                                            | Enabled | Change Reason     | Recorded By | Recorded At                   |
+-----------------------+---------+----------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+
| system.bootstrap_mode | 1       | Indicates whether the system is in bootstrap mode (waiting for initial admin account). | 0       | system.new_record | system      | 2026-02-05 11:31:42.000000000 |
+-----------------------+---------+----------------------------------------------------------------------------------------+---------+-------------------+-------------+-------------------------------+


ores-shell> Bye!

Currencies

Functionality related to the currencies domain entity in ORE Studio RefData Component.

Help Menu

./ores.shell ${log_args} << 'EOF'
currencies
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> currencies> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - get
	Retrieve currencies from the server (paginated)
 - add <string> <string> <string> <string> <string> <string> <string>
	Add a currency (iso_code name numeric_code symbol fractions reason_code "commentary")
 - delete <string>
	Delete a currency by ISO code
 - history <string>
	Get version history for a currency by ISO code
 - ores-shell
	(menu)
currencies> Bye!

Get

Get all currencies in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
page-size
currencies get
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> Current page size: 20
ores-shell>

+----------+---------+------------------+--------+--------------+----------------+-----------+-----------------------------+-----------------+-------------------------------+
| ISO Code | Version | Name             | Symbol | Type         | Fractions/Unit | Precision | Change Reason               | Recorded By     | Recorded At                   |
+----------+---------+------------------+--------+--------------+----------------+-----------+-----------------------------+-----------------+-------------------------------+
| XLM      | 1       | Stellar          | XLM    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| PAXG     | 1       | PAX Gold         | PAXG   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| USDC     | 1       | USD Coin         | USDC   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| LINK     | 1       | Chainlink        | LINK   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| HYPE     | 1       | Hype             | HYPE   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| ZEC      | 1       | ZCash            | ZEC    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| USDT     | 1       | Tether           | USDT   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| SOL      | 1       | Solana           | SOL    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| ADA      | 1       | Cardano          | ADA    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| TRX      | 1       | TRON             | TRX    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| HBAR     | 1       | Hedera Hashgraph | HBAR   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| SUI      | 1       | Sui              | SUI    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| BCH      | 1       | Bitcoin Cash     | BCH    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| XMR      | 1       | Monero           | XMR    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| BTC      | 1       | Bitcoin          | ₿    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| ETH      | 1       | Ethereum         | Ξ     | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| XRP      | 1       | XRP              | ✕    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| BNB      | 1       | Binance Coin     | BNB    | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| DOGE     | 1       | Dogecoin         | Ð     | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
| AVAX     | 1       | Avalanche        | AVAX   | crypto.major | 100000000      | 8         | system.external_data_import | ores_shell_user | 2026-02-05 15:24:57.000000000 |
+----------+---------+------------------+--------+--------------+----------------+-----------+-----------------------------+-----------------+-------------------------------+




Page 1 of 13 (20 of 257 total)
ores-shell> Bye!

Add

Add a new currency.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
currencies add TEST700 Test700 700 A 100
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✗ Failed to add currency: Failed to save currency: Repository error: Executing INSERT failed: ERROR:  new row for relation "currencies" violates check constraint "currencies_change_reason_code_check"
DETAIL:  Failing row contains (TEST700, 1, Test700, 700, A, , 100, Nearest, 2, , fiat, null, newuser3, , , 2026-01-11 18:59:25.874112+00, 9999-12-31 23:59:59+00).

ores-shell> Bye!

Delete

Delete a currency by ISO code.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
currencies delete TEST700
exit
EOF

History

Get version history for a currency.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
currencies history USD
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+---------+----------+-----------+-------------+-------------------------------+----------------+
| Version | ISO Code | Name      | Recorded By | Recorded At                   | Change Summary |
+---------+----------+-----------+-------------+-------------------------------+----------------+
| 2       | USD      | US Dollar | newuser3    | 2026-01-09 21:05:44.000000000 | Version 2      |
| 1       | USD      | US Dollar | system      | 2026-01-09 16:37:39.000000000 | Version 1      |
+---------+----------+-----------+-------------+-------------------------------+----------------+


ores-shell> Bye!

Roles

Role-Based Access Control functionality for managing roles, in ORE Studio IAM Component.

Help

./ores.shell ${log_args} << 'EOF'
roles
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> roles> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - list
	List all roles in the system
 - get <string>
	Get role details (role_name or role_id)
 - ores-shell
	(menu)
roles> Bye!

List

List all roles in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
roles list
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+
| ID (UUID)                            | Name        | Description                                                   | Permissions                                                                          | Recorded By | Version |
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+
| 8a03c887-5f48-4d5e-9de0-aef7445e9ff9 | Operations  | Operations - currency management and account viewing          | iam::accounts:read, refdata::currencies:create, refdata::currencies:delete (+4 more) | postgres    | 1       |
| e4bc15b2-2df2-4f33-8968-5b9445ff0e00 | Sales       | Sales operations - read-only currency access                  | refdata::currencies:read, variability::flags:read                                    | postgres    | 1       |
| dae17381-7ce6-447e-957d-745e5add896b | SuperAdmin  | Platform super administrator with tenant management access    | *, iam::tenants:create, iam::tenants:delete (+5 more)                                | postgres    | 1       |
| 621e3b9d-dae0-47b5-9c29-31cc56f2c09a | Support     | Support - read-only access to all resources and admin screens | iam::accounts:read, iam::login_info:read, iam::roles:read (+3 more)                  | postgres    | 1       |
| bcee1515-5338-415c-bfab-448f0faca285 | TenantAdmin | Tenant administrator with full access within a tenant         | *                                                                                    | postgres    | 1       |
| b94e37cb-5863-4aa8-9d3b-6f818e5ed681 | Trading     | Trading operations - currency read access                     | refdata::currencies:history, refdata::currencies:read, variability::flags:read       | postgres    | 1       |
| 70916a6b-924a-4d5e-9314-1421e577fc5d | Viewer      | Viewer - basic read-only access to domain data                | refdata::currencies:read, variability::flags:read                                    | postgres    | 1       |
+--------------------------------------+-------------+---------------------------------------------------------------+--------------------------------------------------------------------------------------+-------------+---------+


ores-shell> Bye!

Get

Get details for a specific role.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
roles get Admin
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
Role Details
============
ID:            f60d8103-0283-4d46-aa4c-aa6bb50934d9
Name:          Admin
Description:   Full administrative access to all system functions
Version:       1
Change Reason: system.new_record
Commentary:    System seed data
Recorded By:   system
Recorded At:   2026-01-09 16:37:36.000000000

Permissions (1):
-------------
  - *

ores-shell> Bye!

Permissions

Role-Based Access Control functionality for managing permissions, in ORE Studio IAM Component.

Help Permissions

./ores.shell ${log_args} << 'EOF'
permissions
help
exit
EOF
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> permissions> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - list
	List all permissions in the system
 - ores-shell
	(menu)
permissions> Bye!

List Permissions

List all permissions in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
permissions list
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (00000000-0000-0000-0000-000000000000)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------------------------------------+-------------------------+---------------------------------------+
| ID (UUID)                            | Code                    | Description                           |
+--------------------------------------+-------------------------+---------------------------------------+
| 9419caac-72d8-450c-9d11-1f7918345e49 | *                       | Full access to all operations         |
| 724e3690-a1b8-4fe4-a895-9a63d36d54bd | accounts:create         | Create new user accounts              |
| 45585d27-2aa9-4962-a9d1-1dd5a28b0d4d | accounts:delete         | Delete user accounts                  |
| 01015492-b33a-4423-be66-d893783abf59 | accounts:lock           | Lock user accounts                    |
| 19590e4b-a7db-4658-983a-a2ae7d03c3a8 | accounts:read           | View user account details             |
| 2811d1b2-2838-4ac2-b8a0-9946f5ab27f1 | accounts:reset_password | Force password reset on user accounts |
| 67d955c7-f181-43e5-bec8-4e0abc7b598b | accounts:unlock         | Unlock user accounts                  |
| d9d3ea86-9488-4c96-a630-49722a7e8818 | accounts:update         | Modify user account settings          |
| 7fcae376-2fec-4fa3-8202-73bdf94102b6 | currencies:create       | Create new currencies                 |
| 69517ef0-774e-4766-9f76-aa3dc7a13899 | currencies:delete       | Delete currencies                     |
| 032cb9fe-3e20-4a5b-a868-81de0847159f | currencies:history      | View currency version history         |
| fc20f9d6-2f9a-44fa-b3ab-35508c0bc159 | currencies:read         | View currency details                 |
| f24f6086-b870-4181-a209-292d66645701 | currencies:update       | Modify currency settings              |
| 89547294-7d87-487e-8943-e7dfa463ee6b | flags:create            | Create new feature flags              |
| 2aac3165-1041-4d30-a302-d87131720771 | flags:delete            | Delete feature flags                  |
| 44d8d0d2-b76f-45f3-9a0e-247741823b18 | flags:read              | View feature flag status              |
| 113e6f5e-6dc5-4a9a-a517-830c7358ac3d | flags:update            | Modify feature flag settings          |
| 2585f8bc-9f49-4263-b541-3649316089ab | login_info:read         | View login history and info           |
| 34427cd3-142f-4e7b-a1c4-27a4f69a644b | roles:assign            | Assign roles to accounts              |
| 35df85f7-d1bb-4a0f-b313-5a945b6180e2 | roles:create            | Create new roles                      |
| 6de5d1c3-41b0-4308-91cf-ef99071f9b9f | roles:delete            | Delete roles                          |
| 9a2eeab8-4d85-4165-96bb-b02b3bc6c458 | roles:read              | View role details                     |
| 6cc5048f-5a75-4424-b4f6-df810179016d | roles:revoke            | Revoke roles from accounts            |
| 5e28f39a-9949-4b9e-869a-aa149e25843a | roles:update            | Modify role permissions               |
| 2039fe0b-cac8-42d7-be41-777161a3c62b | tenants:create          | Create new tenants                    |
| 63398d70-793a-43c3-90ad-c330b325715a | tenants:impersonate     | Access other tenants                  |
| 0d48b476-5560-480f-8e94-6e320245e835 | tenants:read            | View tenant details                   |
| f56550e1-819f-4e9b-a50d-5833c5812b56 | tenants:suspend         | Suspend tenants                       |
| 989874d8-f59f-41e2-90e0-4c600ed50c0d | tenants:terminate       | Terminate tenants                     |
| bf8c077f-ed23-4702-b4f6-0841de33f090 | tenants:update          | Modify tenant settings                |
+--------------------------------------+-------------------------+---------------------------------------+


ores-shell> Bye!

Suggest Role Commands

Generate shell commands to assign all roles to an account. The second argument can be either a hostname or a tenant UUID.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
permissions suggest newuser60 example.com
permissions suggest newuser61 acme.com
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> # Role assignment commands for: newuser60@example.com
# Account ID: 019c3245-e0d3-7fd2-9883-c335b920b797

accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 e1dc5f65-9010-4d7b-be52-c5d07247c095  # DataPublisher
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 25b2d945-db76-48be-a16b-4964c4287abc  # Operations
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 a8dc1f14-332a-443a-85af-da2fbf927ff7  # Sales
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 6d583a15-3c34-4522-8bd8-569e7d448225  # SuperAdmin
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 49eb7984-800e-460c-b5a0-7a0ce5c94b0a  # Support
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 40224d84-446b-4cae-8fb8-86b16accd5e6  # TenantAdmin
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 36f85405-e037-46db-8f98-fe03c402081d  # Trading
accounts assign-role 019c3245-e0d3-7fd2-9883-c335b920b797 e8e20a73-bb66-466c-8b11-8583341217f3  # Viewer
ores-shell> # Role assignment commands for: newuser61@acme.com
# Account ID: 019c3245-e15f-73dc-b843-3c131b96872f

accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f e1dc5f65-9010-4d7b-be52-c5d07247c095  # DataPublisher
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f 25b2d945-db76-48be-a16b-4964c4287abc  # Operations
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f a8dc1f14-332a-443a-85af-da2fbf927ff7  # Sales
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f 6d583a15-3c34-4522-8bd8-569e7d448225  # SuperAdmin
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f 49eb7984-800e-460c-b5a0-7a0ce5c94b0a  # Support
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f 40224d84-446b-4cae-8fb8-86b16accd5e6  # TenantAdmin
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f 36f85405-e037-46db-8f98-fe03c402081d  # Trading
accounts assign-role 019c3245-e15f-73dc-b843-3c131b96872f e8e20a73-bb66-466c-8b11-8583341217f3  # Viewer
ores-shell> Bye!

Events

Event subscription functionality for receiving notifications from the server.

Help Menu

./ores.shell ${log_args} << 'EOF'
events
help
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> events> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - channels
	List available event channels
 - listen <string>
	Subscribe to notifications for an event type
 - unlisten <string>
	Unsubscribe from notifications (event_type or * for all)
 - subscriptions
	List active subscriptions
 - notifications
	Display and clear pending notifications
 - ores-shell
	(menu)
events> Bye!

Channels

List available event channels.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
events channels
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> Available event channels:
  ores.assets.assets_changed - Currency image assets modified
  ores.iam.account_changed - Account data modified
  ores.iam.change_reason_category_changed - Change reason category data modified
  ores.iam.change_reason_changed - Change reason data modified
  ores.iam.permission_changed - Permission data modified
  ores.iam.role_changed - Role data modified
  ores.refdata.country_changed - Country data modified
  ores.refdata.currency_changed - Currency data modified
  ores.variability.feature_flags_changed - Feature flags modified

Use 'listen <channel>' to subscribe, or 'listen *' for all.
ores-shell> Bye!

Listen

Subscribe to notifications for an event type.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
events listen ores.refdata.currency_changed
events subscriptions
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Listening on ores.refdata.currency_changed
ores-shell> Active subscriptions:
  • ores.refdata.currency_changed
ores-shell> Bye!

Unlisten

Unsubscribe from notifications.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
events listen ores.refdata.currency_changed
events unlisten ores.refdata.currency_changed
events subscriptions
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Listening on ores.refdata.currency_changed
ores-shell> ✓ Stopped listening on ores.refdata.currency_changed
ores-shell> No active subscriptions.
ores-shell> Bye!

Subscriptions

List active subscriptions.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
events subscriptions
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> No active subscriptions.
ores-shell> Bye!

Notifications

Display and clear pending notifications.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
events notifications
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> No pending notifications.
ores-shell> Bye!

Compression

Compression settings for client-server communication.

Show Status

Show current compression setting.

./ores.shell ${log_args} << 'EOF'
compression
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> Compression: on (zlib, gzip, bzip2)
ores-shell> Bye!

Disable Compression

Disable compression for new connections.

./ores.shell ${log_args} << 'EOF'
compression off
compression
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> wrong command: compression off
ores-shell> Compression: on (zlib, gzip, bzip2)
ores-shell> Bye!

Enable All Compression

Enable all compression algorithms.

./ores.shell ${log_args} << 'EOF'
compression on
compression
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> wrong command: compression on
ores-shell> Compression: on (zlib, gzip, bzip2)
ores-shell> Bye!

Enable Specific Algorithm

Enable a specific compression algorithm (zlib, gzip, or bzip2).

./ores.shell ${log_args} << 'EOF'
compression on zlib
compression
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> Compression enabled with zlib only.
Setting takes effect on next connection.
ores-shell> Compression: on (zlib)
ores-shell> Bye!

Countries

Functionality related to the countries domain entity.

Help

./ores.shell ${log_args} << 'EOF'
countries
help
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> countries> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - get
	Retrieve all countries from the server
 - add <string> <string> <string> <string> <string> <string> <string>
	Add a country (alpha2 alpha3 numeric name official_name reason_code "commentary")
 - delete <string>
	Delete a country by alpha-2 code
 - history <string>
	Get version history for a country by alpha-2 code
 - ores-shell
	(menu)
countries> Bye!

Get

Get all countries in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
countries get
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> +---------+---------+---------+---------+-----------------------------------+---------------------------------------------------------------------------+----------------------+-------------+-------------------------------+
| Alpha-2 | Alpha-3 | Numeric | Version | Name                              | Official Name                                                             | Change Reason        | Recorded By | Recorded At                   |
+---------+---------+---------+---------+-----------------------------------+---------------------------------------------------------------------------+----------------------+-------------+-------------------------------+
| AE      | ARE     | 784     | 3       | United Arab Emirates              | United Arab Emirates                                                      | common.rectification | newuser3    | 2026-01-10 08:35:13.000000000 |
| AF      | AFG     | 004     | 1       | Afghanistan                       | Islamic Republic of Afghanistan                                           | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| EE      | EST     | 233     | 1       | Estonia                           | Republic of Estonia                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AI      | AIA     | 660     | 1       | Anguilla                          | Anguilla                                                                  | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AL      | ALB     | 008     | 1       | Albania                           | Republic of Albania                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AM      | ARM     | 051     | 1       | Armenia                           | Republic of Armenia                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BS      | BHS     | 044     | 1       | Bahamas                           | Commonwealth of The Bahamas                                               | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AQ      | ATA     | 010     | 1       | Antarctica                        | Antarctica                                                                | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AR      | ARG     | 032     | 1       | Argentina                         | Argentine Republic                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AS      | ASM     | 016     | 1       | American Samoa                    | American Samoa                                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AT      | AUT     | 040     | 1       | Austria                           | Republic of Austria                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AU      | AUS     | 036     | 1       | Australia                         | Commonwealth of Australia                                                 | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AW      | ABW     | 533     | 1       | Aruba                             | Aruba                                                                     | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AX      | ALA     | 248     | 1       | Åland Islands                    | Åland Islands                                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AZ      | AZE     | 031     | 1       | Azerbaijan                        | Republic of Azerbaijan                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BA      | BIH     | 070     | 1       | Bosnia and Herzegovina            | Bosnia and Herzegovina                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BB      | BRB     | 052     | 1       | Barbados                          | Barbados                                                                  | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BD      | BGD     | 050     | 1       | Bangladesh                        | People's Republic of Bangladesh                                           | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BE      | BEL     | 056     | 1       | Belgium                           | Kingdom of Belgium                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BF      | BFA     | 854     | 1       | Burkina Faso                      | Burkina Faso                                                              | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BG      | BGR     | 100     | 1       | Bulgaria                          | Republic of Bulgaria                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BH      | BHR     | 048     | 1       | Bahrain                           | Kingdom of Bahrain                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BI      | BDI     | 108     | 1       | Burundi                           | Republic of Burundi                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BJ      | BEN     | 204     | 1       | Benin                             | Republic of Benin                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BL      | BLM     | 652     | 1       | Saint Barthélemy                 | Saint Barthélemy                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BM      | BMU     | 060     | 1       | Bermuda                           | Bermuda                                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BN      | BRN     | 096     | 1       | Brunei                            | Brunei Darussalam                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BO      | BOL     | 068     | 1       | Bolivia                           | Plurinational State of Bolivia                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BQ      | BES     | 535     | 1       | Bonaire, Sint Eustatius and Saba  | Bonaire, Sint Eustatius and Saba                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BR      | BRA     | 076     | 1       | Brazil                            | Federative Republic of Brazil                                             | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AO      | AGO     | 024     | 1       | Angola                            | Republic of Angola                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BT      | BTN     | 064     | 1       | Bhutan                            | Kingdom of Bhutan                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BV      | BVT     | 074     | 1       | Bouvet Island                     | Bouvet Island                                                             | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BW      | BWA     | 072     | 1       | Botswana                          | Republic of Botswana                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BY      | BLR     | 112     | 1       | Belarus                           | Republic of Belarus                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| BZ      | BLZ     | 084     | 1       | Belize                            | Belize                                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CA      | CAN     | 124     | 1       | Canada                            | Canada                                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CC      | CCK     | 166     | 1       | Cocos (Keeling) Islands           | Cocos (Keeling) Islands                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CD      | COD     | 180     | 1       | DR Congo                          | Democratic Republic of the Congo                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CF      | CAF     | 140     | 1       | Central African Republic          | Central African Republic                                                  | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CG      | COG     | 178     | 1       | Congo                             | Republic of the Congo                                                     | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CH      | CHE     | 756     | 1       | Switzerland                       | Swiss Confederation                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CI      | CIV     | 384     | 1       | Côte d'Ivoire                    | Republic of Côte d'Ivoire                                                | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CK      | COK     | 184     | 1       | Cook Islands                      | Cook Islands                                                              | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CL      | CHL     | 152     | 1       | Chile                             | Republic of Chile                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CM      | CMR     | 120     | 1       | Cameroon                          | Republic of Cameroon                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CN      | CHN     | 156     | 1       | China                             | People's Republic of China                                                | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CO      | COL     | 170     | 1       | Colombia                          | Republic of Colombia                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CR      | CRI     | 188     | 1       | Costa Rica                        | Republic of Costa Rica                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CU      | CUB     | 192     | 1       | Cuba                              | Republic of Cuba                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CV      | CPV     | 132     | 1       | Cape Verde                        | Republic of Cabo Verde                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CW      | CUW     | 531     | 1       | Curaçao                          | Curaçao                                                                  | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CX      | CXR     | 162     | 1       | Christmas Island                  | Christmas Island                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CY      | CYP     | 196     | 1       | Cyprus                            | Republic of Cyprus                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| CZ      | CZE     | 203     | 1       | Czechia                           | Czech Republic                                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DE      | DEU     | 276     | 1       | Germany                           | Federal Republic of Germany                                               | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DJ      | DJI     | 262     | 1       | Djibouti                          | Republic of Djibouti                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DK      | DNK     | 208     | 1       | Denmark                           | Kingdom of Denmark                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DM      | DMA     | 212     | 1       | Dominica                          | Commonwealth of Dominica                                                  | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DO      | DOM     | 214     | 1       | Dominican Republic                | Dominican Republic                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| DZ      | DZA     | 012     | 1       | Algeria                           | People's Democratic Republic of Algeria                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| EC      | ECU     | 218     | 1       | Ecuador                           | Republic of Ecuador                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AG      | ATG     | 028     | 1       | Antigua and Barbuda               | Antigua and Barbuda                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| EG      | EGY     | 818     | 1       | Egypt                             | Arab Republic of Egypt                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| EH      | ESH     | 732     | 1       | Western Sahara                    | Western Sahara                                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| ER      | ERI     | 232     | 1       | Eritrea                           | State of Eritrea                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| ES      | ESP     | 724     | 1       | Spain                             | Kingdom of Spain                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| ET      | ETH     | 231     | 1       | Ethiopia                          | Federal Democratic Republic of Ethiopia                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FI      | FIN     | 246     | 1       | Finland                           | Republic of Finland                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FJ      | FJI     | 242     | 1       | Fiji                              | Republic of Fiji                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FK      | FLK     | 238     | 1       | Falkland Islands                  | Falkland Islands                                                          | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FM      | FSM     | 583     | 1       | Micronesia                        | Federated States of Micronesia                                            | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FO      | FRO     | 234     | 1       | Faroe Islands                     | Faroe Islands                                                             | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| FR      | FRA     | 250     | 1       | France                            | French Republic                                                           | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GA      | GAB     | 266     | 1       | Gabon                             | Gabonese Republic                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GB      | GBR     | 826     | 1       | United Kingdom                    | United Kingdom of Great Britain and Northern Ireland                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GD      | GRD     | 308     | 1       | Grenada                           | Grenada                                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GE      | GEO     | 268     | 1       | Georgia                           | Georgia                                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GF      | GUF     | 254     | 1       | French Guiana                     | French Guiana                                                             | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GG      | GGY     | 831     | 1       | Guernsey                          | Bailiwick of Guernsey                                                     | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GH      | GHA     | 288     | 1       | Ghana                             | Republic of Ghana                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GI      | GIB     | 292     | 1       | Gibraltar                         | Gibraltar                                                                 | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GL      | GRL     | 304     | 1       | Greenland                         | Greenland                                                                 | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GM      | GMB     | 270     | 1       | Gambia                            | Republic of The Gambia                                                    | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GN      | GIN     | 324     | 1       | Guinea                            | Republic of Guinea                                                        | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GP      | GLP     | 312     | 1       | Guadeloupe                        | Guadeloupe                                                                | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GQ      | GNQ     | 226     | 1       | Equatorial Guinea                 | Republic of Equatorial Guinea                                             | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GR      | GRC     | 300     | 1       | Greece                            | Hellenic Republic                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GS      | SGS     | 239     | 1       | South Georgia                     | South Georgia and the South Sandwich Islands                              | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GT      | GTM     | 320     | 1       | Guatemala                         | Republic of Guatemala                                                     | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GU      | GUM     | 316     | 1       | Guam                              | Guam                                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GW      | GNB     | 624     | 1       | Guinea-Bissau                     | Republic of Guinea-Bissau                                                 | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| GY      | GUY     | 328     | 1       | Guyana                            | Co-operative Republic of Guyana                                           | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HK      | HKG     | 344     | 1       | Hong Kong                         | Hong Kong Special Administrative Region of the People's Republic of China | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HM      | HMD     | 334     | 1       | Heard Island and McDonald Islands | Heard Island and McDonald Islands                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HN      | HND     | 340     | 1       | Honduras                          | Republic of Honduras                                                      | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HR      | HRV     | 191     | 1       | Croatia                           | Republic of Croatia                                                       | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HT      | HTI     | 332     | 1       | Haiti                             | Republic of Haiti                                                         | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| HU      | HUN     | 348     | 1       | Hungary                           | Hungary                                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
| AD      | AND     | 020     | 1       | Andorra                           | Principality of Andorra                                                   | system.new_record    | system      | 2026-01-09 16:37:38.000000000 |
+---------+---------+---------+---------+-----------------------------------+---------------------------------------------------------------------------+----------------------+-------------+-------------------------------+

ores-shell> Bye!

Add

Add a new country.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
countries add XY XYZ 1234 Xyzland "Xyzland land" "system.new" "New country"
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Country added successfully!
ores-shell> Bye!

Delete

Delete a country by ISO code.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
countries delete XYZ
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Country XYZ deleted successfully!
ores-shell> Bye!

History

Get version history for a country.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
countries history US
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> +---------+---------+---------+---------+---------------+--------------------------+-------------------+-------------+-------------------------------+
| Alpha-2 | Alpha-3 | Numeric | Version | Name          | Official Name            | Change Reason     | Recorded By | Recorded At                   |
+---------+---------+---------+---------+---------------+--------------------------+-------------------+-------------+-------------------------------+
| US      | USA     | 840     | 1       | United States | United States of America | system.new_record | system      | 2026-01-09 16:37:38.000000000 |
+---------+---------+---------+---------+---------------+--------------------------+-------------------+-------------+-------------------------------+

ores-shell> Bye!

Change Reasons

Functionality related to the change reasons domain entity.

Help

./ores.shell ${log_args} << 'EOF'
change-reasons
help
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> change-reasons> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - get
	Retrieve all change reasons from the server
 - add <string> <string> <string> <string>
	Add a change reason (code description category_code "commentary")
 - delete <string>
	Delete a change reason by code
 - history <string>
	Get version history for a change reason by code
 - ores-shell
	(menu)
change-reasons> Bye!

Get

Get all change reasons in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reasons get
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+-----------------------------+----------+----------------------------------------------------+-------+--------+--------------+-------+-------------+---------+
| Code                        | Category | Description                                        | Amend | Delete | Req. Comment | Order | Recorded By | Version |
+-----------------------------+----------+----------------------------------------------------+-------+--------+--------------+-------+-------------+---------+
| system.initial_load         | system   | Initial system bootstrap or migration              | N     | N      | N            | 0     | system      | 1       |
| common.non_material_update  | common   | Non-material update (Touch)                        | Y     | N      | N            | 10    | system      | 1       |
| system.new_record           | system   | New record created during normal operations        | N     | N      | N            | 10    | system      | 1       |
| trade.fat_finger            | trade    | Erroneous execution (wrong quantity/price)         | Y     | Y      | N            | 10    | system      | 1       |
| common.rectification        | common   | User/Booking Error                                 | Y     | Y      | N            | 20    | system      | 1       |
| system.external_data_import | system   | External data import (requires data lineage)       | Y     | N      | Y            | 20    | system      | 1       |
| trade.system_malfunction    | trade    | Technical glitch or algorithm issue 2              | Y     | Y      | Y            | 20    | newuser3    | 4       |
| common.duplicate            | common   | Duplicate Record                                   | N     | Y      | N            | 30    | system      | 1       |
| trade.corporate_action      | trade    | Stock split, dividend, or merger adjustment        | Y     | Y      | N            | 30    | system      | 1       |
| common.stale_data           | common   | Data not updated within required liquidity horizon | Y     | Y      | N            | 40    | system      | 1       |
| trade.allocation_swap       | trade    | House to client sub-account reallocation           | Y     | Y      | N            | 40    | system      | 1       |
| common.outlier_correction   | common   | Manual override after plausibility check failure   | Y     | Y      | Y            | 50    | system      | 1       |
| trade.re_booking            | trade    | Wrong legal entity correction                      | Y     | Y      | Y            | 50    | system      | 1       |
| common.feed_failure         | common   | Upstream vendor/API data issue                     | Y     | Y      | Y            | 60    | system      | 1       |
| common.mapping_error        | common   | Incorrect ID translation (e.g., ISIN to FIGI)      | Y     | Y      | Y            | 70    | system      | 1       |
| common.judgmental_override  | common   | Expert judgment when market prices unavailable     | Y     | Y      | Y            | 80    | system      | 1       |
| common.regulatory           | common   | Mandatory compliance adjustment                    | Y     | Y      | Y            | 90    | system      | 1       |
| trade.other                 | trade    | Exceptional (requires audit note)                  | N     | Y      | Y            | 999   | newuser3    | 2       |
| common.other                | common   | Exceptional (requires audit note)                  | Y     | Y      | Y            | 1000  | system      | 1       |
+-----------------------------+----------+----------------------------------------------------+-------+--------+--------------+-------+-------------+---------+


ores-shell> Bye!

Add

Add a new change reason.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reasons add test_reason "Test reason for recipes" common "New reason for testing."
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Change reason added successfully!
ores-shell> Bye!

Delete

Delete a change reason by code.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reasons delete test_reason
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Change reason test_reason deleted successfully!
ores-shell> Bye!

History

Get version history for a change reason.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reasons history system.initial_load
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+---------------------+----------+---------------------------------------+-------+--------+--------------+-------+-------------+---------+
| Code                | Category | Description                           | Amend | Delete | Req. Comment | Order | Recorded By | Version |
+---------------------+----------+---------------------------------------+-------+--------+--------------+-------+-------------+---------+
| system.initial_load | system   | Initial system bootstrap or migration | N     | N      | N            | 0     | system      | 1       |
+---------------------+----------+---------------------------------------+-------+--------+--------------+-------+-------------+---------+


ores-shell> Bye!

Change Reason Categories

Functionality related to the change reason categories domain entity.

Help

./ores.shell ${log_args} << 'EOF'
change-reason-categories
help
exit
EOF
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> change-reason-categories> Commands available:
 - help
	This help message
 - exit
	Quit the session
 - history
	Show the history
 - ! <history entry index>
	Exec a command by index in the history
 - get
	Retrieve all change reason categories from the server
 - add <string> <string> <string>
	Add a category (code description "commentary")
 - delete <string>
	Delete a category by code
 - history <string>
	Get version history for a category by code
 - ores-shell
	(menu)
change-reason-categories> Bye!

Get

Get all change reason categories in the system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reason-categories get
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------+-------------------------------------------------------------------------+-------------+---------+
| Code   | Description                                                             | Recorded By | Version |
+--------+-------------------------------------------------------------------------+-------------+---------+
| common | Universal data quality reasons aligned with BCBS 239 and FRTB standards | system      | 1       |
| system | System-generated reasons for automatic operations (not user-selectable) | system      | 1       |
| trade  | Trade lifecycle reasons aligned with FINRA and MiFID II standards. test | newuser3    | 7       |
+--------+-------------------------------------------------------------------------+-------------+---------+


ores-shell> Bye!

Add

Add a new change reason category.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reason-categories add TEST_CATEGORY "Test category for recipes" "New test category."
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Category added successfully!
ores-shell> Bye!

Delete

Delete a change reason category by code.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reason-categories delete TEST_CATEGORY
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Category TEST_CATEGORY deleted successfully!
ores-shell> Bye!

History

Get version history for a change reason category.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
change-reason-categories history system
exit
EOF
✓ Connected to :51004
✓ Logged in as: newuser3
ORE Studio Shell REPL v0.0.8
Type 'help' for available commands, 'exit' to quit.

ores-shell>
+--------+-------------------------------------------------------------------------+-------------+---------+
| Code   | Description                                                             | Recorded By | Version |
+--------+-------------------------------------------------------------------------+-------------+---------+
| system | System-generated reasons for automatic operations (not user-selectable) | system      | 1       |
+--------+-------------------------------------------------------------------------+-------------+---------+


ores-shell> Bye!

Setup a new System

Useful commands to setup a new system.

export ORES_SHELL_LOGIN_PASSWORD
./ores.shell ${log_args} ${connect_args} ${login_args} << 'EOF'
connect localhost 51004 test
bootstrap newuser3 Secure-Password-123 newuser3@test.com
accounts login newuser3 Secure-Password-123
tenants add acme "Acme Corp" organisation acme.com "Acme Corporation tenant"
accounts create newuser61@acme.com Secure-Password-123 567 newuser61@acme.com
tenants add example "Example Corp" organisation example.com "Example Corporation tenant"
accounts create newuser60@example.com Secure-Password-123 567 newuser60@example.com
permissions suggest newuser60 example.com
permissions suggest newuser61 acme.com
exit
EOF
✓ Connected to :51004

⚠ WARNING: System is in BOOTSTRAP MODE
  System in BOOTSTRAP MODE - awaiting initial admin account creation
  Use 'bootstrap <username> <password> <email>' to create the initial admin account.

✗ Auto-login failed: System is in bootstrap mode. Only initial admin account creation is allowed. Please create the initial admin account from localhost.
ORE Studio Shell REPL v0.0.11
Type 'help' for available commands, 'exit' to quit.

ores-shell> ✓ Connected to :51004

⚠ WARNING: System is in BOOTSTRAP MODE
  System in BOOTSTRAP MODE - awaiting initial admin account creation

ores-shell> ✓ Initial admin account created successfully!
  Account ID: 019c32c0-d177-7328-8287-5877bddbe572
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
  You can now login with the credentials provided.
ores-shell> ✓ Login successful!
  User: newuser3
  Tenant: System (ffffffff-ffff-ffff-ffff-ffffffffffff)
ores-shell> ✓ Tenant added successfully!
  ID: d4e4717a-444f-4a9e-b61a-3955c50ecdec
ores-shell> ✓ Account created with ID: 019c32c0-d2cc-71ea-ba7e-3486ff79b69d
ores-shell> ✓ Tenant added successfully!
  ID: fce9980a-91c1-4fce-af74-f1a4be32c9a4
ores-shell> ✓ Account created with ID: 019c32c0-d374-7029-86aa-e2dce4b7b631
ores-shell> # Role assignment commands for: newuser60@example.com
# Account ID: 019c32c0-d374-7029-86aa-e2dce4b7b631

accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 65449fd0-f712-4a8d-9cc8-c1c2a45a526e  # DataPublisher
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 1c861ebb-6d65-48c2-9f61-16fd5341886a  # Operations
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 71fea5eb-3b63-4d7f-8f67-2e6d1076cee4  # Sales
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 8ee5922b-8e6c-405b-a192-9640a4de2c8e  # SuperAdmin
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 a1c366f8-7974-4646-a2e0-8872845b1783  # Support
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 ee817971-c045-4695-a933-2a6c9cd9b8cf  # TenantAdmin
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 ed378a78-158a-4e9b-aa9b-4d87605c7412  # Trading
accounts assign-role 019c32c0-d374-7029-86aa-e2dce4b7b631 9bb04780-bda5-44a9-b8c4-26dda518c2e5  # Viewer
ores-shell> # Role assignment commands for: newuser61@acme.com
# Account ID: 019c32c0-d2cc-71ea-ba7e-3486ff79b69d

accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d 65449fd0-f712-4a8d-9cc8-c1c2a45a526e  # DataPublisher
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d 1c861ebb-6d65-48c2-9f61-16fd5341886a  # Operations
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d 71fea5eb-3b63-4d7f-8f67-2e6d1076cee4  # Sales
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d 8ee5922b-8e6c-405b-a192-9640a4de2c8e  # SuperAdmin
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d a1c366f8-7974-4646-a2e0-8872845b1783  # Support
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d ee817971-c045-4695-a933-2a6c9cd9b8cf  # TenantAdmin
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d ed378a78-158a-4e9b-aa9b-4d87605c7412  # Trading
accounts assign-role 019c32c0-d2cc-71ea-ba7e-3486ff79b69d 9bb04780-bda5-44a9-b8c4-26dda518c2e5  # Viewer
ores-shell> Bye!

Footer

Previous: Recipes