Built-In Components
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.
fastifyRoutes
Specify custom endpoints using Fastify.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
Complete documentation for this feature is available here: Define Fastify Routes
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.
Complete documentation for this feature is available here: GraphQL
graphqlSchema
Specify schemas for Harper tables and resources via GraphQL schema syntax.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
Complete documentation for this feature is available here: Defining Schemas
jsResource
Specify custom, JavaScript based Harper resources.
Refer to the Application Custom Functionality with JavaScript guide, or Resource Class reference documentation for more information on custom resources.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
loadEnv
Load environment variables via files like .env
.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
Ensure this component is specified first in config.yaml
so that environment variables are loaded prior to loading any other components.
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
:
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.
Complete documentation for this feature is available here: REST
This component contains additional options:
To enable Last-Modified
header support:
To disable automatic WebSocket support:
roles
Specify roles for Harper tables and resources.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
Complete documentation for this feature is available here: Defining Roles
static
Specify which files to server statically from the Harper HTTP endpoint. Built using the send and serve-static modules.
This component is a Resource Extension and can be configured with the files
, path
, and root
configuration options.
Last updated