Glossary

This glossary defines terms used throughout the dcupl documentation. Terms are grouped by category for easier reference.

Core SDK Terms

Dcupl

The main class and entry point for the SDK. You create a Dcupl instance, add models and data, then call init() to start querying.

import { Dcupl } from '@dcupl/core';
const dcupl = new Dcupl();

Model

A data structure definition that describes the shape of your data. Models include properties, references, and optional validation rules. Similar to database schemas or TypeScript interfaces.

const model: ModelDefinition = {
  key: 'Product',
  properties: [
    { key: 'name', type: 'string' },
    { key: 'price', type: 'int' },
  ],
};

Property

An attribute of a model that defines a data field. Properties have a key (name) and type. Supported types include string, int, float, boolean, date, json, and arrays.

{ key: 'price', type: 'int' }
{ key: 'tags', type: 'Array<string>' }

Reference

A relationship between models. References link items in one model to items in another, enabling queries across related data.

Type Cardinality Example
singleValued 1:1 or n:1 Order has one Customer
multiValued 1:n or n:m Product has many Categories

List

A filtered view of a model's data. You create lists to query specific subsets of items. Multiple lists can exist for the same model with different filters.

const list = dcupl.lists.create({ modelKey: 'Product' });

Catalog

The query interface attached to each list. Provides methods for filtering, sorting, pagination, facets, and aggregations.

list.catalog.query.addCondition({ ... });
list.catalog.query.items();
list.catalog.fn.facets({ ... });

Query

A set of conditions that filter data. Queries use operators to match items based on property values.

{
  attribute: 'price',
  operator: 'gte',
  value: 100
}

Operator

A comparison function used in queries. Common operators include:

Operator Description
eq Equals
gt Greater than
gte Greater than or equal
lt Less than
lte Less than or equal
find Contains substring
regex Regular expression match

Facets

Counts of items grouped by property values. Used to build filter interfaces showing how many items match each option.

const facets = list.catalog.fn.facets({ attribute: 'category' });
// { category: { Electronics: 5, Clothing: 3, Books: 8 } }

Aggregations

Statistical calculations across items: sum, average, min, max, count.

const stats = list.catalog.fn.aggregate({ attribute: 'price' });
// { price: { min: 29, max: 999, avg: 450, sum: 4500, count: 10 } }

Index

An internal data structure that speeds up queries. dcupl automatically creates indices for properties used in filters.

Deep Query

A query that traverses references to filter by related model properties. For example, filtering orders by customer email.

{
  attribute: 'customer.email',
  operator: 'eq',
  value: 'user@example.com'
}

Data Loading Terms

DcuplAppLoader

A class from @dcupl/loader that loads configuration and data from URLs. Used when connecting to Console or loading from hosted files.

import { DcuplAppLoader } from '@dcupl/loader';
const loader = new DcuplAppLoader();

LoaderConfiguration

A JSON file (dcupl.lc.json) that defines resources to load, applications, and environment variables. The central configuration for Console-managed projects.

Resource

A model definition or data file referenced in LoaderConfiguration. Resources have URLs, types, and tags.

{
  "url": "${baseUrl}/data/products.json",
  "type": "data",
  "model": "Product",
  "tags": ["product-data"]
}

Resource Tag

A label applied to resources for grouping. Applications specify which tags to load, enabling different configurations for different use cases.

Application

A named configuration in LoaderConfiguration that specifies which resource tags to load. Allows one project to serve multiple applications.

{
  "key": "storefront",
  "resourceTags": ["products", "categories"]
}

Variable

A placeholder in LoaderConfiguration URLs that gets replaced at runtime. Used for environment-specific values.

{
  "url": "${baseUrl}/data/products.json"
}

Console Platform Terms

Console

The dcupl web platform at console.dcupl.com. Provides visual editors for models and workflows, data management, and API deployment.

Workflow

An automated data transformation pipeline defined in Console. Workflows fetch data from sources, apply transformations, validate against models, and store results.

RAPI (Runtime API)

A REST API endpoint that executes SDK queries on the server. Deployed through Console for scenarios requiring server-side processing.

Workflow Runner

A serverless execution environment that runs workflows. Managed by Console in the cloud or self-hosted for enterprise deployments.

RAPI Runner

A serverless environment that hosts RAPI endpoints. Executes SDK queries in response to HTTP requests.

Architecture Terms

SDK

Software Development Kit. The open-source TypeScript packages (@dcupl/core, @dcupl/loader, etc.) that run in browser or Node.js.

In-Memory

Data stored in application memory (RAM) rather than a database. dcupl loads data into memory for fast querying.

Client-Side

Code executing in the user's browser. dcupl can run client-side for instant interactions without server requests.

Server-Side

Code executing on a server. dcupl runs server-side for SSR (initial page renders) or RAPI endpoints.

SSR (Server-Side Rendering)

Rendering HTML on the server before sending to the browser. dcupl supports SSR for SEO and initial page load performance.

Hydration

The process where client-side JavaScript takes over a server-rendered page. The dcupl SDK initializes with the same data used for SSR.

CDN (Content Delivery Network)

A distributed network for serving files. dcupl uses CDN for fast delivery of configuration and data files globally.

Data Terms

Item

A single record in a model. Items have a unique key and properties matching the model definition.

{ key: 'p1', name: 'Laptop', price: 999 }

Key

The unique identifier for an item within a model. By default, items use a key property, but this is configurable.

Value Mapping

A transformation that converts raw values to different values during loading. Useful for translating codes or normalizing data.

valueMappings: [
  { from: ['1', 'Y'], to: true },
  { from: ['0', 'N'], to: false },
];

Derived Property

A property whose value is computed from other properties using an expression.

{
  key: 'fullName',
  type: 'string',
  expression: '${firstName} ${lastName}'
}

Expression Property

A property that uses variable interpolation to combine values or perform calculations.

Query Terms

Condition

A single filter rule in a query. Conditions specify an attribute, operator, and value.

Attribute

The property name to filter on. Can include dot notation for deep queries (customer.email).

Sort

The ordering applied to query results. Specify attribute and direction (ascending or descending).

Pagination

Limiting results to a subset for display. Specify page number and items per page.

Transform

A modification applied to values before comparison. Common transforms include lowercase, trim, and removeWhitespace.

Common Abbreviations

Abbreviation Meaning
SDK Software Development Kit
API Application Programming Interface
RAPI Runtime API
SSR Server-Side Rendering
CDN Content Delivery Network
ETL Extract, Transform, Load
CSV Comma-Separated Values
JSON JavaScript Object Notation