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 |
Related Documentation
- What is dcupl? - Overview and introduction
- Architecture - System components
- Data Flow - How data moves through dcupl
- Core Concepts - SDK fundamentals