b38405cb88
* Add createdAt filter to realtime subscribing with tags * Filter realtime colums and expose ability to skip some columns * Add sharding support for electric * Use unkey cache for the created at filter caching * Remove 2 unused indexes on TaskRun * Run list now filters by a single runtime environment * Remove project ID indexes * Use clickhouse in task list aggregation queries instead of pg (keep pg for self-hosters) * WIP clickhouse powered runs list stuff * Improve the query to get the latest tasks for the task list presenter * Update the usage task list to use clickhouse * Implement next runs list powered by clickhouse * Add new index for TaskRun for the runs list, by environment ID * Add runTags gin index * Handle possibly malicious inputs * Ignore claude settings * Better handling not finding an environment on the schedule page * Use ms since epoch in test, not seconds * Remove unused function * Fix test * Use an env var for the realtime maximum createdAt filter duration (defaults to 1 day) * Fixed the query builder to correct the group by / order by order * Make sure runs.list still works * Create small-birds-arrive.md
22 lines
722 B
TypeScript
22 lines
722 B
TypeScript
import type { TaskTriggerSource } from "@trigger.dev/database";
|
|
import { PrismaClientOrTransaction, sqlDatabaseSchema } from "~/db.server";
|
|
|
|
/**
|
|
*
|
|
* @param prisma An efficient query to get all task identifiers for a project.
|
|
* It has indexes for fast performance.
|
|
* It does NOT care about versions, so includes all tasks ever created.
|
|
*/
|
|
export function getAllTaskIdentifiers(prisma: PrismaClientOrTransaction, environmentId: string) {
|
|
return prisma.$queryRaw<
|
|
{
|
|
slug: string;
|
|
triggerSource: TaskTriggerSource;
|
|
}[]
|
|
>`
|
|
SELECT DISTINCT(slug), "triggerSource"
|
|
FROM ${sqlDatabaseSchema}."BackgroundWorkerTask"
|
|
WHERE "runtimeEnvironmentId" = ${environmentId}
|
|
ORDER BY slug ASC;`;
|
|
}
|