Install
$ agentstack add skill-lkrdev-lookml-skills-lookml-sets ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
LookML Sets
Sets are reusable lists of fields (dimensions, measures, and filters) defined within a view or a model. They are primarily used to group fields together for various purposes such as drill-down paths, explore field visibility, and more.
Syntax
set: set_name {
fields: [field_name1, field_name2, view_name.field_name3, ...]
}
Key Features
- Reusability: Define a list of fields once and use it in multiple places.
- Composition:
- Include All:
[set_name*]includes all fields from another set. - Exclude:
[-field_name]excludes a specific field. - External Reference:
view_name.set_name*refers to a set in another view (ensure views are joined).
Use Cases
1. Drill Fields (Primary Use Case)
Sets are the standard way to define what happens when a user clicks on a measure value. Instead of listing fields repeatedly, define a set and reference it.
view: orders {
# ... dimensions ...
set: order_details {
fields: [id, created_date, status, user.email]
}
measure: count {
type: count
drill_fields: [order_details*]
}
}
2. Controlling Explore Visibility (Field Picker)
You can use sets at the Explore level to explicitly define which fields are visible to users. This is best practice for curating Explores.
explore: orders {
fields: [ALL_FIELDS*] # Start with everything (default)
# OR
fields: [orders.order_details*, users.user_info*] # Whitelist specific sets
}
3. Excluding Fields
Use sets to exclude specific fields from an Explore without hiding them at the view level (which hides them globally).
explore: orders {
fields: [ALL_FIELDS*, -users.password_hash]
}
Best Practices
1. The detail Set
Every view should ideally have a default set (commonly named detail or drill_set) that includes the most relevant fields for drilling into a record from that view.
view: users {
dimension: id { primary_key: yes ... }
dimension: name { ... }
dimension: email { ... }
# Standard set for drilling
set: detail {
fields: [id, name, email]
}
}
2. Naming Conventions
- Use
snake_casefor set names. - Use descriptive names like
user_info,financial_metrics,drill_detail.
3. Avoid Cross-View Dependencies in View Sets
While you can reference other_view.field in a view's set, this creates a dependency. Ensure that other_view is always joined whenever the set is used.
- Better: Define sets local to the view (only its own fields).
- Explore Level: Combine sets from different views at the Explore level (e.g.,
fields: [orders.detail*, users.detail*]).
4. Cumulative Sets
You can build sets on top of other sets.
set: basic_info {
fields: [id, name]
}
set: extended_info {
fields: [basic_info*, email, created_date]
}
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lkrdev
- Source: lkrdev/lookml_skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.