Product News

Introducing Custom Columns

Custom Columns Blog Header Image

TL;DR: Custom Columns lets you add any data you want (team ownership, costs, security scores) directly into your CloudQuery asset inventory. No more jumping between tools or exporting to spreadsheets, just one unified view of all your cloud infrastructure with all the context you need.

If you're like most engineering teams building a Cloud Asset Inventory, you've hit this wall: your cloud resources live in one place, but all the context around them (who owns what, how much things cost, what's scheduled for deletion) lives somewhere else.

Let's be real, we've all built janky workarounds:

  • Exporting to CSV and doing VLOOKUPS in spreadsheets 🤢
  • Writing custom scripts to join data across systems
  • Making everyone memorize naming conventions (that no one follows)

Custom Columns fixes this by letting you put any data you want right alongside your cloud asset inventory in CloudQuery.

Custom Columns help you surface critical information right next to your cloud assets. Instead of jumping between tools, you can now see it all in one place at a glance:

  • Which team or project does each resource belong to.
  • How individual cloud resources contribute to your overall cloud budget.
  • Security and compliance status from external scanners.
  • Custom lifecycle information, like scheduled deletion dates.
  • Any other metadata that matters to your organization.

According to cloud management best practices, tagging and metadata enrichment are essential for optimizing cloud asset visibility by implementing a robust tagging strategy for your cloud resources. Yet many organizations struggle with inconsistent tags across cloud providers. Custom Columns solves this by giving you a consistent layer for business context that works across your entire infrastructure.

Custom Columns does two simple things:

  1. Let's you define new columns in your Cloud Asset Inventory.
  2. Gives you ways to populate those columns (UI or API).

Creating a Custom Column from Tags

In the UI, here’s how you can create custom columns from your existing tags.

  1. Go to Organization Settings.
  2. Hit "Custom columns."
  3. Fill in:
    • Column Label: "Team" (what you see in the UI)
    • Column Name: "team" (backend name)
    • Description: Purpose of this column (optional)
    • Enrichment Type: From existing type
    • Value Expression: ``` tags['team']` ``

Now you have a new custom "Team" column that surfaces the name of the team associated with the cloud resource. This custom column doesn't just display information, it also becomes a filter in your asset inventory. You can filter by team name to find all resources owned by a specific team.

Additionally, custom columns are fully queryable via SQL in the console, allowing you to create reports or dashboards that incorporate your custom data alongside native cloud resource information. This dramatically simplifies both everyday browsing and advanced analysis of your cloud assets.

The Real Power: Custom Columns API

The UI is nice, but the real power comes from automating column updates through the API. Let's walk through adding cost data from your FinOps tool.

First, create the column:

import requests

headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}

# Create the cost column
column = {
"table_name": "aws_ec2_instances",
"column_name": "monthly_cost",
"label": "Monthly Cost",
"description": "Cost data from FinOps tool",
"column_type": "Float",
"value_type": "external", # We'll populate it from external source
"value_expr": "0.0" # Default value
}

requests.post(
"https://api.cloudquery.io/teams/cloudquery/custom-columns",
headers=headers,
json=column
)

Now, here's a script that could run daily to sync cost data:

import requests
import pandas as pd

# Grab cost data from your FinOps tool
# (This is just an example, replace with your actual data source)
costs_df = pd.read_csv('ec2_costs.csv')
costs = {row['instance_id']: row['cost'] for _, row in costs_df.iterrows()}

# Update each instance with its cost
instances = requests.get(
"https://api.cloudquery.io/teams/cloudquery/resources?table=aws_ec2_instances",
headers=headers
).json()

for instance in instances:
if instance['instance_id'] in costs:
# Update just the cost column
requests.patch(
f"https://api.cloudquery.io/teams/cloudquery/resources/{instance['id']}/custom-columns",
headers=headers,
json={"monthly_cost": costs[instance['instance_id']]}
)

Run this as a cron job, and boom - you've got cost data right next to all of your cloud asset data in CloudQuery.

What People Are Doing With This

Some cool things we've seen early users build:

  • A script that pulls Datadog monitor data into CloudQuery to show which instances keep having alerts.
  • A column that converts inconsistent environment tags (prod, production, PROD) into a normalized environment field.
  • A custom security score calculated from internal vulnerability scanners.
  • A "scheduled deletion" column for instances flagged for cleanup.

Try It Out

Custom Columns are ready to use now. Check out our documentation and our API docs for the full reference on integrating CloudQuery custom columns into your Cloud Asset Inventory.

Got questions or cool use cases? Hit us up in the community forum, we'd love to see what you build with this.

About CloudQuery

CloudQuery is a developer-first cloud governance platform designed to provide security, compliance, and FinOps teams complete visibility into their cloud assets. By leveraging SQL-driven flexibility, CloudQuery enables you to easily query, automate, and optimize your cloud infrastructure's security posture, compliance requirements, and operational costs at scale. The central configuration store pattern we've described is just one example of how we've engineered our platform to handle enterprise-scale data volumes.

Ready to see how CloudQuery can transform your cloud visibility? Our team can walk you through a tailored demo based on your cloud environment and use cases. Let's talk about how CloudQuery can fit into your stack. Schedule a demo today.

For more information on how CloudQuery can help with your specific use case, check out our documentation or join our community.

Try CloudQuery yourself

Self-hosted, open source, and free to start. Or schedule a demo to see the managed version.

Related posts

AWS

Cloud Asset Inventory

Product News

AWS Relations Transformer: Every Dependency in One Table

The AWS Relations transformer writes every reference between your synced AWS resources to one SQL table. Try the v1.0.0 preview and tell us what you build.

CloudQuery Team

CloudQuery Team

September 27, 2026

AI

Cloud Asset Inventory

Product News

CloudQuery Platform Adds Business Context and Scheduled Exports to Cloud Inventory

CloudQuery Platform now groups cloud resources into apps and environments, and lets you schedule automated data exports to your data warehouse on a cron.

Zeen Rachidi

Zeen Rachidi

August 31, 2026

AI

Product News

What's new in the CloudQuery Platform AI Assistant

The CloudQuery Platform AI Assistant just got a major upgrade enabling you to build reports from chat, revisit past conversations, manage policies conversationally, and more.

Zeen Rachidi

Zeen Rachidi

July 16, 2026

AI

Product News

Try CloudQuery Platform Today: Self-Service Signup Is Here

CloudQuery's Platform now offers self-service signup

Zeen Rachidi

Zeen Rachidi

June 18, 2026

AI

Product News

Introducing the CloudQuery Platform AI Assistant

CloudQuery's new AI Assistant lets you ask questions about your cloud infrastructure in plain English - no SQL required.

Joe Karlsson

Joe Karlsson

May 18, 2026

Cloud Asset Inventory

Product News

A Field Guide to Finding Zombie Infrastructure in AWS

Three playbooks for identifying zombie cloud resources - abandoned databases, forgotten prototypes, and unowned compute - using AWS CLI, SQL, and Insights.

Joe Karlsson

Joe Karlsson

April 2, 2026

Product News

Security

Investigating Toxic IAM and Access Combinations in AWS

Three investigation playbooks for finding toxic signal combinations in AWS - stale credentials, open SSH, and unowned compute - with SQL and Insights.

Joe Karlsson

Joe Karlsson

April 2, 2026

Product News

Security

How to Find GitHub Repos Vulnerable to Supply Chain Attacks Like CanisterWorm

Find which of your GitHub repos are vulnerable to fork PR supply chain attacks like CanisterWorm, and how to fix the settings before they're exploited.

Ştefan Muraru

Ştefan Muraru

March 25, 2026

Product News

Introducing the Markmonitor Integration for CloudQuery

CloudQuery's new Markmonitor integration syncs your enterprise domain portfolio into your data warehouse for domain expiration tracking and DNSSEC analysis.

Joe Karlsson

Joe Karlsson

March 12, 2026

Own your pipeline.
Own your data.