LogoLogo
Studio
4.5
4.5
  • Harper Docs
  • Getting Started
  • Developers
    • Applications
      • Caching
      • Defining Schemas
      • Defining Roles
      • Debugging Applications
      • Define Fastify Routes
      • Web Applications
      • Example Projects
    • Components
      • Managing
      • Reference
      • Built-In Components
    • REST
    • Operations API
      • Quick Start Examples
      • Databases and Tables
      • NoSQL Operations
      • Bulk Operations
      • Users and Roles
      • Clustering
        • Clustering with NATS
      • Custom Functions
      • Components
      • Registration
      • Jobs
      • Logs
      • Utilities
      • Token Authentication
      • SQL Operations
      • Advanced JSON SQL Examples
    • Real-Time
    • Replication/Clustering
      • Sharding
      • Legacy NATS Clustering
        • Requirements and Definitions
        • Creating A Cluster User
        • Naming A Node
        • Enabling Clustering
        • Establishing Routes
        • Subscription Overview
        • Managing Subscriptions
        • Things Worth Knowing
        • Certificate Management
    • Security
      • JWT Authentication
      • Basic Authentication
      • mTLS Authentication
      • Configuration
      • Users & Roles
      • Certificate Management
    • SQL Guide
      • SQL Features Matrix
      • SQL Date Functions
      • SQL Reserved Word
      • SQL Functions
      • SQL JSON Search
      • SQL Geospatial Functions
    • Miscellaneous
      • Google Data Studio
      • SDKs
      • Query Optimization
  • Administration
    • Best Practices and Recommendations
    • Logging
      • Standard Logging
      • Audit Logging
      • Transaction Logging
    • Clone Node
    • Compact
    • Jobs
    • Harper Studio
      • Create an Account
      • Log In & Password Reset
      • Organizations
      • Instances
      • Query Instance Data
      • Manage Databases / Browse Data
      • Manage Clustering
      • Manage Instance Users
      • Manage Instance Roles
      • Manage Applications
      • Instance Metrics
      • Instance Configuration
      • Enable Mixed Content
  • Deployments
    • Configuration File
    • Harper CLI
    • Install Harper
      • On Linux
    • Upgrade a Harper Instance
    • Harper Cloud
      • IOPS Impact on Performance
      • Instance Size Hardware Specs
      • Alarms
      • Verizon 5G Wavelength
  • Technical Details
    • Reference
      • Analytics
      • Architecture
      • Content Types
      • Data Types
      • Dynamic Schema
      • GraphQL
      • Harper Headers
      • Harper Limits
      • Globals
      • Resource Class
      • Transactions
      • Storage Algorithm
      • Blob
    • Release Notes
      • Harper Tucker (Version 4)
        • 4.5.8
        • 4.5.7
        • 4.5.6
        • 4.5.5
        • 4.5.4
        • 4.5.3
        • 4.5.2
        • 4.5.1
        • 4.5.0
        • 4.4.24
        • 4.4.23
        • 4.4.22
        • 4.4.21
        • 4.4.20
        • 4.4.19
        • 4.4.18
        • 4.4.17
        • 4.4.16
        • 4.4.15
        • 4.4.14
        • 4.4.13
        • 4.4.12
        • 4.4.11
        • 4.4.10
        • 4.4.9
        • 4.4.8
        • 4.4.7
        • 4.4.6
        • 4.4.5
        • 4.4.4
        • 4.4.3
        • 4.4.2
        • 4.4.1
        • 4.4.0
        • 4.3.38
        • 4.3.37
        • 4.3.36
        • 4.3.35
        • 4.3.34
        • 4.3.33
        • 4.3.32
        • 4.3.31
        • 4.3.30
        • 4.3.29
        • 4.3.28
        • 4.3.27
        • 4.3.26
        • 4.3.25
        • 4.3.24
        • 4.3.23
        • 4.3.22
        • 4.3.21
        • 4.3.20
        • 4.3.19
        • 4.3.18
        • 4.3.17
        • 4.3.16
        • 4.3.15
        • 4.3.14
        • 4.3.13
        • 4.3.12
        • 4.3.11
        • 4.3.10
        • 4.3.9
        • 4.3.8
        • 4.3.7
        • 4.3.6
        • 4.3.5
        • 4.3.4
        • 4.3.3
        • 4.3.2
        • 4.3.1
        • 4.3.0
        • 4.2.8
        • 4.2.7
        • 4.2.6
        • 4.2.5
        • 4.2.4
        • 4.2.3
        • 4.2.2
        • 4.2.1
        • 4.2.0
        • 4.1.2
        • 4.1.1
        • 4.1.0
        • 4.0.7
        • 4.0.6
        • 4.0.5
        • 4.0.4
        • 4.0.3
        • 4.0.2
        • 4.0.1
        • 4.0.0
        • Tucker
      • HarperDB Monkey (Version 3)
        • 3.3.0
        • 3.2.1
        • 3.2.0
        • 3.1.5
        • 3.1.4
        • 3.1.3
        • 3.1.2
        • 3.1.1
        • 3.1.0
        • 3.0.0
      • HarperDB Penny (Version 2)
        • 2.3.1
        • 2.3.0
        • 2.2.3
        • 2.2.2
        • 2.2.0
        • 2.1.1
      • HarperDB Alby (Version 1)
        • 1.3.1
        • 1.3.0
        • 1.2.0
        • 1.1.0
  • More Help
    • Support
    • Slack
    • Contact Us
Powered by GitBook
On this page
  • Restart
  • Body
  • Response: 200
  • Restart Service
  • Body
  • Response: 200
  • System Information
  • Body
  • Delete Records Before
  • Body
  • Response: 200
  • Export Local
  • Body
  • Response: 200
  • Export To S3
  • Body
  • Response: 200
  • Install Node Modules
  • Body
  • Set Configuration
  • Body
  • Response: 200
  • Get Configuration
  • Body
  • Response: 200
  • Add Certificate
  • Body
  • Response: 200
  • Remove Certificate
  • Body
  • Response: 200
  • List Certificates
  • Body
  • Response: 200
  1. Developers
  2. Operations API

Utilities

Restart

Restarts the Harper instance.

Operation is restricted to super_user roles only

  • operation (required) - must always be restart

Body

{
  "operation": "restart"
}

Response: 200

{
  "message": "Restarting HarperDB. This may take up to 60 seconds."
}

Restart Service

Restarts servers for the specified Harper service.

Operation is restricted to super_user roles only

  • operation (required) - must always be restart_service

  • service (required) - must be one of: http_workers, clustering_config or clustering

  • replicated (optional) - must be a boolean. If set to true, Harper will replicate the restart service operation across all nodes in the cluster. The restart will occur as a rolling restart, ensuring that each node is fully restarted before the next node begins restarting.

Body

{
  "operation": "restart_service",
  "service": "http_workers"
}

Response: 200

{
  "message": "Restarting http_workers"
}

System Information

Returns detailed metrics on the host system.

Operation is restricted to super_user roles only

  • operation (required) - must always be system_information

  • attributes (optional) - string array of top level attributes desired in the response, if no value is supplied all attributes will be returned. Available attributes are: ['system', 'time', 'cpu', 'memory', 'disk', 'network', 'harperdb_processes', 'table_size', 'metrics', 'threads', 'replication']

Body

{
  "operation": "system_information"
}

Delete Records Before

Delete data before the specified timestamp on the specified database table exclusively on the node where it is executed. Any clustered nodes with replicated data will retain that data.

Operation is restricted to super_user roles only

  • operation (required) - must always be delete_records_before

  • date (required) - records older than this date will be deleted. Supported format looks like: YYYY-MM-DDThh:mm:ss.sZ

  • schema (required) - name of the schema where you are deleting your data

  • table (required) - name of the table where you are deleting your data

Body

{
  "operation": "delete_records_before",
  "date": "2021-01-25T23:05:27.464",
  "schema": "dev",
  "table": "breed"
}

Response: 200

{
  "message": "Starting job with id d3aed926-e9fe-4ec1-aea7-0fb4451bd373",
  "job_id": "d3aed926-e9fe-4ec1-aea7-0fb4451bd373"
}

Export Local

Exports data based on a given search operation to a local file in JSON or CSV format.

  • operation (required) - must always be export_local

  • format (required) - the format you wish to export the data, options are json & csv

  • path (required) - path local to the server to export the data

  • search_operation (required) - search_operation of search_by_hash, search_by_value, search_by_conditions or sql

  • filename (optional) - the name of the file where your export will be written to (do not include extension in filename). If one is not provided it will be autogenerated based on the epoch.

Body

{
  "operation": "export_local",
  "format": "json",
  "path": "/data/",
  "search_operation": {
      "operation": "sql",
      "sql": "SELECT * FROM dev.breed"
  }
}

Response: 200

{
  "message": "Starting job with id 6fc18eaa-3504-4374-815c-44840a12e7e5"
}

Export To S3

Exports data based on a given search operation from table to AWS S3 in JSON or CSV format.

  • operation (required) - must always be export_to_s3

  • format (required) - the format you wish to export the data, options are json & csv

  • s3 (required) - details your access keys, bucket, bucket region and key for saving the data to S3

  • search_operation (required) - search_operation of search_by_hash, search_by_value, search_by_conditions or sql

Body

{
    "operation": "export_to_s3",
    "format": "json",
    "s3": {
        "aws_access_key_id": "YOUR_KEY",
        "aws_secret_access_key": "YOUR_SECRET_KEY",
        "bucket": "BUCKET_NAME",
        "key": "OBJECT_NAME",
        "region": "BUCKET_REGION"
    },
    "search_operation": {
        "operation": "sql",
        "sql": "SELECT * FROM dev.dog"
    }
}

Response: 200

{
  "message": "Starting job with id 9fa85968-4cb1-4008-976e-506c4b13fc4a",
  "job_id": "9fa85968-4cb1-4008-976e-506c4b13fc4a"
}

Install Node Modules

This operation is deprecated, as it is handled automatically by deploy_component and restart. Executes npm install against specified custom function projects.

Operation is restricted to super_user roles only

  • operation (required) - must always be install_node_modules

  • projects (required) - must ba an array of custom functions projects.

Body

{
  "operation": "install_node_modules",
  "projects": [
    "dogs",
    "cats"
  ],
  "dry_run": true
}

Set Configuration

Modifies the Harper configuration file parameters. Must follow with a restart or restart_service operation.

Operation is restricted to super_user roles only

  • operation (required) - must always be set_configuration

  • logging_level (example/optional) - one or more configuration keywords to be updated in the Harper configuration file

  • clustering_enabled (example/optional) - one or more configuration keywords to be updated in the Harper configuration file

Body

{
  "operation": "set_configuration",
  "logging_level": "trace",
  "clustering_enabled": true
}

Response: 200

{
  "message": "Configuration successfully set. You must restart HarperDB for new config settings to take effect."
}

Get Configuration

Returns the Harper configuration parameters.

Operation is restricted to super_user roles only

  • operation (required) - must always be get_configuration

Body

{
  "operation": "get_configuration"
}

Response: 200

{
  "http": {
    "compressionThreshold": 1200,
    "cors": false,
    "corsAccessList": [
      null
    ],
    "keepAliveTimeout": 30000,
    "port": 9926,
    "securePort": null,
    "timeout": 120000
  },
  "threads": 11,
  "authentication": {
    "cacheTTL": 30000,
    "enableSessions": true,
    "operationTokenTimeout": "1d",
    "refreshTokenTimeout": "30d"
  },
  "analytics": {
    "aggregatePeriod": 60
  },
  "replication": {
    "hostname": "node1",
    "databases": "*",
    "routes": null,
    "url": "wss://127.0.0.1:9925"
  },
  "componentsRoot": "/Users/hdb/components",
  "localStudio": {
    "enabled": false
  },
  "logging": {
    "auditAuthEvents": {
      "logFailed": false,
      "logSuccessful": false
    },
    "auditLog": true,
    "auditRetention": "3d",
    "file": true,
    "level": "error",
    "root": "/Users/hdb/log",
    "rotation": {
      "enabled": false,
      "compress": false,
      "interval": null,
      "maxSize": null,
      "path": "/Users/hdb/log"
    },
    "stdStreams": false
  },
  "mqtt": {
    "network": {
      "port": 1883,
      "securePort": 8883
    },
    "webSocket": true,
    "requireAuthentication": true
  },
  "operationsApi": {
    "network": {
      "cors": true,
      "corsAccessList": [
        "*"
      ],
      "domainSocket": "/Users/hdb/operations-server",
      "port": 9925,
      "securePort": null
    }
  },
  "rootPath": "/Users/hdb",
  "storage": {
    "writeAsync": false,
    "caching": true,
    "compression": false,
    "noReadAhead": true,
    "path": "/Users/hdb/database",
    "prefetchWrites": true
  },
  "tls": {
    "privateKey": "/Users/hdb/keys/privateKey.pem"
  }
}

Add Certificate

Adds or updates a certificate in the hdb_certificate system table. If a private_key is provided it will not be stored in hdb_certificate, it will be written to file in <ROOTPATH>/keys/. If a private_key is not passed the operation will search for one that matches the certificate. If one is not found an error will be returned.

Operation is restricted to super_user roles only

  • operation (required) - must always be add_certificate

  • name (required) - a unique name for the certificate

  • certificate (required) - a PEM formatted certificate string

  • is_authority (required) - a boolean indicating if the certificate is a certificate authority

  • hosts (optional) - an array of hostnames that the certificate is valid for

  • private_key (optional) - a PEM formatted private key string

Body

{
  "operation": "add_certificate",
  "name": "my-cert",
  "certificate": "-----BEGIN CERTIFICATE-----ZDFAay... -----END CERTIFICATE-----",
  "is_authority": false,
  "private_key": "-----BEGIN RSA PRIVATE KEY-----Y4dMpw5f... -----END RSA PRIVATE KEY-----"
}

Response: 200

{
  "message": "Successfully added certificate: my-cert"
}

Remove Certificate

Removes a certificate from the hdb_certificate system table and deletes the corresponding private key file.

Operation is restricted to super_user roles only

  • operation (required) - must always be remove_certificate

  • name (required) - the name of the certificate

Body

{
  "operation": "remove_certificate",
  "name": "my-cert"
}

Response: 200

{
  "message": "Successfully removed my-cert"
}

List Certificates

Lists all certificates in the hdb_certificate system table.

Operation is restricted to super_user roles only

  • operation (required) - must always be list_certificates

Body

{
  "operation": "list_certificates"
}

Response: 200

[
  {
    "name": "HarperDB-Certificate-Authority-node1",
    "certificate": "-----BEGIN CERTIFICATE-----\r\nTANBgkqhk... S34==\r\n-----END CERTIFICATE-----\r\n",
    "private_key_name": "privateKey.pem",
    "is_authority": true,
    "details": {
      "issuer": "CN=HarperDB-Certificate-Authority-node1 C=USA ST=Colorado L=Denver O=HarperDB\\, Inc.",
      "subject": "CN=HarperDB-Certificate-Authority-node1 C=USA ST=Colorado L=Denver O=HarperDB\\, Inc.",
      "serial_number": "5235345",
      "valid_from": "Aug 27 15:00:00 2024 GMT",
      "valid_to": "Aug 25 15:00:00 2034 GMT"
    },
    "is_self_signed": true,
    "uses": [
      "https",
      "wss"
    ]
  },
  {
    "name": "node1",
    "certificate": "-----BEGIN CERTIFICATE-----\r\ngIEcSR1M... 5bv==\r\n-----END CERTIFICATE-----\r\n",
    "private_key_name": "privateKey.pem",
    "is_authority": false,
    "details": {
      "issuer": "CN=HarperDB-Certificate-Authority-node1 C=USA ST=Colorado L=Denver O=HarperDB\\, Inc.",
      "subject": "CN=node.1 C=USA ST=Colorado L=Denver O=HarperDB\\, Inc.",
      "subject_alt_name": "IP Address:127.0.0.1, DNS:localhost, IP Address:0:0:0:0:0:0:0:1, DNS:node.1",
      "serial_number": "5243646",
      "valid_from": "Aug 27 15:00:00 2024 GMT",
      "valid_to": "Aug 25 15:00:00 2034 GMT"
    },
    "is_self_signed": true,
    "uses": [
      "https",
      "wss"
    ]
  }
]
PreviousLogsNextToken Authentication

Last updated 1 month ago

dry_run (optional) - refers to the npm --dry-run flag: . Defaults to false.

https://docs.npmjs.com/cli/v8/commands/npm-install#dry-run