LogoLogo
Studio
4.6
4.6
  • Harper Docs
  • Getting Started
    • What is Harper
    • Install Harper
    • Harper Concepts
    • Create Your First Application
  • Developers
    • Applications
      • Caching
      • Defining Schemas
      • Defining Roles
      • Data Loader
      • 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
      • Components
      • Registration
      • Jobs
      • Logs
      • System Operations
      • Configuration
      • Certificate Management
      • 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.6.0
        • 4.5.10
        • 4.5.9
        • 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
  • dataLoader
  • fastifyRoutes
  • graphql
  • graphqlSchema
  • jsResource
  • loadEnv
  • rest
  • roles
  • static
  1. Developers
  2. Components

Built-In Components

PreviousReferenceNextREST

Last updated 2 days ago

Harper provides extended features using built-in components. They do not need to be installed with a package manager, and simply must be specified in a config to run. These are used throughout many Harper docs, guides, and examples. Unlike external components which have their own semantic versions, built-in components follow Harper's semantic version.

dataLoader

Load data from JSON or YAML files into Harper tables as part of component deployment.

This component is an and can be configured with the files configuration option.

Complete documentation for this feature is available here:

dataLoader:
  files: 'data/*.json'

fastifyRoutes

fastifyRoutes:
  files: 'routes/*.js'

graphql

GraphQL querying is experimental, and only partially implements the GraphQL Over HTTP / GraphQL specifications.

Enables GraphQL querying via a /graphql endpoint loosely implementing the GraphQL Over HTTP specification.

graphql: true

graphqlSchema

Specify schemas for Harper tables and resources via GraphQL schema syntax.

graphqlSchema:
  files: 'schemas.graphql'

jsResource

Specify custom, JavaScript based Harper resources.

jsResource:
  files: 'resource.js'

loadEnv

Load environment variables via files like .env.

Ensure this component is specified first in config.yaml so that environment variables are loaded prior to loading any other components.

loadEnv:
  files: '.env'

This component matches the default behavior of dotenv where existing variables take precedence. Specify the override option in order to override existing environment variables assigned to process.env:

loadEnv:
  files: '.env'
  override: true

Important: Harper is a single process application. Environment variables are loaded onto process.env and will be shared throughout all Harper components. This means environment variables loaded by one component will be available on other components (as long as the components are loaded in the correct order).

rest

Enable automatic REST endpoint generation for exported resources with this component.

rest: true

This component contains additional options:

To enable Last-Modified header support:

rest:
  lastModified: true

To disable automatic WebSocket support:

rest:
  webSocket: false

roles

Specify roles for Harper tables and resources.

roles:
  files: 'roles.yaml'

static

Specify files to serve statically from the Harper HTTP endpoint.

As specified by Harper's Resource Extension docs, the files option can be any glob pattern or a glob options object. This extension will serve all files matching the pattern, so make sure to be specific.

To serve the entire web directory, specify files: 'web/**'.

To serve only the html files within web, specify files: 'web/*.html' or files: 'web/**/*.html'.

The urlPath option is the base URL path entries will be resolved to. For example, a urlPath: 'static' will serve all files resolved from files to the URL path localhost/static/.

Given the config.yaml:

static:
  files: 'web/*.html'
  urlPath: 'static'

And the file directory structure:

component/
├─ web/
│  ├─ index.html
│  ├─ blog.html
├─ config.yaml

The HTML files will be available at localhost/static/index.html and localhost/static/blog.html respectively.

Specify custom endpoints using .

This component is a and can be configured with the configuration options.

Complete documentation for this feature is available here:

Complete documentation for this feature is available here:

This component is a and can be configured with the configuration options.

Complete documentation for this feature is available here:

Refer to the Application guide, or reference documentation for more information on custom resources.

This component is a and can be configured with the configuration options.

This component is a and can be configured with the configuration options.

Complete documentation for this feature is available here:

This component is a and can be configured with the configuration options.

Complete documentation for this feature is available here:

Use the configuration options to specify the files to be served.

Fastify
Define Fastify Routes
GraphQL
Defining Schemas
REST
Defining Roles
Data Loader
Built-In Components
dataLoader
fastifyRoutes
graphql
graphqlSchema
jsResource
loadEnv
rest
roles
static
Resource Class
Custom Functionality with JavaScript
Extension
Resource Extension
files and urlPath
Resource Extension
files and urlPath
Resource Extension
files and urlPath
Resource Extension
files and urlPath
Resource Extension
files and urlPath
Resource Extension
files and urlPath