Celiq
v0.12Open app โ†—
Docs/Semantic Layer/Drill Paths

Drill Paths

Named, ordered field sequences attached to a node that guide hierarchical exploration, authored and governed in Context Studio.

WeaverLuminaryUpdated June 2026 ยท 5 min read
โœฆ
In this section
Part of Celiq's semantic layer platform. Connect your warehouse, model your data once, query it everywhere.
๐Ÿ’ก
Tip
What it is โ€” A drill path is a named, ordered list of fields you attach to a node (for example country โ†’ region โ†’ city) to guide hierarchical exploration.
When to use it โ€” When a node has a natural hierarchy and you want a consistent, governed sequence for drilling instead of leaving the order up to each person.
Where to find it โ€” Context Studio โ†’ Semantic Layer โ†’ Drill Paths.
Who can use it โ€” Weaver and Luminary can create, edit, and delete drill paths. Everyone in the workspace can read them.

Drill paths are governance metadata that you layer on top of an existing node. They do not change your CML or your data โ€” they record the intended order in which fields should be explored, so that drilling stays consistent across your workspace.

A drill path lives in Context Studio alongside your other semantic governance objects. It points at one node and stores an ordered list of field names. The order is meaningful: it is the sequence a user follows as they move from a coarse level of a hierarchy to a finer one.

Overview

Each drill path is stored as a single governance record with:

  • a name (for example "Revenue by Region โ†’ Store"),
  • an object it is attached to โ€” by default a node (object_type is node, object_id is the node's id),
  • an ordered list of fields (for example country, region, city),
  • a status, and the author who created it.

Drill paths are workspace-scoped. The list you see in Context Studio shows every active drill path in your workspace, most recently updated first, each rendered as its ordered fields joined by arrows.

Because a drill path is metadata layered over a node, it is not a CML object. You do not write it in Forge โ€” you author it in Context Studio, and it sits beside the node it describes.

When to use it

Create a drill path when:

  • A node has a clear hierarchy โ€” geography (country โ†’ region โ†’ city), org structure (division โ†’ team โ†’ person), or time-like categories โ€” and you want one canonical exploration order.
  • Different people drill the same node in different orders and you want to standardise on one.
  • You are curating a node for analysts and want to signal the intended path through its dimensions.

You do not need a drill path for a flat node with no natural hierarchy. Adding one there only adds noise.

Concepts

TermMeaning
Drill pathA named, ordered sequence of fields attached to one object, used to guide hierarchical exploration.
Object typeWhat the drill path is attached to. Defaults to node; the authoring UI only attaches to nodes.
Object idThe id of the specific node the drill path describes.
FieldsThe ordered list of field names that make up the path, from coarsest to finest level.
StatusThe lifecycle state of the record. Deleting sets status to deleted (a soft delete); active records have a non-deleted status.

Getting started

Prerequisites
  • You are a Weaver or Luminary. Reading drill paths is open to everyone, but creating, editing, and deleting requires Weaver and above.
  • The node you want to describe already exists, so you can select it and reference its field names.
How to open it

Go to Context Studio, open the Semantic Layer group in the left navigation, and select Drill Paths.

Step-by-step

1

Open Drill Paths

In Context Studio, open the Semantic Layer navigation group and click Drill Paths. You will see the list of existing drill paths in your workspace, or an empty state if none have been created yet.

2

Start a new path

Click + Add drill path. An inline form appears.

3

Name the path

In the Path name field, give the drill path a descriptive name, for example Revenue by Region โ†’ Store. The name is required.

4

Pick the node

From the Select nodeโ€ฆ dropdown, choose the node this path applies to. The dropdown lists the nodes in your workspace. Object type is fixed to node here.

5

Enter the fields in order

In the Fields field, type the field names as a comma-separated list, in the order you want users to drill, for example country, region, city. Each entry is trimmed, and blank entries are dropped, so spacing around commas does not matter.

6

Save

Click Save. The new drill path appears at the top of the list, showing its name and its fields joined by arrows. To stop without saving, click Cancel.

7

Delete when no longer needed

To remove a drill path, click the trash icon on its row and confirm. This is a soft delete โ€” the record's status is set to deleted and it drops out of the list.

Examples

A worked example for a sales node with a geographic hierarchy:

  • Path name: Sales by Geography
  • Node: orders
  • Fields: country, region, city

When saved, the drill path is stored with the fields kept in that exact order, so the path reads country โ†’ region โ†’ city.

json
{
  "name": "Sales by Geography",
  "object_type": "node",
  "object_id": "orders",
  "fields": ["country", "region", "city"]
}

The order of the fields array is the order of the path. Reordering means editing the path so the fields are listed in the new sequence.

๐Ÿ“
Note

The field names you list should match dimension fields on the chosen node. Forge also exposes the drillable dimensions for a domain (every non-numeric attribute across the domain's nodes), which is a useful reference when deciding which fields belong in a path. Numeric and metric fields are not drill targets.

Best practices

  • Order from coarse to fine. List the broadest level first (for example country) and the most granular last (for example city), matching how people naturally drill down.
  • Use field names that exist on the node. A path is only useful if its fields map to real dimensions on the node it is attached to.
  • Name paths for what they explore, not for internal ids โ€” Revenue by Region โ†’ Store is clearer than path_3.
  • Keep one canonical path per hierarchy. If you find several near-duplicate paths on the same node, consolidate them so there is a single intended order.
  • Delete paths that no longer reflect the node. If you rename or drop the underlying fields, update or remove the path so it does not point at fields that are gone.

Tips

๐Ÿ’ก
Tip

Spacing in the Fields box does not matter โ€” each comma-separated entry is trimmed and empty entries are ignored, so country,region,city and country, region, city produce the same path.

Common mistakes

โš ๏ธ
Warning
  • Leaving the name or node blank. Both a name and a selected node are required; without them the path will not save.
  • Listing fields out of order. The order you type is the order of the path. Put the coarsest level first.
  • Pointing at fields that do not exist on the node. The path stores whatever names you type โ€” it does not invent or correct field names, so a typo or a stale field name will simply not match a real dimension.
  • Expecting a path to change your model. A drill path is governance metadata layered over a node; it does not alter your CML, your data, or the node itself.

Troubleshooting

SymptomCauseFix
Save does nothingThe name is empty or no node is selectedEnter a path name and pick a node from the dropdown, then save.
The node dropdown is emptyNo nodes loaded for the workspaceConfirm nodes exist in your workspace and that you have access; reopen Drill Paths to reload the list.
A path's fields show no arrowsThe path has zero or one fieldEdit the path and add the remaining fields in order โ€” arrows appear between consecutive fields.
+ Add drill path is missing or saving is blockedYou are not a Weaver or LuminaryCreating, editing, and deleting drill paths requires Weaver and above; ask a Weaver or Luminary, or have your role updated.
A deleted path still seems referenced elsewhereDelete is a soft delete (status set to deleted)The record is hidden from the list but retained; recreate the path if you removed it by mistake.