CloudQuery News

Introducing the new Tempo.io source plugin

Tempo.io offers a variety of solutions to aid in business processes planning and management.

Why Tempo.io + CloudQuery?

The Tempo.io source plugin
allows you to perform advanced data filtering and grouping without relying on restrictive UI filters.
Furthermore, when used in conjunction with other source plugins
(e.g., Jira or BitBucket source plugin)
it allows for cross-referencing the data to gain more insights into the processes and possible blind spots.

With the latest release, the CloudQuery Tempo.io source plugin supports fetching the following resources:

Use cases

Let's take a look at a couple of examples to help you get started with the Tempo.io source integration.

In all of these examples we assume the data was synced from Tempo.io source to a PostgreSQL destination integration.

People that are committed to program implementation at the moment

Sometimes you want to know how many people are committed to implementing a program.
You can do this by the following query:

select programs.id, programs.name, coalesce(sum(memberships.commitment_percent), 0) / 100 as committed_people
from
(select id, name, (jsonb_array_elements(teams -> 'values') -> 'id') ::bigint as team_id from tempo_programs) programs
left join
(select commitment_percent::bigint, team_id from tempo_team_memberships
where (tempo_team_memberships.from is null or tempo_team_memberships.from <= current_date)
and (tempo_team_memberships.inclusive_to is null or tempo_team_memberships.inclusive_to >= current_date)
) memberships
on programs.team_id = memberships.team_id
group by programs.id, programs.name
order by committed_people desc;

Tasks that required more time than is billable

Sometimes the task at hand requires a lot of time, and the billable time may diverge from the time spent.
The following query helps to identify what issues have mismatched logged billable time and time spent.

select issue ->> 'id'          as issue_id,
sum(billable_seconds) as billable_seconds,
sum(time_spent_seconds) as time_spent_seconds
from tempo_worklogs
where billable_seconds != time_spent_seconds
group by issue_id
order by time_spent_seconds desc, billable_seconds desc;

Getting Started

To get started syncing Tempo.io data, see the Tempo.io source plugin documentation for instructions.

Incremental data

To prevent repeated syncing of the same data CloudQuery supports incremental tables.
We designed tempo_plans and tempo_worklogs tables to be incremental, so that only the updated and new entries are fetched.

To take advantage of this feature be sure to add the backend_options field to your sync spec.

For example, to sync from Tempo.io to PostgreSQL you could use the following configuration (remember to update the versions and add your own credentials):

kind: source
spec:
name: tempo-io
path: cloudquery/tempo-io
registry: cloudquery
version: 'v1.x.x'
tables:
- '*'
destinations: ['postgresql']
backend_options:
table_name: 'cq_state_tempo_io'
connection: '@@plugins.postgresql.connection'
spec:
api_key: '${TEMPO_IO_API_KEY}'
---
kind: destination
spec:
name: postgresql
path: cloudquery/postgresql
registry: cloudquery
version: 'v8.x.x'
spec:
connection_string: '${POSTGRES_DSN}'

Want to see CloudQuery in action? Schedule a demo with our team or check out the platform documentation to learn more.

Got feedback or suggestions? Join the CloudQuery community to connect with other users and experts, or message our team directly here if you have any questions.

Try CloudQuery yourself

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

Related posts

CloudQuery News

Introducing CloudQuery Insights: Cloud Intelligence That Connects the Dots

CloudQuery Insights automatically surfaces connected signals across your cloud inventory: security findings, cost data, policy violations, and audit trails.

Joe Karlsson

Joe Karlsson

April 21, 2026

Cloud Infrastructure

CloudQuery News

Introducing the Nautobot Source Integration

Sync Nautobot DCIM inventory data to PostgreSQL, BigQuery, or Snowflake and query it with SQL alongside your cloud provider data.

Joe Karlsson

Joe Karlsson

March 19, 2026

CloudQuery News

CloudQuery Is Merging with Env Zero

A letter from CloudQuery CEO Yevgeny Pats on the merger with env zero and what it means for customers.

Yevgeny Pats

Yevgeny Pats

March 17, 2026

CloudQuery News

Security

Introducing the Zoom Source Integration

New CloudQuery Zoom source plugin: sync Zoom meeting, user, and webinar data into your database for compliance, analytics, and user access governance reporting.

Joe Karlsson

Joe Karlsson

February 2, 2026

CloudQuery News

Product News

New in CloudQuery: Tines + Semgrep integration, and native visualizations,

CloudQuery October 2025 updates: Tines and Semgrep integration for security orchestration, plus native visualization support in the CloudQuery Platform.

Chris Reuter

Chris Reuter

October 31, 2025

CloudQuery News

Product News

Security

Introducing Data Access Control for CloudQuery Platform

CloudQuery Platform RBAC: Control cloud asset access with SQL-based permissions. Map Azure AD/Okta groups to roles. Available now on all environments.

Joe Karlsson

Joe Karlsson

October 28, 2025

AI

CloudQuery News

Understand your cloud infra faster using natural language

CloudQuery unifies AWS, GCP, Azure, and SaaS configs into SQL tables. The new AI assistant lets you query your cloud inventory using natural language.

Chris Reuter

Chris Reuter

September 29, 2025

CloudQuery News

Find the Cloud Waste Contest

Win CloudQuery swag by finding cloud waste in our dataset. Sync AWS data with CloudQuery, solve 3 SQL challenges, get t-shirts, sweatshirts, and mugs.

Joe Karlsson

Joe Karlsson

September 25, 2025

AI

CloudQuery News

Generate CloudQuery Configuration with Natural Language

Generate CloudQuery config files from natural language prompts. Use AI to quickly create source and destination plugin configs without manual YAML editing.

Chris Reuter

Chris Reuter

September 23, 2025

Own your pipeline.
Own your data.