diff --git a/packages/backend/src/services/dependency-scan/DependencyScanStore.test.ts b/packages/backend/src/services/dependency-scan/DependencyScanStore.test.ts
new file mode 100644
index 0000000000..76b8f4ebba
--- /dev/null
+++ b/packages/backend/src/services/dependency-scan/DependencyScanStore.test.ts
@@ -0,0 +1,552 @@
+import { afterEach, assert, describe, it } from "@effect/vitest"
+import type { DependencyScanLockfile, DependencyScanTrigger } from "@maple/domain/dependency-scan"
+import { GitCommitSha, VcsRepositoryId } from "@maple/domain/http/vcs"
+import { OrgId, UserId } from "@maple/domain/primitives"
+import { Effect, Layer, Option, Schema } from "effect"
+import { TestClock } from "effect/testing"
+import { cleanupTestDbs, createTestDb, type TestDb } from "@maple/backend/platform/test-pglite"
+import {
+ DependencyScanStore,
+ type DependencyScanMatchInput,
+ type DependencyScanStoreApi,
+} from "./DependencyScanStore"
+
+const trackedDbs: TestDb[] = []
+afterEach(() => cleanupTestDbs(trackedDbs))
+
+const orgA = Schema.decodeSync(OrgId)("org_a")
+const orgB = Schema.decodeSync(OrgId)("org_b")
+const user = Schema.decodeSync(UserId)("user_a")
+const repo = Schema.decodeSync(VcsRepositoryId)("7f0c1a52-4d8e-4b6a-9b1e-2a3c4d5e6f70")
+const sha = (digit: string) => Schema.decodeSync(GitCommitSha)(digit.repeat(40))
+
+const withStore = (body: (store: DependencyScanStoreApi) => Effect.Effect) =>
+ Effect.gen(function* () {
+ const store = yield* DependencyScanStore
+ return yield* body(store)
+ }).pipe(Effect.provide(DependencyScanStore.layer.pipe(Layer.provide(createTestDb(trackedDbs).layer))))
+
+const lockfile = (
+ path: string,
+ status: DependencyScanLockfile["status"] = "parsed",
+): DependencyScanLockfile => ({
+ path,
+ kind: "bun-lock",
+ blobSha: `blob-${path}`,
+ packageCount: 10,
+ status,
+ message: status === "parsed" ? null : "could not read it",
+})
+
+const match = (
+ packageName: string,
+ overrides: Partial = {},
+): DependencyScanMatchInput => ({
+ lockfilePath: "bun.lock",
+ ecosystem: "npm",
+ packageName,
+ version: "1.0.0",
+ relation: "transitive",
+ advisoryId: `GHSA-${packageName}`,
+ aliases: [`CVE-${packageName}`],
+ severity: "high",
+ summary: `${packageName} is vulnerable`,
+ fixedIn: "1.0.1",
+ ...overrides,
+})
+
+/** Starts and completes one scan at `commit`; returns the settled scan row. */
+const scan = (
+ store: DependencyScanStoreApi,
+ commit: string,
+ matches: ReadonlyArray,
+ options: {
+ readonly orgId?: OrgId
+ readonly lockfiles?: ReadonlyArray
+ readonly trigger?: DependencyScanTrigger
+ } = {},
+) =>
+ Effect.gen(function* () {
+ const orgId = options.orgId ?? orgA
+ const trigger = options.trigger ?? "push"
+ const started = yield* store.startScan({
+ orgId,
+ repositoryId: repo,
+ commitSha: sha(commit),
+ ref: trigger === "production" ? null : "main",
+ trigger,
+ defaultBranchHead: trigger !== "production",
+ })
+ return yield* store.completeScan({
+ orgId,
+ scanId: started.id,
+ lockfiles: options.lockfiles ?? [lockfile("bun.lock")],
+ packageCount: 10,
+ matches,
+ })
+ })
+
+const findings = (store: DependencyScanStoreApi, orgId: OrgId = orgA) =>
+ store.listFindings({ orgId, repositoryId: repo, limit: 100 })
+
+describe("DependencyScanStore bulk reads", () => {
+ it.effect("reads each repository's newest head scan, scans at commits and their matches", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const first = yield* scan(store, "a", [match("lodash")])
+ yield* TestClock.adjust("1 second")
+ const second = yield* scan(store, "b", [match("minimist")])
+ yield* TestClock.adjust("1 second")
+ yield* scan(store, "c", [match("axios")], { trigger: "production" })
+ assert.deepStrictEqual(
+ (yield* store.latestBranchScans({ orgId: orgA })).map((row) => row.id),
+ [second.id],
+ )
+ assert.deepStrictEqual(
+ (yield* store.scansAtCommits({
+ orgId: orgA,
+ repositoryIds: [repo],
+ commitShas: [sha("a"), sha("c")],
+ }))
+ .map((row) => row.commitSha)
+ .sort(),
+ [sha("a"), sha("c")],
+ )
+ assert.deepStrictEqual(
+ (yield* store.matchesOfScans({ orgId: orgA, scanIds: [first.id, second.id] }))
+ .map((row) => row.packageName)
+ .sort(),
+ ["lodash", "minimist"],
+ )
+ assert.deepStrictEqual(yield* store.matchesOfScans({ orgId: orgA, scanIds: [] }), [])
+ assert.deepStrictEqual(
+ yield* store.scansAtCommits({ orgId: orgA, repositoryIds: [], commitShas: [] }),
+ [],
+ )
+ assert.deepStrictEqual(yield* store.latestBranchScans({ orgId: orgB }), [])
+ assert.strictEqual(
+ (yield* store.listFindings({ orgId: orgA, repositoryIds: [repo], limit: 10 })).length,
+ 2,
+ )
+ assert.deepStrictEqual(
+ yield* store.listFindings({ orgId: orgA, repositoryIds: [], limit: 10 }),
+ [],
+ )
+ }),
+ ),
+ )
+})
+
+describe("DependencyScanStore findings lifecycle", () => {
+ it.effect("keeps a finding's id and triage when OSV later links its advisory to a new record", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [
+ match("x/net", { ecosystem: "Go", advisoryId: "GO-2026-1", aliases: ["CVE-2026-1"] }),
+ ])
+ const [first] = yield* findings(store)
+ if (first === undefined) return yield* Effect.die("no finding")
+ yield* store.setFindingStatus({
+ orgId: orgA,
+ id: first.id,
+ status: "dismissed",
+ reason: "not reachable",
+ actor: user,
+ })
+ // The GHSA now leads the group and names the GO record as an alias.
+ yield* scan(store, "b", [
+ match("x/net", {
+ ecosystem: "Go",
+ advisoryId: "GHSA-aaaa",
+ aliases: ["CVE-2026-1", "GO-2026-1"],
+ }),
+ ])
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [row.id, row.advisoryId, row.status]),
+ [[first.id, "GO-2026-1", "dismissed"]],
+ )
+ assert.include(rows[0]?.aliases ?? [], "GHSA-aaaa")
+ }),
+ ),
+ )
+
+ it.effect("stores an incomplete scan's matches but reconciles nothing from it", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [match("lodash")])
+ const started = yield* store.startScan({
+ orgId: orgA,
+ repositoryId: repo,
+ commitSha: sha("b"),
+ ref: "main",
+ trigger: "schedule",
+ defaultBranchHead: true,
+ })
+ const settled = yield* store.completeScan({
+ orgId: orgA,
+ scanId: started.id,
+ lockfiles: [lockfile("bun.lock")],
+ packageCount: 10,
+ matches: [match("minimist")],
+ incomplete: "12 known vulnerabilities were left out",
+ })
+ assert.strictEqual(settled.error, "12 known vulnerabilities were left out")
+ assert.strictEqual((yield* store.scanMatches({ orgId: orgA, scanId: started.id })).length, 1)
+ assert.deepStrictEqual(
+ (yield* findings(store)).map((row) => [row.packageName, row.status]),
+ [["lodash", "open"]],
+ )
+ }),
+ ),
+ )
+
+ it.effect("keeps a match on the finding with its exact id when another finding shares an alias", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [
+ match("x/net", { ecosystem: "Go", advisoryId: "GO-2026-1", aliases: ["CVE-2026-1"] }),
+ match("x/net", { ecosystem: "Go", advisoryId: "GHSA-bbbb", aliases: ["CVE-2026-1"] }),
+ ])
+ const second = yield* scan(store, "b", [
+ match("x/net", { ecosystem: "Go", advisoryId: "GO-2026-1", aliases: ["CVE-2026-1"] }),
+ match("x/net", { ecosystem: "Go", advisoryId: "GHSA-bbbb", aliases: ["CVE-2026-1"] }),
+ ])
+ // Each match keeps its own id: renaming one onto the other would collapse them into one row.
+ assert.deepStrictEqual(
+ (yield* store.scanMatches({ orgId: orgA, scanId: second.id }))
+ .map((row) => row.advisoryId)
+ .sort(),
+ ["GHSA-bbbb", "GO-2026-1"],
+ )
+ assert.deepStrictEqual(
+ (yield* findings(store)).map((row) => [row.advisoryId, row.status]).sort(),
+ [
+ ["GHSA-bbbb", "open"],
+ ["GO-2026-1", "open"],
+ ],
+ )
+ }),
+ ),
+ )
+
+ it.effect("keeps a finding open when OSV now lists its advisory only as another's alias", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [
+ match("x/net", { ecosystem: "Go", advisoryId: "GO-2026-1", aliases: [] }),
+ match("x/net", { ecosystem: "Go", advisoryId: "GHSA-cccc", aliases: [] }),
+ ])
+ yield* scan(store, "b", [
+ match("x/net", { ecosystem: "Go", advisoryId: "GHSA-cccc", aliases: ["GO-2026-1"] }),
+ ])
+ assert.deepStrictEqual(
+ (yield* findings(store)).map((row) => [row.advisoryId, row.status]).sort(),
+ [
+ ["GHSA-cccc", "open"],
+ ["GO-2026-1", "open"],
+ ],
+ )
+ }),
+ ),
+ )
+
+ it.effect("never lets an older scan that settles late undo a newer scan's fixes", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [match("lodash")])
+ yield* TestClock.adjust("1 second")
+ const older = yield* store.startScan({
+ orgId: orgA,
+ repositoryId: repo,
+ commitSha: sha("b"),
+ ref: "main",
+ trigger: "schedule",
+ defaultBranchHead: true,
+ })
+ yield* TestClock.adjust("1 second")
+ // The newer head drops lodash and settles first.
+ yield* scan(store, "c", [])
+ yield* store.completeScan({
+ orgId: orgA,
+ scanId: older.id,
+ lockfiles: [lockfile("bun.lock")],
+ packageCount: 10,
+ matches: [match("lodash")],
+ })
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [row.packageName, row.status, row.fixedSha]),
+ [["lodash", "fixed", sha("c")]],
+ )
+ }),
+ ),
+ )
+
+ it.effect("opens a finding per advisory, merging the versions one lockfile pins", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const settled = yield* scan(store, "a", [
+ match("lodash", { version: "4.17.20", severity: "medium", relation: "transitive" }),
+ match("lodash", { version: "4.17.11", severity: "critical", relation: "direct" }),
+ match("minimist"),
+ ])
+ assert.strictEqual(settled.status, "completed")
+ assert.strictEqual(settled.vulnerableCount, 3)
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [
+ row.packageName,
+ row.status,
+ row.severity,
+ row.relation,
+ row.versions,
+ ]),
+ [
+ ["lodash", "open", "critical", "direct", ["4.17.11", "4.17.20"]],
+ ["minimist", "open", "high", "transitive", ["1.0.0"]],
+ ],
+ )
+ assert.strictEqual(rows[0]?.firstSeenSha, sha("a"))
+ }),
+ ),
+ )
+
+ it.effect("fixes a finding a later scan no longer matches, and reopens it when it comes back", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const first = yield* scan(store, "a", [match("lodash")])
+ const second = yield* scan(store, "b", [])
+ const [fixed] = yield* findings(store)
+ assert.strictEqual(fixed?.status, "fixed")
+ assert.strictEqual(fixed?.fixedScanId, second.id)
+ assert.strictEqual(fixed?.fixedSha, sha("b"))
+
+ const third = yield* scan(store, "c", [match("lodash")])
+ const [reopened] = yield* findings(store)
+ assert.strictEqual(reopened?.status, "open")
+ assert.strictEqual(reopened?.fixedScanId, null)
+ assert.strictEqual(reopened?.fixedSha, null)
+ assert.strictEqual(reopened?.firstSeenScanId, first.id)
+ assert.strictEqual(reopened?.firstSeenSha, sha("a"))
+ assert.strictEqual(reopened?.lastSeenScanId, third.id)
+ assert.strictEqual(reopened?.id, fixed?.id)
+ }),
+ ),
+ )
+
+ it.effect("keeps a dismissed finding dismissed across scans that find or miss it", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [match("lodash")])
+ const [open] = yield* findings(store)
+ assert.isDefined(open)
+ if (open === undefined) return
+ yield* store.setFindingStatus({
+ orgId: orgA,
+ id: open.id,
+ status: "dismissed",
+ reason: "not reachable",
+ actor: user,
+ })
+ const later = yield* scan(store, "b", [match("lodash", { severity: "critical" })])
+ const [found] = yield* findings(store)
+ assert.strictEqual(found?.status, "dismissed")
+ assert.strictEqual(found?.severity, "critical")
+ assert.strictEqual(found?.lastSeenScanId, later.id)
+ assert.strictEqual(found?.statusChangedBy, user)
+
+ yield* scan(store, "c", [])
+ const [missed] = yield* findings(store)
+ assert.strictEqual(missed?.status, "dismissed")
+ assert.strictEqual(missed?.fixedScanId, null)
+ }),
+ ),
+ )
+
+ it.effect("leaves a lockfile's findings open when the lockfile could not be read", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const both = [lockfile("bun.lock"), lockfile("api/go.sum")]
+ yield* scan(
+ store,
+ "a",
+ [
+ match("lodash"),
+ match("x/net", { lockfilePath: "api/go.sum", ecosystem: "Go", severity: "low" }),
+ ],
+ {
+ lockfiles: both,
+ },
+ )
+ yield* scan(store, "b", [], {
+ lockfiles: [lockfile("bun.lock", "failed"), lockfile("api/go.sum", "too_large")],
+ })
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [row.packageName, row.status]),
+ [
+ ["lodash", "open"],
+ ["x/net", "open"],
+ ],
+ )
+ }),
+ ),
+ )
+
+ it.effect("fixes the findings of a lockfile the repository no longer has", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(
+ store,
+ "a",
+ [
+ match("lodash"),
+ match("serde", {
+ lockfilePath: "Cargo.lock",
+ ecosystem: "crates.io",
+ severity: "low",
+ }),
+ ],
+ {
+ lockfiles: [lockfile("bun.lock"), lockfile("Cargo.lock")],
+ },
+ )
+ const removal = yield* scan(store, "b", [match("lodash")], {
+ lockfiles: [lockfile("bun.lock")],
+ })
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [row.packageName, row.status, row.fixedSha]),
+ [
+ ["lodash", "open", null],
+ ["serde", "fixed", removal.commitSha],
+ ],
+ )
+ }),
+ ),
+ )
+
+ it.effect("stores a production scan's matches without touching the findings", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ yield* scan(store, "a", [match("lodash")])
+ const production = yield* scan(store, "b", [match("minimist", { version: "0.0.8" })], {
+ trigger: "production",
+ })
+ const rows = yield* findings(store)
+ assert.deepStrictEqual(
+ rows.map((row) => [row.packageName, row.status]),
+ [["lodash", "open"]],
+ )
+ const matches = yield* store.scanMatches({ orgId: orgA, scanId: production.id })
+ assert.deepStrictEqual(
+ matches.map((row) => [row.packageName, row.version, row.advisoryId]),
+ [["minimist", "0.0.8", "GHSA-minimist"]],
+ )
+ }),
+ ),
+ )
+})
+
+describe("DependencyScanStore scans", () => {
+ it.effect("refuses to settle a scan twice and records a failure", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const started = yield* store.startScan({
+ orgId: orgA,
+ repositoryId: repo,
+ commitSha: sha("a"),
+ ref: "main",
+ trigger: "manual",
+ defaultBranchHead: true,
+ })
+ const failed = yield* store.failScan({
+ orgId: orgA,
+ scanId: started.id,
+ error: "clone failed",
+ })
+ assert.strictEqual(failed.status, "failed")
+ assert.strictEqual(failed.error, "clone failed")
+ const again = yield* store
+ .completeScan({
+ orgId: orgA,
+ scanId: started.id,
+ lockfiles: [],
+ packageCount: 0,
+ matches: [],
+ })
+ .pipe(Effect.flip)
+ assert.strictEqual(again._tag, "@maple/dependency-scan/DependencyScanNotRunningError")
+ }),
+ ),
+ )
+
+ it.effect("reads the latest completed scan, optionally at one commit", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const first = yield* scan(store, "a", [])
+ yield* TestClock.adjust("1 minute")
+ const second = yield* scan(store, "b", [])
+ yield* TestClock.adjust("1 minute")
+ yield* store.startScan({
+ orgId: orgA,
+ repositoryId: repo,
+ commitSha: sha("c"),
+ ref: "main",
+ trigger: "push",
+ defaultBranchHead: true,
+ })
+ const latest = yield* store.latestScan({ orgId: orgA, repositoryId: repo })
+ assert.strictEqual(Option.getOrUndefined(latest)?.id, second.id)
+ const atA = yield* store.latestScan({ orgId: orgA, repositoryId: repo, commitSha: sha("a") })
+ assert.strictEqual(Option.getOrUndefined(atA)?.id, first.id)
+ assert.deepStrictEqual(Option.getOrUndefined(atA)?.lockfiles, [lockfile("bun.lock")])
+ const scans = yield* store.listScans({ orgId: orgA, repositoryId: repo, limit: 10 })
+ assert.deepStrictEqual(
+ scans.map((row) => [row.commitSha, row.status]),
+ [
+ [sha("c"), "running"],
+ [sha("b"), "completed"],
+ [sha("a"), "completed"],
+ ],
+ )
+ }),
+ ),
+ )
+
+ it.effect("keeps one org's scans and findings out of another's reach", () =>
+ withStore((store) =>
+ Effect.gen(function* () {
+ const settled = yield* scan(store, "a", [match("lodash")])
+ const [finding] = yield* findings(store)
+ assert.isDefined(finding)
+ if (finding === undefined) return
+
+ assert.deepStrictEqual(yield* findings(store, orgB), [])
+ assert.isTrue(Option.isNone(yield* store.getFinding({ orgId: orgB, id: finding.id })))
+ assert.deepStrictEqual(yield* store.listScans({ orgId: orgB, limit: 10 }), [])
+ assert.deepStrictEqual(yield* store.scanMatches({ orgId: orgB, scanId: settled.id }), [])
+ assert.isTrue(Option.isNone(yield* store.latestScan({ orgId: orgB, repositoryId: repo })))
+
+ const update = yield* store
+ .setFindingStatus({
+ orgId: orgB,
+ id: finding.id,
+ status: "dismissed",
+ reason: null,
+ actor: user,
+ })
+ .pipe(Effect.flip)
+ assert.strictEqual(update._tag, "@maple/dependency-scan/DependencyFindingNotFoundError")
+ const fail = yield* store
+ .failScan({ orgId: orgB, scanId: settled.id, error: "x" })
+ .pipe(Effect.flip)
+ assert.strictEqual(fail._tag, "@maple/dependency-scan/DependencyScanNotFoundError")
+
+ const stored = yield* store.getFinding({ orgId: orgA, id: finding.id })
+ assert.strictEqual(Option.getOrUndefined(stored)?.status, "open")
+ }),
+ ),
+ )
+})
diff --git a/packages/backend/src/services/dependency-scan/DependencyScanStore.ts b/packages/backend/src/services/dependency-scan/DependencyScanStore.ts
new file mode 100644
index 0000000000..d37839b943
--- /dev/null
+++ b/packages/backend/src/services/dependency-scan/DependencyScanStore.ts
@@ -0,0 +1,803 @@
+/**
+ * Postgres persistence for the dependency scanner: scans, the vulnerable packages each one found,
+ * and the findings a default-branch head reconciles. Every method takes the org and filters by it.
+ */
+import type { AdvisorySeverity, PackageEcosystem } from "@maple/domain/package-advisories"
+import {
+ DependencyFindingId,
+ DependencyScanId,
+ type DependencyFindingStatus,
+ type DependencyFindingTriageStatus,
+ type DependencyRelation,
+ type DependencyScanLockfile,
+ type DependencyScanTrigger,
+} from "@maple/domain/dependency-scan"
+import type { GitCommitSha, VcsRepositoryId } from "@maple/domain/http/vcs"
+import type { OrgId, UserId } from "@maple/domain/primitives"
+import {
+ DependencyFindings,
+ DependencyScanMatches,
+ DependencyScans,
+ type DependencyFindingRow,
+ type DependencyScanMatchRow,
+ type DependencyScanRow,
+} from "@maple/db/tables"
+import type { MapleDb } from "@maple/db/client"
+import * as Orm from "@maple-dev/effect-orm/database"
+import * as PG from "@maple-dev/effect-orm/postgres"
+import { Array as Arr, Clock, Context, Effect, Layer, Option, Order, Schema } from "effect"
+import { Database } from "@maple/backend/platform/DatabaseLive"
+import { makeDbExecute, makePersistenceErrorMapper } from "@maple/backend/platform/db-execute"
+
+export class DependencyScanPersistenceError extends Schema.TaggedError()(
+ "@maple/dependency-scan/DependencyScanPersistenceError",
+ { message: Schema.String, cause: Schema.optionalKey(Schema.Defect()) },
+) {}
+
+export class DependencyScanNotFoundError extends Schema.TaggedError()(
+ "@maple/dependency-scan/DependencyScanNotFoundError",
+ { message: Schema.String, scanId: DependencyScanId },
+) {}
+
+/** A scan that already completed or failed takes no further writes. */
+export class DependencyScanNotRunningError extends Schema.TaggedError()(
+ "@maple/dependency-scan/DependencyScanNotRunningError",
+ { message: Schema.String, scanId: DependencyScanId },
+) {}
+
+export class DependencyFindingNotFoundError extends Schema.TaggedError()(
+ "@maple/dependency-scan/DependencyFindingNotFoundError",
+ { message: Schema.String, findingId: DependencyFindingId },
+) {}
+
+export interface StartScanInput {
+ readonly orgId: OrgId
+ readonly repositoryId: VcsRepositoryId
+ readonly commitSha: GitCommitSha
+ /** The branch scanned; null for a bare commit. */
+ readonly ref: string | null
+ readonly trigger: DependencyScanTrigger
+ /** Whether this scan reconciles the repository's findings. */
+ readonly defaultBranchHead: boolean
+}
+
+/** One vulnerable package version one lockfile pins, matched to one advisory. */
+export interface DependencyScanMatchInput {
+ readonly lockfilePath: string
+ readonly ecosystem: PackageEcosystem
+ readonly packageName: string
+ readonly version: string
+ readonly relation: DependencyRelation
+ /** The OSV id. */
+ readonly advisoryId: string
+ readonly aliases: ReadonlyArray
+ readonly severity: AdvisorySeverity
+ readonly summary: string | null
+ readonly fixedIn: string | null
+}
+
+export interface CompleteScanInput {
+ readonly orgId: OrgId
+ readonly scanId: DependencyScanId
+ readonly lockfiles: ReadonlyArray
+ readonly packageCount: number
+ readonly matches: ReadonlyArray
+ /** Why the matches are not the whole answer; such a scan stores them but reconciles nothing. */
+ readonly incomplete?: string | undefined
+}
+
+export interface SetFindingStatusInput {
+ readonly orgId: OrgId
+ readonly id: DependencyFindingId
+ readonly status: DependencyFindingTriageStatus
+ readonly reason: string | null
+ readonly actor: UserId
+}
+
+export interface DependencyScanStoreApi {
+ readonly startScan: (
+ input: StartScanInput,
+ ) => Effect.Effect
+ /** Stores the matches and settles the scan in one transaction; a default-branch head reconciles findings. */
+ readonly completeScan: (
+ input: CompleteScanInput,
+ ) => Effect.Effect<
+ DependencyScanRow,
+ DependencyScanPersistenceError | DependencyScanNotFoundError | DependencyScanNotRunningError
+ >
+ readonly failScan: (input: {
+ readonly orgId: OrgId
+ readonly scanId: DependencyScanId
+ readonly error: string
+ }) => Effect.Effect<
+ DependencyScanRow,
+ DependencyScanPersistenceError | DependencyScanNotFoundError | DependencyScanNotRunningError
+ >
+ /** Most severe first, then most recently updated. */
+ readonly listFindings: (input: {
+ readonly orgId: OrgId
+ readonly repositoryId?: VcsRepositoryId
+ /** Only these repositories, so the limit is spent on them; an empty list reads nothing. */
+ readonly repositoryIds?: ReadonlyArray
+ readonly status?: DependencyFindingStatus
+ readonly limit: number
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ readonly getFinding: (input: {
+ readonly orgId: OrgId
+ readonly id: DependencyFindingId
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ readonly setFindingStatus: (
+ input: SetFindingStatusInput,
+ ) => Effect.Effect
+ /** Newest first. */
+ readonly listScans: (input: {
+ readonly orgId: OrgId
+ readonly repositoryId?: VcsRepositoryId
+ readonly limit: number
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ /** The repository's latest completed scan, optionally at one commit: its lockfile blobs say what changed. */
+ readonly latestScan: (input: {
+ readonly orgId: OrgId
+ readonly repositoryId: VcsRepositoryId
+ readonly commitSha?: GitCommitSha
+ /** Only scans of the tracked branch head (true) or only scans of other commits (false). */
+ readonly defaultBranchHead?: boolean
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ /** Each repository's newest scan of its tracked branch head, any status. */
+ readonly latestBranchScans: (input: {
+ readonly orgId: OrgId
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ readonly scanMatches: (input: {
+ readonly orgId: OrgId
+ readonly scanId: DependencyScanId
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ /** Every scan of these repositories at these commits, any status, newest first. */
+ readonly scansAtCommits: (input: {
+ readonly orgId: OrgId
+ readonly repositoryIds: ReadonlyArray
+ readonly commitShas: ReadonlyArray
+ }) => Effect.Effect, DependencyScanPersistenceError>
+ /** The matches of several scans in one read. */
+ readonly matchesOfScans: (input: {
+ readonly orgId: OrgId
+ readonly scanIds: ReadonlyArray
+ }) => Effect.Effect, DependencyScanPersistenceError>
+}
+
+const toPersistenceError = makePersistenceErrorMapper(
+ DependencyScanPersistenceError,
+ "Dependency scan store operation failed",
+)
+
+const newScanId = () => Schema.decodeSync(DependencyScanId)(crypto.randomUUID())
+
+/** Rows per statement: ~20 binds each keeps one insert far under Postgres's 65,535. */
+const WRITE_CHUNK = 1000
+
+const SEVERITY_RANK = {
+ critical: 0,
+ high: 1,
+ medium: 2,
+ low: 3,
+ unknown: 4,
+} satisfies Record
+
+const RELATION_RANK = {
+ direct: 0,
+ dev: 1,
+ transitive: 2,
+ unknown: 3,
+} satisfies Record
+
+/** SHA-256 of `text` as lowercase hex, through Web Crypto so it runs in Workers and Node. */
+const sha256Hex = (text: string) =>
+ Effect.promise(() => crypto.subtle.digest("SHA-256", new TextEncoder().encode(text))).pipe(
+ Effect.map((digest) =>
+ Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join(""),
+ ),
+ )
+
+/** The finding's id from its key, so a replayed or concurrent scan lands on the same row. */
+const findingId = (orgId: OrgId, repositoryId: VcsRepositoryId, match: DependencyScanMatchInput) =>
+ sha256Hex(
+ JSON.stringify([
+ orgId,
+ repositoryId,
+ match.lockfilePath,
+ match.ecosystem,
+ match.packageName,
+ match.advisoryId,
+ ]),
+ ).pipe(Effect.map((hex) => Schema.decodeSync(DependencyFindingId)(hex.slice(0, 32))))
+
+const findingKey = (match: DependencyScanMatchInput) =>
+ JSON.stringify([match.lockfilePath, match.ecosystem, match.packageName, match.advisoryId])
+
+/**
+ * OSV can later link a new record to an advisory a finding already tracks (a GO- entry gains its
+ * GHSA). A match whose ids overlap a known finding of the same package keeps that finding's id,
+ * so it is not closed and reopened under a new one, losing its triage.
+ */
+const keepKnownAdvisoryId = (
+ match: DependencyScanMatchInput,
+ known: ReadonlyArray<
+ Pick
+ >,
+): DependencyScanMatchInput => {
+ const names = new Set([match.advisoryId, ...match.aliases])
+ const samePackage = known.filter(
+ (finding) =>
+ finding.lockfilePath === match.lockfilePath &&
+ finding.ecosystem === match.ecosystem &&
+ finding.packageName === match.packageName,
+ )
+ // An exact id wins; an alias overlap only renames a match no finding tracks by its own id.
+ const same =
+ samePackage.find((finding) => finding.advisoryId === match.advisoryId) ??
+ samePackage.find((finding) =>
+ [finding.advisoryId, ...finding.aliases].some((name) => names.has(name)),
+ )
+ if (same === undefined || same.advisoryId === match.advisoryId) return match
+ return {
+ ...match,
+ advisoryId: same.advisoryId,
+ aliases: [...names].filter((name) => name !== same.advisoryId).sort(),
+ }
+}
+
+const matchKey = (match: DependencyScanMatchInput) =>
+ JSON.stringify([match.lockfilePath, match.ecosystem, match.packageName, match.version, match.advisoryId])
+
+const firstNonNull = (values: ReadonlyArray) => values.find((value) => value !== null) ?? null
+
+/** One finding's fields from the matches that share its key: every version, the worst severity. */
+const aggregate = (matches: Arr.NonEmptyReadonlyArray) => ({
+ head: matches[0],
+ aliases: Arr.sort(Arr.dedupe(matches.flatMap((match) => match.aliases)), Order.String),
+ versions: Arr.sort(Arr.dedupe(matches.map((match) => match.version)), Order.String),
+ severity: Arr.reduce(matches, matches[0].severity, (worst, match) =>
+ SEVERITY_RANK[match.severity] < SEVERITY_RANK[worst] ? match.severity : worst,
+ ),
+ relation: Arr.reduce(matches, matches[0].relation, (strongest, match) =>
+ RELATION_RANK[match.relation] < RELATION_RANK[strongest] ? match.relation : strongest,
+ ),
+ summary: firstNonNull(matches.map((match) => match.summary)),
+ fixedIn: firstNonNull(matches.map((match) => match.fixedIn)),
+})
+
+/** The org's scan, locked for the caller's transaction; fails when it is missing or already settled. */
+const lockRunningScan = (db: MapleDb, orgId: OrgId, scanId: DependencyScanId) =>
+ Effect.gen(function* () {
+ const rows = yield* db.run(
+ PG.from(DependencyScans)
+ .select()
+ .where(($) => [$.orgId.eq(orgId), $.id.eq(scanId)])
+ .limit(1)
+ .forUpdate(),
+ )
+ const row = rows[0]
+ if (row === undefined) {
+ return yield* new DependencyScanNotFoundError({
+ message: `Dependency scan ${scanId} not found`,
+ scanId,
+ })
+ }
+ if (row.status !== "running") {
+ return yield* new DependencyScanNotRunningError({
+ message: `Dependency scan ${scanId} already ${row.status}`,
+ scanId,
+ })
+ }
+ return row
+ })
+
+const settledRow = (rows: ReadonlyArray, scanId: DependencyScanId) =>
+ rows[0] === undefined
+ ? Effect.fail(
+ new DependencyScanPersistenceError({ message: `Dependency scan ${scanId} was not updated` }),
+ )
+ : Effect.succeed(rows[0])
+
+type FindingGroup = ReturnType & { readonly id: DependencyFindingId }
+
+/**
+ * Brings the repository's findings in line with a default-branch head scan: matched keys open (a
+ * `fixed` one reopens, a triaged one keeps its status), and open ones no longer matched are fixed
+ * unless their lockfile could not be read this time.
+ */
+const reconcileFindings = (
+ db: MapleDb,
+ scan: DependencyScanRow,
+ lockfiles: ReadonlyArray,
+ groups: ReadonlyArray,
+ now: number,
+) =>
+ Effect.gen(function* () {
+ const orgId = scan.orgId
+ const open = yield* db.run(
+ PG.from(DependencyFindings)
+ .select("id", "lockfilePath", "ecosystem", "packageName", "advisoryId", "aliases")
+ .where(($) => [$.orgId.eq(orgId), $.repositoryId.eq(scan.repositoryId), $.status.eq("open")]),
+ )
+ yield* Effect.forEach(Arr.chunksOf(groups, WRITE_CHUNK), (chunk) =>
+ db.run(
+ PG.insertInto(DependencyFindings)
+ .values(
+ chunk.map((group) => ({
+ id: group.id,
+ orgId,
+ repositoryId: scan.repositoryId,
+ lockfilePath: group.head.lockfilePath,
+ ecosystem: group.head.ecosystem,
+ packageName: group.head.packageName,
+ advisoryId: group.head.advisoryId,
+ aliases: group.aliases,
+ severity: group.severity,
+ summary: group.summary,
+ versions: group.versions,
+ fixedIn: group.fixedIn,
+ relation: group.relation,
+ status: "open" as const,
+ firstSeenScanId: scan.id,
+ lastSeenScanId: scan.id,
+ firstSeenSha: scan.commitSha,
+ lastSeenSha: scan.commitSha,
+ fixedScanId: null,
+ fixedSha: null,
+ createdAt: now,
+ updatedAt: now,
+ })),
+ )
+ .onConflictDoUpdate({
+ target: ["repositoryId", "lockfilePath", "ecosystem", "packageName", "advisoryId"],
+ set: ($, excluded) => ({
+ aliases: excluded.aliases,
+ severity: excluded.severity,
+ summary: excluded.summary,
+ versions: excluded.versions,
+ fixedIn: excluded.fixedIn,
+ relation: excluded.relation,
+ lastSeenScanId: excluded.lastSeenScanId,
+ lastSeenSha: excluded.lastSeenSha,
+ updatedAt: excluded.updatedAt,
+ status: PG.caseWhen(
+ [
+ [
+ $.status.eq("fixed"),
+ PG.typedValue(DependencyFindings.columns.status, "open"),
+ ],
+ ],
+ $.status,
+ ),
+ fixedScanId: PG.caseWhen(
+ [
+ [
+ $.status.eq("fixed"),
+ PG.typedValue(DependencyFindings.columns.fixedScanId, null),
+ ],
+ ],
+ $.fixedScanId,
+ ),
+ fixedSha: PG.caseWhen(
+ [
+ [
+ $.status.eq("fixed"),
+ PG.typedValue(DependencyFindings.columns.fixedSha, null),
+ ],
+ ],
+ $.fixedSha,
+ ),
+ }),
+ where: ($) => $.orgId.eq(orgId),
+ }),
+ ),
+ )
+ // A lockfile that failed, was too large or unsupported says nothing about its findings.
+ const lockfileStatus = new Map(lockfiles.map((lockfile) => [lockfile.path, lockfile.status]))
+ const matched = new Set(groups.map((group) => group.id))
+ // A finding OSV now lists only as another advisory's alias is still matched, not fixed.
+ const matchedNames = groups.map((group) => ({
+ key: JSON.stringify([group.head.lockfilePath, group.head.ecosystem, group.head.packageName]),
+ names: new Set([group.head.advisoryId, ...group.aliases]),
+ }))
+ const namedByMatch = (row: (typeof open)[number]) => {
+ const key = JSON.stringify([row.lockfilePath, row.ecosystem, row.packageName])
+ return matchedNames.some(
+ (group) =>
+ group.key === key &&
+ [row.advisoryId, ...row.aliases].some((name) => group.names.has(name)),
+ )
+ }
+ const fixedIds = open
+ .filter((row) => !matched.has(row.id) && !namedByMatch(row))
+ .filter((row) => {
+ const status = lockfileStatus.get(row.lockfilePath)
+ return status === undefined || status === "parsed"
+ })
+ .map((row) => row.id)
+ yield* Effect.forEach(Arr.chunksOf(fixedIds, WRITE_CHUNK), (chunk) =>
+ db.run(
+ PG.update(DependencyFindings)
+ .set({ status: "fixed", fixedScanId: scan.id, fixedSha: scan.commitSha, updatedAt: now })
+ .where(($) => [$.orgId.eq(orgId), $.status.eq("open"), $.id.in_(...chunk)]),
+ ),
+ )
+ })
+
+export class DependencyScanStore extends Context.Service()(
+ "@maple/backend/services/dependency-scan/DependencyScanStore",
+ {
+ make: Effect.gen(function* () {
+ const database = yield* Database
+ const dbExecute = makeDbExecute(database, "DependencyScanStore", toPersistenceError)
+
+ const startScan: DependencyScanStoreApi["startScan"] = Effect.fn("DependencyScanStore.startScan")(
+ function* (input) {
+ const now = yield* Clock.currentTimeMillis
+ const rows = yield* dbExecute((db) =>
+ db.run(
+ PG.insertInto(DependencyScans)
+ .values({
+ id: newScanId(),
+ orgId: input.orgId,
+ repositoryId: input.repositoryId,
+ commitSha: input.commitSha,
+ ref: input.ref,
+ trigger: input.trigger,
+ defaultBranchHead: input.defaultBranchHead,
+ status: "running",
+ lockfiles: [],
+ packageCount: 0,
+ vulnerableCount: 0,
+ error: null,
+ startedAt: now,
+ finishedAt: null,
+ })
+ .returning(),
+ ),
+ )
+ const row = rows[0]
+ if (row === undefined) {
+ return yield* new DependencyScanPersistenceError({
+ message: "Dependency scan was not created",
+ })
+ }
+ return row
+ },
+ )
+
+ const completeScan: DependencyScanStoreApi["completeScan"] = Effect.fn(
+ "DependencyScanStore.completeScan",
+ )(function* (input) {
+ const { orgId, scanId } = input
+ const now = yield* Clock.currentTimeMillis
+ return yield* dbExecute((db) =>
+ db.transaction(
+ Effect.gen(function* () {
+ const scan = yield* lockRunningScan(db, orgId, scanId)
+ // Scans of one repository settle one at a time, so reconciling sees the last word.
+ yield* db.execute(
+ Orm.sql`select pg_advisory_xact_lock(hashtext(${scan.repositoryId}), hashtext('dependency_scan'))`,
+ )
+ const known = yield* db.run(
+ PG.from(DependencyFindings)
+ .select(
+ "lockfilePath",
+ "ecosystem",
+ "packageName",
+ "advisoryId",
+ "aliases",
+ )
+ .where(($) => [$.orgId.eq(orgId), $.repositoryId.eq(scan.repositoryId)]),
+ )
+ // One row per primary key; a repeated match keeps its last copy.
+ const matches = Array.from(
+ new Map(
+ input.matches.map((m) => {
+ const kept = keepKnownAdvisoryId(m, known)
+ return [matchKey(kept), kept] as const
+ }),
+ ).values(),
+ )
+ const vulnerableCount = new Set(
+ matches.map((m) =>
+ JSON.stringify([m.lockfilePath, m.ecosystem, m.packageName, m.version]),
+ ),
+ ).size
+ yield* Effect.forEach(Arr.chunksOf(matches, WRITE_CHUNK), (chunk) =>
+ db.run(
+ PG.insertInto(DependencyScanMatches)
+ .values(chunk.map((match) => ({ ...match, scanId, orgId })))
+ .onConflictDoNothing(),
+ ),
+ )
+ // A slower scan of an older head must not undo what a newer one settled.
+ const newer = scan.defaultBranchHead
+ ? yield* db.run(
+ PG.from(DependencyScans)
+ .select("id")
+ .where(($) => [
+ $.orgId.eq(orgId),
+ $.repositoryId.eq(scan.repositoryId),
+ $.defaultBranchHead.eq(true),
+ $.status.eq("completed"),
+ $.startedAt.gt(scan.startedAt),
+ ])
+ .limit(1),
+ )
+ : []
+ if (
+ scan.defaultBranchHead &&
+ newer.length === 0 &&
+ input.incomplete === undefined
+ ) {
+ const groups = yield* Effect.forEach(
+ Object.values(Arr.groupBy(matches, findingKey)),
+ (group) =>
+ findingId(orgId, scan.repositoryId, group[0]).pipe(
+ Effect.map((id) => ({ ...aggregate(group), id })),
+ ),
+ )
+ yield* reconcileFindings(db, scan, input.lockfiles, groups, now)
+ }
+ const rows = yield* db.run(
+ PG.update(DependencyScans)
+ .set({
+ status: "completed",
+ lockfiles: input.lockfiles,
+ packageCount: input.packageCount,
+ vulnerableCount,
+ error: input.incomplete ?? null,
+ finishedAt: now,
+ })
+ .where(($) => [$.orgId.eq(orgId), $.id.eq(scanId)])
+ .returning(),
+ )
+ return yield* settledRow(rows, scanId)
+ }),
+ ),
+ )
+ })
+
+ const failScan: DependencyScanStoreApi["failScan"] = Effect.fn("DependencyScanStore.failScan")(
+ function* (input) {
+ const now = yield* Clock.currentTimeMillis
+ return yield* dbExecute((db) =>
+ db.transaction(
+ Effect.gen(function* () {
+ yield* lockRunningScan(db, input.orgId, input.scanId)
+ const rows = yield* db.run(
+ PG.update(DependencyScans)
+ .set({ status: "failed", error: input.error, finishedAt: now })
+ .where(($) => [$.orgId.eq(input.orgId), $.id.eq(input.scanId)])
+ .returning(),
+ )
+ return yield* settledRow(rows, input.scanId)
+ }),
+ ),
+ )
+ },
+ )
+
+ const listFindings: DependencyScanStoreApi["listFindings"] = Effect.fn(
+ "DependencyScanStore.listFindings",
+ )(function* (input) {
+ const repositoryIds = input.repositoryIds
+ if (repositoryIds !== undefined && repositoryIds.length === 0) return []
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyFindings)
+ .select()
+ .where(($) => [
+ $.orgId.eq(input.orgId),
+ input.repositoryId === undefined
+ ? undefined
+ : $.repositoryId.eq(input.repositoryId),
+ repositoryIds === undefined
+ ? undefined
+ : $.repositoryId.in_(...repositoryIds),
+ input.status === undefined ? undefined : $.status.eq(input.status),
+ ])
+ .orderBy(($) => [
+ [
+ PG.caseWhen(
+ [
+ [$.severity.eq("critical"), PG.lit(SEVERITY_RANK.critical)],
+ [$.severity.eq("high"), PG.lit(SEVERITY_RANK.high)],
+ [$.severity.eq("medium"), PG.lit(SEVERITY_RANK.medium)],
+ [$.severity.eq("low"), PG.lit(SEVERITY_RANK.low)],
+ ],
+ PG.lit(SEVERITY_RANK.unknown),
+ ),
+ "asc",
+ ],
+ [$.updatedAt, "desc"],
+ [$.id, "asc"],
+ ])
+ .limit(input.limit),
+ ),
+ )
+ })
+
+ const getFinding: DependencyScanStoreApi["getFinding"] = Effect.fn(
+ "DependencyScanStore.getFinding",
+ )(function* (input) {
+ const rows = yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyFindings)
+ .select()
+ .where(($) => [$.orgId.eq(input.orgId), $.id.eq(input.id)])
+ .limit(1),
+ ),
+ )
+ return Option.fromUndefinedOr(rows[0])
+ })
+
+ const setFindingStatus: DependencyScanStoreApi["setFindingStatus"] = Effect.fn(
+ "DependencyScanStore.setFindingStatus",
+ )(function* (input) {
+ const now = yield* Clock.currentTimeMillis
+ const rows = yield* dbExecute((db) =>
+ db.run(
+ PG.update(DependencyFindings)
+ .set({
+ status: input.status,
+ statusReason: input.reason,
+ statusChangedBy: input.actor,
+ statusChangedAt: now,
+ // A person's triage is not the scan that closed it.
+ fixedScanId: null,
+ fixedSha: null,
+ updatedAt: now,
+ })
+ .where(($) => [$.orgId.eq(input.orgId), $.id.eq(input.id)])
+ .returning(),
+ ),
+ )
+ const row = rows[0]
+ if (row === undefined) {
+ return yield* new DependencyFindingNotFoundError({
+ message: `Dependency finding ${input.id} not found`,
+ findingId: input.id,
+ })
+ }
+ return row
+ })
+
+ const listScans: DependencyScanStoreApi["listScans"] = Effect.fn("DependencyScanStore.listScans")(
+ function* (input) {
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScans)
+ .select()
+ .where(($) => [
+ $.orgId.eq(input.orgId),
+ input.repositoryId === undefined
+ ? undefined
+ : $.repositoryId.eq(input.repositoryId),
+ ])
+ .orderBy(($) => [
+ [$.startedAt, "desc"],
+ [$.id, "asc"],
+ ])
+ .limit(input.limit),
+ ),
+ )
+ },
+ )
+
+ const latestScan: DependencyScanStoreApi["latestScan"] = Effect.fn(
+ "DependencyScanStore.latestScan",
+ )(function* (input) {
+ const rows = yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScans)
+ .select()
+ .where(($) => [
+ $.orgId.eq(input.orgId),
+ $.repositoryId.eq(input.repositoryId),
+ $.status.eq("completed"),
+ input.commitSha === undefined ? undefined : $.commitSha.eq(input.commitSha),
+ input.defaultBranchHead === undefined
+ ? undefined
+ : $.defaultBranchHead.eq(input.defaultBranchHead),
+ ])
+ .orderBy(($) => [
+ [$.startedAt, "desc"],
+ [$.id, "asc"],
+ ])
+ .limit(1),
+ ),
+ )
+ return Option.fromUndefinedOr(rows[0])
+ })
+
+ const scanMatches: DependencyScanStoreApi["scanMatches"] = Effect.fn(
+ "DependencyScanStore.scanMatches",
+ )(function* (input) {
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScanMatches)
+ .select()
+ .where(($) => [$.orgId.eq(input.orgId), $.scanId.eq(input.scanId)])
+ .orderBy(($) => [
+ [$.lockfilePath, "asc"],
+ [$.packageName, "asc"],
+ [$.version, "asc"],
+ [$.advisoryId, "asc"],
+ ]),
+ ),
+ )
+ })
+
+ const latestBranchScans: DependencyScanStoreApi["latestBranchScans"] = Effect.fn(
+ "DependencyScanStore.latestBranchScans",
+ )(function* (input) {
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScans)
+ .select()
+ .distinctOn("repositoryId")
+ .where(($) => [$.orgId.eq(input.orgId), $.defaultBranchHead.eq(true)])
+ .orderBy(($) => [
+ [$.repositoryId, "asc"],
+ [$.startedAt, "desc"],
+ [$.id, "asc"],
+ ]),
+ ),
+ )
+ })
+
+ const scansAtCommits: DependencyScanStoreApi["scansAtCommits"] = Effect.fn(
+ "DependencyScanStore.scansAtCommits",
+ )(function* (input) {
+ if (input.repositoryIds.length === 0 || input.commitShas.length === 0) return []
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScans)
+ .select()
+ .where(($) => [
+ $.orgId.eq(input.orgId),
+ $.repositoryId.in_(...new Set(input.repositoryIds)),
+ $.commitSha.in_(...new Set(input.commitShas)),
+ ])
+ .orderBy(($) => [
+ [$.startedAt, "desc"],
+ [$.id, "asc"],
+ ]),
+ ),
+ )
+ })
+
+ const matchesOfScans: DependencyScanStoreApi["matchesOfScans"] = Effect.fn(
+ "DependencyScanStore.matchesOfScans",
+ )(function* (input) {
+ if (input.scanIds.length === 0) return []
+ return yield* dbExecute((db) =>
+ db.run(
+ PG.from(DependencyScanMatches)
+ .select()
+ .where(($) => [$.orgId.eq(input.orgId), $.scanId.in_(...new Set(input.scanIds))]),
+ ),
+ )
+ })
+
+ return {
+ latestBranchScans,
+ scansAtCommits,
+ matchesOfScans,
+ startScan,
+ completeScan,
+ failScan,
+ listFindings,
+ getFinding,
+ setFindingStatus,
+ listScans,
+ latestScan,
+ scanMatches,
+ }
+ }),
+ },
+) {
+ static readonly layer = Layer.effect(this, this.make)
+}
diff --git a/packages/backend/src/services/org/OrganizationService.ts b/packages/backend/src/services/org/OrganizationService.ts
index 16b17bd638..44d6abdaed 100644
--- a/packages/backend/src/services/org/OrganizationService.ts
+++ b/packages/backend/src/services/org/OrganizationService.ts
@@ -97,6 +97,9 @@ import {
SecurityAuditOrgSettings,
SecurityAuditFindings,
SecurityAuditRunFindings,
+ DependencyFindings,
+ DependencyScanMatches,
+ DependencyScans,
SecurityAuditRuns,
SecurityAuditTargets,
SecurityAuditUnits,
@@ -243,6 +246,10 @@ const ORG_SCOPED_TABLES: ReadonlyArray = [
SecurityAuditUnits,
SecurityAuditRuns,
SecurityAuditTargets,
+ // Which of the org's dependencies are vulnerable, per repository and commit.
+ DependencyScans,
+ DependencyScanMatches,
+ DependencyFindings,
]
/**
diff --git a/packages/db/drizzle/20261031225742_dependency_scans/migration.sql b/packages/db/drizzle/20261031225742_dependency_scans/migration.sql
new file mode 100644
index 0000000000..031b004e93
--- /dev/null
+++ b/packages/db/drizzle/20261031225742_dependency_scans/migration.sql
@@ -0,0 +1,86 @@
+-- metadata
+CREATE TABLE IF NOT EXISTS "dependency_findings" (
+ "id" text NOT NULL,
+ "org_id" text NOT NULL,
+ "repository_id" text NOT NULL,
+ "lockfile_path" text NOT NULL,
+ "ecosystem" text NOT NULL,
+ "package_name" text NOT NULL,
+ "advisory_id" text NOT NULL,
+ "aliases" jsonb NOT NULL,
+ "severity" text NOT NULL,
+ "summary" text,
+ "versions" jsonb NOT NULL,
+ "fixed_in" text,
+ "relation" text NOT NULL,
+ "status" text NOT NULL DEFAULT 'open',
+ "first_seen_scan_id" text NOT NULL,
+ "last_seen_scan_id" text NOT NULL,
+ "first_seen_sha" text NOT NULL,
+ "last_seen_sha" text NOT NULL,
+ "fixed_scan_id" text,
+ "fixed_sha" text,
+ "status_reason" text,
+ "status_changed_by" text,
+ "status_changed_at" timestamp with time zone,
+ "created_at" timestamp with time zone NOT NULL,
+ "updated_at" timestamp with time zone NOT NULL,
+ CONSTRAINT "dependency_findings_pkey" PRIMARY KEY ("id")
+);
+--> statement-breakpoint
+-- metadata
+CREATE TABLE IF NOT EXISTS "dependency_scan_matches" (
+ "scan_id" text NOT NULL,
+ "org_id" text NOT NULL,
+ "lockfile_path" text NOT NULL,
+ "ecosystem" text NOT NULL,
+ "package_name" text NOT NULL,
+ "version" text NOT NULL,
+ "relation" text NOT NULL,
+ "advisory_id" text NOT NULL,
+ "aliases" jsonb NOT NULL,
+ "severity" text NOT NULL,
+ "summary" text,
+ "fixed_in" text,
+ CONSTRAINT "dependency_scan_matches_pkey" PRIMARY KEY ("scan_id", "lockfile_path", "ecosystem", "package_name", "version", "advisory_id")
+);
+--> statement-breakpoint
+-- metadata
+CREATE TABLE IF NOT EXISTS "dependency_scans" (
+ "id" text NOT NULL,
+ "org_id" text NOT NULL,
+ "repository_id" text NOT NULL,
+ "commit_sha" text NOT NULL,
+ "ref" text,
+ "trigger" text NOT NULL,
+ "default_branch_head" boolean NOT NULL,
+ "status" text NOT NULL DEFAULT 'running',
+ "lockfiles" jsonb NOT NULL,
+ "package_count" integer NOT NULL DEFAULT 0,
+ "vulnerable_count" integer NOT NULL DEFAULT 0,
+ "error" text,
+ "started_at" timestamp with time zone NOT NULL,
+ "finished_at" timestamp with time zone,
+ CONSTRAINT "dependency_scans_pkey" PRIMARY KEY ("id")
+);
+--> statement-breakpoint
+-- metadata
+CREATE UNIQUE INDEX IF NOT EXISTS "dependency_findings_key_idx" ON "dependency_findings" USING btree ("repository_id", "lockfile_path", "ecosystem", "package_name", "advisory_id");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_findings_org_status_idx" ON "dependency_findings" USING btree ("org_id", "status");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_findings_org_updated_idx" ON "dependency_findings" USING btree ("org_id", "updated_at");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_scan_matches_org_scan_idx" ON "dependency_scan_matches" USING btree ("org_id", "scan_id");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_scans_org_started_idx" ON "dependency_scans" USING btree ("org_id", "started_at");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_scans_repo_commit_idx" ON "dependency_scans" USING btree ("repository_id", "commit_sha");
+--> statement-breakpoint
+-- metadata
+CREATE INDEX IF NOT EXISTS "dependency_scans_repo_started_idx" ON "dependency_scans" USING btree ("repository_id", "started_at");
diff --git a/packages/db/drizzle/20261031225742_dependency_scans/snapshot.json b/packages/db/drizzle/20261031225742_dependency_scans/snapshot.json
new file mode 100644
index 0000000000..12804fc380
--- /dev/null
+++ b/packages/db/drizzle/20261031225742_dependency_scans/snapshot.json
@@ -0,0 +1,18688 @@
+{
+ "version": "1",
+ "dialect": "postgres",
+ "id": "0479f73a257c3d6d2909531b2aeb42835ea643512b8c402843ca678a7e7d7c3e",
+ "prevIds": [
+ "397cb487206e0634792f38995a5c1a2ffcbeeff8f6ec9e5afb827f9fd2a62a32"
+ ],
+ "entities": [
+ {
+ "kind": "table",
+ "name": "actors",
+ "primaryKey": {
+ "name": "actors_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "agent_feedback",
+ "primaryKey": {
+ "name": "agent_feedback_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "ai_triage_settings",
+ "primaryKey": {
+ "name": "ai_triage_settings_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_delivery_events",
+ "primaryKey": {
+ "name": "alert_delivery_events_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_destinations",
+ "primaryKey": {
+ "name": "alert_destinations_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_incidents",
+ "primaryKey": {
+ "name": "alert_incidents_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_linear_issues",
+ "primaryKey": {
+ "name": "alert_linear_issues_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_rule_claims",
+ "primaryKey": {
+ "name": "alert_rule_claims_pkey",
+ "columns": [
+ "rule_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_rule_states",
+ "primaryKey": {
+ "name": "alert_rule_states_org_id_rule_id_group_key_pk",
+ "columns": [
+ "org_id",
+ "rule_id",
+ "group_key"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "alert_rules",
+ "primaryKey": {
+ "name": "alert_rules_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "anomaly_detector_settings",
+ "primaryKey": {
+ "name": "anomaly_detector_settings_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "anomaly_detector_states",
+ "primaryKey": {
+ "name": "anomaly_detector_states_org_id_detector_key_pk",
+ "columns": [
+ "org_id",
+ "detector_key"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "anomaly_incidents",
+ "primaryKey": {
+ "name": "anomaly_incidents_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "api_keys",
+ "primaryKey": {
+ "name": "api_keys_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "aws_connections",
+ "primaryKey": {
+ "name": "aws_connections_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cancellation_reviews",
+ "primaryKey": {
+ "name": "cancellation_reviews_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "chat_identities",
+ "primaryKey": {
+ "name": "chat_identities_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "chat_workspaces",
+ "primaryKey": {
+ "name": "chat_workspaces_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cli_device_authorizations",
+ "primaryKey": {
+ "name": "cli_device_authorizations_pkey",
+ "columns": [
+ "device_code_hash"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cloudflare_analytics_state",
+ "primaryKey": {
+ "name": "cloudflare_analytics_state_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cloudflare_hyperdrive_configs",
+ "primaryKey": {
+ "name": "cloudflare_hyperdrive_configs_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cloudflare_logpush_connectors",
+ "primaryKey": {
+ "name": "cloudflare_logpush_connectors_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "cloudflare_zone_settings",
+ "primaryKey": {
+ "name": "cloudflare_zone_settings_pkey",
+ "columns": [
+ "org_id",
+ "account_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dashboard_shares",
+ "primaryKey": {
+ "name": "dashboard_shares_org_id_id_pk",
+ "columns": [
+ "org_id",
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dashboard_versions",
+ "primaryKey": {
+ "name": "dashboard_versions_org_id_id_pk",
+ "columns": [
+ "org_id",
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dashboards",
+ "primaryKey": {
+ "name": "dashboards_org_id_id_pk",
+ "columns": [
+ "org_id",
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dependency_findings",
+ "primaryKey": {
+ "name": "dependency_findings_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dependency_scan_matches",
+ "primaryKey": {
+ "name": "dependency_scan_matches_pkey",
+ "columns": [
+ "scan_id",
+ "lockfile_path",
+ "ecosystem",
+ "package_name",
+ "version",
+ "advisory_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "dependency_scans",
+ "primaryKey": {
+ "name": "dependency_scans_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "device_credentials",
+ "primaryKey": {
+ "name": "device_credentials_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "device_proof_replays",
+ "primaryKey": {
+ "name": "device_proof_replays_pkey",
+ "columns": [
+ "key"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "digest_subscriptions",
+ "primaryKey": {
+ "name": "digest_subscriptions_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_fingerprint_candidates",
+ "primaryKey": {
+ "name": "error_fingerprint_candidates_org_id_fingerprint_hash_pk",
+ "columns": [
+ "org_id",
+ "fingerprint_hash"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_incidents",
+ "primaryKey": {
+ "name": "error_incidents_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_issue_events",
+ "primaryKey": {
+ "name": "error_issue_events_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_issue_pull_requests",
+ "primaryKey": {
+ "name": "error_issue_pull_requests_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_issue_states",
+ "primaryKey": {
+ "name": "error_issue_states_org_id_issue_id_pk",
+ "columns": [
+ "org_id",
+ "issue_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_issue_verifications",
+ "primaryKey": {
+ "name": "error_issue_verifications_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_issues",
+ "primaryKey": {
+ "name": "error_issues_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_notification_deliveries",
+ "primaryKey": {
+ "name": "error_notification_deliveries_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_notification_policies",
+ "primaryKey": {
+ "name": "error_notification_policies_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "error_tick_states",
+ "primaryKey": {
+ "name": "error_tick_states_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "gcp_connectors",
+ "primaryKey": {
+ "name": "gcp_connectors_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "gcp_resources",
+ "primaryKey": {
+ "name": "gcp_resources_pkey",
+ "columns": [
+ "connector_id",
+ "name"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "investigations",
+ "primaryKey": {
+ "name": "investigations_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "issue_escalation_policies",
+ "primaryKey": {
+ "name": "issue_escalation_policies_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "issue_escalations",
+ "primaryKey": {
+ "name": "issue_escalations_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "live_activities",
+ "primaryKey": {
+ "name": "live_activities_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "mcp_oauth_authorizations",
+ "primaryKey": {
+ "name": "mcp_oauth_authorizations_pkey",
+ "columns": [
+ "request_id_hash"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "mcp_oauth_clients",
+ "primaryKey": {
+ "name": "mcp_oauth_clients_pkey",
+ "columns": [
+ "client_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "mcp_oauth_refresh_tokens",
+ "primaryKey": {
+ "name": "mcp_oauth_refresh_tokens_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "mobile_devices",
+ "primaryKey": {
+ "name": "mobile_devices_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "oauth_auth_states",
+ "primaryKey": {
+ "name": "oauth_auth_states_pkey",
+ "columns": [
+ "state"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "oauth_connections",
+ "primaryKey": {
+ "name": "oauth_connections_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_billing_links",
+ "primaryKey": {
+ "name": "org_billing_links_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_clickhouse_schema_apply_runs",
+ "primaryKey": {
+ "name": "org_clickhouse_schema_apply_runs_org_id_pk",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_clickhouse_settings",
+ "primaryKey": {
+ "name": "org_clickhouse_settings_org_id_pk",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_attribute_mappings",
+ "primaryKey": {
+ "name": "org_ingest_attribute_mappings_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_keys",
+ "primaryKey": {
+ "name": "org_ingest_keys_org_id_pk",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_rule_settings",
+ "primaryKey": {
+ "name": "org_ingest_rule_settings_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_rule_stats",
+ "primaryKey": {
+ "name": "org_ingest_rule_stats_pkey",
+ "columns": [
+ "org_id",
+ "rule_id",
+ "bucket",
+ "signal"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_rules",
+ "primaryKey": {
+ "name": "org_ingest_rules_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_ingest_sampling_policies",
+ "primaryKey": {
+ "name": "org_ingest_sampling_policies_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_onboarding_state",
+ "primaryKey": {
+ "name": "org_onboarding_state_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_openrouter_keys",
+ "primaryKey": {
+ "name": "org_openrouter_keys_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_recommendation_issues",
+ "primaryKey": {
+ "name": "org_recommendation_issues_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "org_support_channels",
+ "primaryKey": {
+ "name": "org_support_channels_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "planetscale_connections",
+ "primaryKey": {
+ "name": "planetscale_connections_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "planetscale_databases",
+ "primaryKey": {
+ "name": "planetscale_databases_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "planetscale_events",
+ "primaryKey": {
+ "name": "planetscale_events_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "planetscale_issue_receipts",
+ "primaryKey": {
+ "name": "planetscale_issue_receipts_org_id_event_id_pk",
+ "columns": [
+ "org_id",
+ "event_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "planetscale_poll_state",
+ "primaryKey": {
+ "name": "planetscale_poll_state_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_edits",
+ "primaryKey": {
+ "name": "pr_review_edits_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_finding_embeddings",
+ "primaryKey": {
+ "name": "pr_review_finding_embeddings_pkey",
+ "columns": [
+ "finding_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_findings",
+ "primaryKey": {
+ "name": "pr_review_findings_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_merge_steps",
+ "primaryKey": {
+ "name": "pr_review_merge_steps_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_replies",
+ "primaryKey": {
+ "name": "pr_review_replies_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_review_settings",
+ "primaryKey": {
+ "name": "pr_review_settings_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "pr_reviews",
+ "primaryKey": {
+ "name": "pr_reviews_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "railway_connections",
+ "primaryKey": {
+ "name": "railway_connections_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "railway_environments",
+ "primaryKey": {
+ "name": "railway_environments_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "scrape_target_checks",
+ "primaryKey": {
+ "name": "scrape_target_checks_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "scrape_targets",
+ "primaryKey": {
+ "name": "scrape_targets_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_events",
+ "primaryKey": {
+ "name": "security_audit_events_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_findings",
+ "primaryKey": {
+ "name": "security_audit_findings_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_org_reservations",
+ "primaryKey": {
+ "name": "security_audit_org_reservations_pkey",
+ "columns": [
+ "run_id",
+ "agent_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_org_settings",
+ "primaryKey": {
+ "name": "security_audit_org_settings_pkey",
+ "columns": [
+ "org_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_run_findings",
+ "primaryKey": {
+ "name": "security_audit_run_findings_pkey",
+ "columns": [
+ "run_id",
+ "fingerprint"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_runs",
+ "primaryKey": {
+ "name": "security_audit_runs_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_targets",
+ "primaryKey": {
+ "name": "security_audit_targets_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "security_audit_units",
+ "primaryKey": {
+ "name": "security_audit_units_pkey",
+ "columns": [
+ "run_id",
+ "coverage_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "sources",
+ "primaryKey": {
+ "name": "sources_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_page_cleanups",
+ "primaryKey": {
+ "name": "status_page_cleanups_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_page_components",
+ "primaryKey": {
+ "name": "status_page_components_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_page_incident_components",
+ "primaryKey": {
+ "name": "status_page_incident_components_pk",
+ "columns": [
+ "incident_id",
+ "component_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_page_incident_updates",
+ "primaryKey": {
+ "name": "status_page_incident_updates_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_page_incidents",
+ "primaryKey": {
+ "name": "status_page_incidents_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "status_pages",
+ "primaryKey": {
+ "name": "status_pages_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "supabase_connections",
+ "primaryKey": {
+ "name": "supabase_connections_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "supabase_project_insights",
+ "primaryKey": {
+ "name": "supabase_project_insights_pkey",
+ "columns": [
+ "project_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "supabase_projects",
+ "primaryKey": {
+ "name": "supabase_projects_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "uptime_monitor_daily",
+ "primaryKey": {
+ "name": "uptime_monitor_daily_pk",
+ "columns": [
+ "monitor_id",
+ "day"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "uptime_monitor_states",
+ "primaryKey": {
+ "name": "uptime_monitor_states_pkey",
+ "columns": [
+ "monitor_id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "uptime_monitors",
+ "primaryKey": {
+ "name": "uptime_monitors_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "vcs_commits",
+ "primaryKey": {
+ "name": "vcs_commits_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "vcs_installations",
+ "primaryKey": {
+ "name": "vcs_installations_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "vcs_repositories",
+ "primaryKey": {
+ "name": "vcs_repositories_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "table",
+ "name": "vcs_repository_branches",
+ "primaryKey": {
+ "name": "vcs_repository_branches_pkey",
+ "columns": [
+ "id"
+ ]
+ }
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "type",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "user_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "agent_name",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "model",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "capabilities_json",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "created_by",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "actors",
+ "name": "last_active_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "user_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "kind",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "impact",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "summary",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "reason",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "details",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "related_to",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "agent_type",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "agent_name",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "agent_model",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "agent_version",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "source",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "agent_feedback",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "enabled",
+ "position": 1,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "max_runs_per_day",
+ "position": 2,
+ "type": "integer",
+ "notNull": true,
+ "default": "20",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "max_passes_per_day",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": "90",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "updated_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "ai_triage_settings",
+ "name": "updated_by",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "incident_id",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "rule_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "destination_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "delivery_key",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "event_type",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "attempt_number",
+ "position": 7,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "status",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "scheduled_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "claimed_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "claim_expires_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "claimed_by",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "attempted_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "provider_message",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "provider_reference",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "response_code",
+ "position": 16,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "error_message",
+ "position": 17,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "payload_json",
+ "position": 18,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "created_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_delivery_events",
+ "name": "updated_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "type",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "enabled",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "config_json",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "secret_ciphertext",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "secret_iv",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "secret_tag",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "last_tested_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "last_test_error",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "consecutive_failures",
+ "position": 11,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "last_failure_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "disabled_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "disabled_reason",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "created_by",
+ "position": 17,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_destinations",
+ "name": "updated_by",
+ "position": 18,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "rule_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "incident_key",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "rule_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "group_key",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "signal_type",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "severity",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "peak_severity",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "status",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "comparator",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "threshold",
+ "position": 11,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "threshold_upper",
+ "position": 12,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "first_triggered_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_triggered_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "resolved_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_observed_value",
+ "position": 16,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_sample_count",
+ "position": 17,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_evaluated_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "dedupe_key",
+ "position": 19,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_delivered_event_type",
+ "position": 20,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "last_notified_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "hold_reason",
+ "position": 22,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "held_since",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "error_issue_id",
+ "position": 24,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "created_at",
+ "position": 25,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_incidents",
+ "name": "updated_at",
+ "position": 26,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "destination_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "thread_key",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "linear_team_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "linear_issue_id",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "linear_identifier",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "linear_url",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "incident_id",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "created_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_linear_issues",
+ "name": "updated_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_claims",
+ "name": "rule_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_claims",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_claims",
+ "name": "last_scheduled_at",
+ "position": 2,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_claims",
+ "name": "consecutive_limit_failures",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "rule_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "group_key",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "'__total__'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "consecutive_breaches",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "consecutive_healthy",
+ "position": 4,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "history_json",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_status",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_value",
+ "position": 7,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_sample_count",
+ "position": 8,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_evaluated_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_error",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "last_error_kind",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rule_states",
+ "name": "updated_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "notes",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "notification_template_json",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "enabled",
+ "position": 5,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "severity",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "service_names_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "exclude_service_names_json",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "environments_json",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "tags_json",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "signal_type",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "comparator",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "threshold",
+ "position": 13,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "threshold_upper",
+ "position": 14,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "thresholds_json",
+ "position": 15,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "window_minutes",
+ "position": 16,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "evaluation_interval_minutes",
+ "position": 17,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "slowed_interval_minutes",
+ "position": 18,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "slowed_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "minimum_sample_count",
+ "position": 20,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "consecutive_breaches_required",
+ "position": 21,
+ "type": "integer",
+ "notNull": true,
+ "default": "2",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "breaches_out_of",
+ "position": 22,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "consecutive_healthy_required",
+ "position": 23,
+ "type": "integer",
+ "notNull": true,
+ "default": "2",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "renotify_interval_minutes",
+ "position": 24,
+ "type": "integer",
+ "notNull": true,
+ "default": "30",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "apdex_threshold_ms",
+ "position": 25,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "query_builder_draft_json",
+ "position": 26,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "raw_query_sql",
+ "position": 27,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "group_by",
+ "position": 28,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "destination_ids_json",
+ "position": 29,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "query_spec_json",
+ "position": 30,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "reducer",
+ "position": 31,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "sample_count_strategy",
+ "position": 32,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "no_data_behavior",
+ "position": 33,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "last_scheduled_at",
+ "position": 34,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "created_at",
+ "position": 35,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "updated_at",
+ "position": 36,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "created_by",
+ "position": 37,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "alert_rules",
+ "name": "updated_by",
+ "position": 38,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "enabled",
+ "position": 1,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "sensitivity",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "'normal'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "muted_signals_json",
+ "position": 3,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "last_tick_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "created_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "updated_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_settings",
+ "name": "updated_by",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "detector_key",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "signal_type",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "service_name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "deployment_env",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "fingerprint_hash",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "consecutive_breaches",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "consecutive_healthy",
+ "position": 7,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_status",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_value",
+ "position": 9,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "baseline_median",
+ "position": 10,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_sample_count",
+ "position": 11,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_evaluated_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "open_incident_id",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_resolved_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "last_incident_id",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_detector_states",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "detector_key",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "signal_type",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "service_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "deployment_env",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "fingerprint_hash",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "error_issue_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "status",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "severity",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "opened_value",
+ "position": 10,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "baseline_median",
+ "position": 11,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "baseline_sigma",
+ "position": 12,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "threshold_value",
+ "position": 13,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "last_observed_value",
+ "position": 14,
+ "type": "double precision",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "last_sample_count",
+ "position": 15,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "first_triggered_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "last_triggered_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "resolved_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "resolve_reason",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "triage_status",
+ "position": 20,
+ "type": "text",
+ "notNull": true,
+ "default": "'none'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "dedupe_key",
+ "position": 21,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "fingerprints_json",
+ "position": 22,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "reopen_count",
+ "position": 23,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "last_reopened_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "created_at",
+ "position": 25,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "anomaly_incidents",
+ "name": "updated_at",
+ "position": 26,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "description",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "key_hash",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "key_prefix",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "revoked",
+ "position": 6,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "revoked_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "last_used_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "expires_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "metadata_json",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "scopes",
+ "position": 11,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "kind",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": "'standard'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "created_by",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "api_keys",
+ "name": "created_by_email",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "account_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "modules",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "granted_modules",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "template_version",
+ "position": 6,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "verified_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "last_checked_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "last_check_error",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "check_lease_until",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "metric_stream",
+ "position": 11,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "metric_stream_changed_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_secret_ciphertext",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_secret_iv",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_secret_tag",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_secret_hash",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_last_received_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "stream_last_error",
+ "position": 18,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "created_by",
+ "position": 19,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "created_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "aws_connections",
+ "name": "updated_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "plan_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "subscription_started_at",
+ "position": 3,
+ "type": "bigint",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "canceled_at",
+ "position": 4,
+ "type": "bigint",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "snapshot_json",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "rule_reason",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "posted_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cancellation_reviews",
+ "name": "updated_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "connector",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "external_user_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "user_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "display_name",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_identities",
+ "name": "created_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "connector",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "external_workspace_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "settings",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "credentials_ciphertext",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "credentials_iv",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "credentials_tag",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "chat_workspaces",
+ "name": "created_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "device_code_hash",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "user_code_hash",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "device_name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "approved_org_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "approved_user_id",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "approved_roles",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "approved_user_email",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "api_key_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "token_ciphertext",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "token_iv",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "token_tag",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "approved_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "denied_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cli_device_authorizations",
+ "name": "expires_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "account_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "dataset",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "zone_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "zone_name",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "enabled",
+ "position": 6,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "watermark_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "backfill_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "settings_json",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "settings_fetched_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "quantiles_available",
+ "position": 11,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "discovered_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "live_scripts_json",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "grant_call_cap",
+ "position": 14,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "last_success_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "last_error",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "last_error_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "lease_until",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "created_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_analytics_state",
+ "name": "updated_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "account_id",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "config_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "origin_host",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "origin_port",
+ "position": 6,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "origin_scheme",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "origin_database",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "origin_user",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "deleted_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "created_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "updated_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "zone_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "service_name",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "dataset",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": "'http_requests'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "secret_ciphertext",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "secret_iv",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "secret_tag",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "secret_hash",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "enabled",
+ "position": 11,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "last_received_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "last_error",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "secret_rotated_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "created_by",
+ "position": 17,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_logpush_connectors",
+ "name": "updated_by",
+ "position": 18,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "account_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "watch_new_zones",
+ "position": 2,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "zone_overrides",
+ "position": 3,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'{}'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "created_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "cloudflare_zone_settings",
+ "name": "updated_by",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "dashboard_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "widget_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "mode",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "token_hash",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "token_ciphertext",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "token_iv",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "token_tag",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "token_suffix",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "created_by",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "updated_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "updated_by",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_shares",
+ "name": "revoked_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "dashboard_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "version_number",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "snapshot_json",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "change_kind",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "change_summary",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "source_version_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboard_versions",
+ "name": "created_by",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "payload_json",
+ "position": 3,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "created_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "created_by",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "updated_by",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dashboards",
+ "name": "version",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "lockfile_path",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "ecosystem",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "package_name",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "advisory_id",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "aliases",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "severity",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "summary",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "versions",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "fixed_in",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "relation",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "status",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "first_seen_scan_id",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "last_seen_scan_id",
+ "position": 15,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "first_seen_sha",
+ "position": 16,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "last_seen_sha",
+ "position": 17,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "fixed_scan_id",
+ "position": 18,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "fixed_sha",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "status_reason",
+ "position": 20,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "status_changed_by",
+ "position": 21,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "status_changed_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "created_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_findings",
+ "name": "updated_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "scan_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "lockfile_path",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "ecosystem",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "package_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "version",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "relation",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "advisory_id",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "aliases",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "severity",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "summary",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scan_matches",
+ "name": "fixed_in",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "commit_sha",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "ref",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "trigger",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "default_branch_head",
+ "position": 6,
+ "type": "boolean",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "status",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": "'running'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "lockfiles",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "package_count",
+ "position": 9,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "vulnerable_count",
+ "position": 10,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "error",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "started_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "dependency_scans",
+ "name": "finished_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "user_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "installation_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "public_jwk",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "jkt",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "roles",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "scopes",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "attested",
+ "position": 8,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "attestation",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "last_used_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "expires_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "hard_expires_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_credentials",
+ "name": "revoked_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_proof_replays",
+ "name": "key",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "device_proof_replays",
+ "name": "expires_at",
+ "position": 1,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "user_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "email",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "enabled",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "opted_out_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "day_of_week",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": "1",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "timezone",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": "'UTC'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "send_hour",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "9",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "namespaces_json",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "environments_json",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "last_sent_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "last_attempted_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "web_analytics_enabled",
+ "position": 13,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "web_analytics_opted_out_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "web_analytics_last_sent_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "web_analytics_last_attempted_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "created_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "digest_subscriptions",
+ "name": "updated_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "fingerprint_hash",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "service_name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "exception_type",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "exception_message",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "error_label",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "top_frame",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "service_versions_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "occurrence_count",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "first_seen_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "last_seen_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_fingerprint_candidates",
+ "name": "updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "issue_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "status",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "reason",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "first_triggered_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "last_triggered_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "resolved_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "occurrence_count",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "created_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_incidents",
+ "name": "updated_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "issue_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "actor_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "type",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "from_state",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "to_state",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "payload_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'{}'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_events",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "issue_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "provider",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "external_repo_id",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "repo_full_name",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "number",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "url",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "title",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "author_login",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "state",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "merged_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "merge_commit_sha",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "link_source",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "linked_by_actor_id",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_pull_requests",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "issue_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "last_observed_occurrence_at",
+ "position": 2,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "last_evaluated_at",
+ "position": 3,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "open_incident_id",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_states",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "issue_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "pull_request_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "status",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": "'waiting'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "merged_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "verify_after",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "baseline_versions_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "baseline_occurrence_count",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "baseline_rate_per_hour",
+ "position": 9,
+ "type": "double precision",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "investigation_id",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "verdict",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "verdict_note",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "post_merge_occurrence_count",
+ "position": 13,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "attempt",
+ "position": 14,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issue_verifications",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "kind",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "'error'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "source_ref_json",
+ "position": 3,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "fingerprint_hash",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "fingerprint_version",
+ "position": 5,
+ "type": "integer",
+ "notNull": true,
+ "default": "1",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "service_name",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "exception_type",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "exception_message",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "error_label",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "top_frame",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "workflow_state",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": "'triage'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "priority",
+ "position": 12,
+ "type": "integer",
+ "notNull": true,
+ "default": "3",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "severity",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "severity_source",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "assigned_actor_id",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "lease_holder_actor_id",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "lease_expires_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "claimed_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "notes",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "first_seen_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "last_seen_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "occurrence_count",
+ "position": 22,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "resolved_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "resolved_by_actor_id",
+ "position": 24,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "last_resolved_at",
+ "position": 25,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "last_regressed_at",
+ "position": 26,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "regression_count",
+ "position": 27,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "seen_versions_json",
+ "position": 28,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "resolved_versions_json",
+ "position": 29,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "snooze_until",
+ "position": 30,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "archived_at",
+ "position": 31,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "created_at",
+ "position": 32,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_issues",
+ "name": "updated_at",
+ "position": 33,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "destination_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "delivery_key",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "payload_json",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "status",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "attempt_count",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "scheduled_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "claimed_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "claim_expires_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "claimed_by",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "attempted_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "error_message",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_deliveries",
+ "name": "updated_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "enabled",
+ "position": 1,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "destination_ids_json",
+ "position": 2,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_first_seen",
+ "position": 3,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_regression",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_resolve",
+ "position": 5,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_transition_in_review",
+ "position": 6,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_transition_done",
+ "position": 7,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "notify_on_claim",
+ "position": 8,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "min_occurrence_count",
+ "position": 9,
+ "type": "integer",
+ "notNull": true,
+ "default": "1",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "severity",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'warning'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_notification_policies",
+ "name": "updated_by",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "processed_through",
+ "position": 1,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "bootstrap_completed",
+ "position": 2,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "claim_token",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "claim_expires_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "error_tick_states",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "scope_type",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "scope_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "project_id",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "logs_enabled",
+ "position": 6,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "metrics_enabled",
+ "position": 7,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "secret_ciphertext",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "secret_iv",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "secret_tag",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "secret_hash",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "last_received_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "last_error",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "applied_logs_enabled",
+ "position": 14,
+ "type": "boolean",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "applied_metrics_enabled",
+ "position": 15,
+ "type": "boolean",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "setup_reported_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "metrics_watermark_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "last_metrics_received_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "last_metrics_error",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "metrics_lease_until",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "resources_synced_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "last_resources_error",
+ "position": 22,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "created_by",
+ "position": 23,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "created_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_connectors",
+ "name": "updated_at",
+ "position": 25,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "connector_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "asset_type",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "project_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "location",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "display_name",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "state",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "labels",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "details",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "resource_created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "resource_updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "gcp_resources",
+ "name": "last_seen_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "status",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "'investigating'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "seeded_by",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": "'user'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "subject_json",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "snapshot_json",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "incident_kind",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "incident_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "issue_id",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "report_json",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "progress_json",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "severity",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "confidence",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "model",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "input_tokens",
+ "position": 14,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "output_tokens",
+ "position": 15,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "error",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "started_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "autonomous_turns",
+ "position": 18,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "created_by",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "created_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "diagnosed_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "investigations",
+ "name": "updated_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalation_policies",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalation_policies",
+ "name": "enabled",
+ "position": 1,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalation_policies",
+ "name": "rules_json",
+ "position": 2,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalation_policies",
+ "name": "updated_at",
+ "position": 3,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalation_policies",
+ "name": "updated_by",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "issue_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "severity",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "source",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "reason",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "run_id",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "investigation_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "payload_json",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'{}'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "delivery_results_json",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "status",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'queued'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "attempts",
+ "position": 11,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "dedupe_key",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "error",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "issue_escalations",
+ "name": "processed_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "device_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "incident_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "activity_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "push_token",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "ended_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "ended_reason",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "live_activities",
+ "name": "updated_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "request_id_hash",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "client_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "client_name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "redirect_uri",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "state",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "resource",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "scopes",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "code_challenge",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "authorization_code_hash",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "approved_org_id",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "approved_user_id",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "approved_roles",
+ "position": 11,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "approved_user_email",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "approved_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "denied_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "used_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "created_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_authorizations",
+ "name": "expires_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_clients",
+ "name": "client_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_clients",
+ "name": "client_name",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_clients",
+ "name": "redirect_uris",
+ "position": 2,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_clients",
+ "name": "client_uri",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_clients",
+ "name": "created_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "token_hash",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "family_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "client_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "resource",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "scopes",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "org_id",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "user_id",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "roles",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "user_email",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "access_key_id",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "replaced_by_id",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "revoked_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "expires_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "family_expires_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "user_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "platform",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "token",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "environment",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "bundle_id",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "app_version",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "live_activity_start_token",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "device_name",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "preferences",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "disabled_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "disabled_reason",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "last_pushed_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "last_seen_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "mobile_devices",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "state",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "provider",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "initiated_by_user_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "redirect_uri",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "return_to",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "code_verifier",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "created_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_auth_states",
+ "name": "expires_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "provider",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "external_user_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "external_user_email",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "external_account_name",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "granted_accounts_json",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "connected_by_user_id",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "scope",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "access_token_ciphertext",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "access_token_iv",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "access_token_tag",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "refresh_token_ciphertext",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "refresh_token_iv",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "refresh_token_tag",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "expires_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "revoked_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "created_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "oauth_connections",
+ "name": "updated_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_billing_links",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_billing_links",
+ "name": "billing_org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_billing_links",
+ "name": "linked_by",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_billing_links",
+ "name": "created_at",
+ "position": 3,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "workflow_instance_id",
+ "position": 1,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "status",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "phase",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "current_migration",
+ "position": 4,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "steps_total",
+ "position": 5,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "steps_done",
+ "position": 6,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "applied_versions",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "skipped",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "error_message",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "started_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "finished_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "created_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_schema_apply_runs",
+ "name": "updated_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_url",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_user",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_password_ciphertext",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_password_iv",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_password_tag",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "ch_database",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "sync_status",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "last_sync_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "last_sync_error",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "schema_version",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "created_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "updated_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "created_by",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_clickhouse_settings",
+ "name": "updated_by",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "source_context",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "source_key",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "target_key",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "operation",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "enabled",
+ "position": 7,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_attribute_mappings",
+ "name": "updated_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "public_key",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "public_key_hash",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "private_key_ciphertext",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "private_key_iv",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "private_key_tag",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "private_key_hash",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "public_rotated_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "private_rotated_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "created_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "updated_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "created_by",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_keys",
+ "name": "updated_by",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_settings",
+ "name": "hash_salt",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_settings",
+ "name": "created_at",
+ "position": 2,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "rule_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "bucket",
+ "position": 2,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "signal",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "matched",
+ "position": 4,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "dropped",
+ "position": 5,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "dropped_bytes",
+ "position": 6,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rule_stats",
+ "name": "redacted_values",
+ "position": 7,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "enabled",
+ "position": 3,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "position",
+ "position": 4,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "spec_json",
+ "position": 5,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "created_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_rules",
+ "name": "updated_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "trace_sample_ratio",
+ "position": 1,
+ "type": "double precision",
+ "notNull": true,
+ "default": "1",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "always_keep_error_spans",
+ "position": 2,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "always_keep_slow_spans_ms",
+ "position": 3,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "created_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_ingest_sampling_policies",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "user_id",
+ "position": 1,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "email",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "role",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "demo_data_requested",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "onboarding_completed_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "checklist_dismissed_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "first_data_received_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "welcome_email_sent_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "connect_nudge_email_sent_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "stalled_email_sent_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "activation_email_sent_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "reward_claimed_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "reward_reserved_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_onboarding_state",
+ "name": "updated_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "key_ciphertext",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "key_iv",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "key_tag",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "key_hint",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "created_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "updated_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_openrouter_keys",
+ "name": "updated_by",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "number",
+ "position": 2,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "recommendation_key",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "kind",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "source_key",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "canonical_key",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "status",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "usage_count",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "opened_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "updated_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": "now()",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_recommendation_issues",
+ "name": "resolved_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "slack_channel_id",
+ "position": 1,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "slack_channel_name",
+ "position": 2,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "reservation_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "reserved_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "created_by_user_id",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "created_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "org_support_channels",
+ "name": "updated_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "ps_organization",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "connected_by_user_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "scrape_target_id",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "webhook_secret_ciphertext",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "webhook_secret_iv",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "webhook_secret_tag",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "detected_permissions_json",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "last_inventory_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "last_inventory_error",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "created_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_connections",
+ "name": "updated_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "database_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "kind",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": "'mysql'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "state",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "region",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "plan",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "branches_json",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "webhook_id",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "webhook_secret_ciphertext",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "webhook_secret_iv",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "webhook_secret_tag",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "webhook_error",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "deleted_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_databases",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "database_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "database_name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "branch_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "category",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "event_type",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "state",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "external_id",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "title",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "source",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "actor_login",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "url",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "payload_json",
+ "position": 13,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "occurred_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_events",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_issue_receipts",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_issue_receipts",
+ "name": "event_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_issue_receipts",
+ "name": "processed_at",
+ "position": 2,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "dataset",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "database_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "enabled",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "watermark_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "last_success_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "last_error",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "last_error_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "lease_until",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "planetscale_poll_state",
+ "name": "updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "reply_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "seq",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "path",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "old_text",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "new_text",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_edits",
+ "name": "created_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "finding_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "model",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "embedding",
+ "position": 4,
+ "type": "real[]",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_finding_embeddings",
+ "name": "created_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "number",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "review_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "handle",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "path",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "line",
+ "position": 7,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "category",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "severity",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "title",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "status",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "comment_id",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "resolved_sha",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "reactions_up",
+ "position": 14,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "reactions_down",
+ "position": 15,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "created_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_findings",
+ "name": "updated_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "number",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "key",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "kind",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "title",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "source",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "path",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "status",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "done_by",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "done_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "reminded_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "first_review_id",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "last_review_id",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_merge_steps",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "number",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "comment_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "surface",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "thread_root_id",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "author_login",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "command",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "head_sha",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "status",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'queued'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "session_id",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "reply_url",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "commit_sha",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "error",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_replies",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_settings",
+ "name": "model",
+ "position": 1,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_settings",
+ "name": "defaults",
+ "position": 2,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_settings",
+ "name": "updated_at",
+ "position": 3,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_review_settings",
+ "name": "updated_by",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "repository_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "number",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "head_sha",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "base_sha",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "url",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "title",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "author_login",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "status",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "'queued'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "skip_reason",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "session_id",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "comment_attempt",
+ "position": 12,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "report_json",
+ "position": 13,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "score",
+ "position": 14,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "check_run_url",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "comment_url",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "review_url",
+ "position": 17,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "publish_error",
+ "position": 18,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "error",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "model",
+ "position": 20,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "input_tokens",
+ "position": 21,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "output_tokens",
+ "position": 22,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "started_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "finished_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "merged_at",
+ "position": 25,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "telemetry_json",
+ "position": 26,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "merge_commit_sha",
+ "position": 27,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "post_merge_status",
+ "position": 28,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "post_merge_after",
+ "position": 29,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "post_merge_json",
+ "position": 30,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "created_at",
+ "position": 31,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "pr_reviews",
+ "name": "updated_at",
+ "position": 32,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "token_ciphertext",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "token_iv",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "token_tag",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "workspace_names",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "connected_by_user_id",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "auth_failed_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "discovered_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "lease_until",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "last_success_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "last_error",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "last_error_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_connections",
+ "name": "updated_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "connection_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "project_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "project_name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "environment_id",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "environment_name",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "services_json",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": "'{}'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "enabled",
+ "position": 8,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "watermark_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "last_success_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "last_error",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "last_error_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "railway_environments",
+ "name": "updated_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "id",
+ "position": 0,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": "by default"
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "target_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "sub_target_key",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": "''",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "checked_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "error",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "duration_ms",
+ "position": 6,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "samples_scraped",
+ "position": 7,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_target_checks",
+ "name": "samples_post_relabel",
+ "position": 8,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "service_name",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "url",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "target_type",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": "'prometheus'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "discovery_config_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "scrape_interval_seconds",
+ "position": 8,
+ "type": "integer",
+ "notNull": true,
+ "default": "15",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "labels_json",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "auth_type",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'none'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "managed_by",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "auth_credentials_ciphertext",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "auth_credentials_iv",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "auth_credentials_tag",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "enabled",
+ "position": 15,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "last_scrape_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "last_scrape_error",
+ "position": 17,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "created_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "scrape_targets",
+ "name": "updated_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "run_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "at",
+ "position": 3,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "kind",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "role",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "agent_id",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "outcome",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "detail",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "input_tokens",
+ "position": 9,
+ "type": "bigint",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_events",
+ "name": "output_tokens",
+ "position": 10,
+ "type": "bigint",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "target_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "fingerprint",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "verdict",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "overall_severity",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "estimated_severity",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "record",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "status",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": "'open'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "first_seen_run_id",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "last_seen_run_id",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "first_seen_ref",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "last_seen_ref",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "fixed_run_id",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "status_reason",
+ "position": 14,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "status_changed_by",
+ "position": 15,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "status_changed_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "created_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_findings",
+ "name": "updated_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "run_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "agent_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "cost_usd",
+ "position": 3,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "sandbox_fee_usd",
+ "position": 4,
+ "type": "double precision",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_reservations",
+ "name": "created_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "org_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "monthly_spend_limit_usd",
+ "position": 1,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "discovery_model",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "validation_model",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "updated_by",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_org_settings",
+ "name": "updated_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "run_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "fingerprint",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "verdict",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "overall_severity",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "estimated_severity",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_run_findings",
+ "name": "record",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "target_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "kind",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "source_ref",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "profile",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "scope_paths",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "budget",
+ "position": 7,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "metadata",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "status",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "'in_progress'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "incomplete_reason",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "architecture_md",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "reports",
+ "position": 12,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "execution_profile",
+ "position": 13,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "invocations_spent",
+ "position": 14,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "input_tokens",
+ "position": 15,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "output_tokens",
+ "position": 16,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "cost_usd",
+ "position": 17,
+ "type": "double precision",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "sandbox_usd",
+ "position": 18,
+ "type": "double precision",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "discovery_model",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "validation_model",
+ "position": 20,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "workflow_instance_id",
+ "position": 21,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "started_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "finished_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_runs",
+ "name": "error",
+ "position": 24,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "repository",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "vcs_repository_id",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "branch",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "enabled",
+ "position": 5,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "profile",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": "'deep'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "scope_paths",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "slice_interval_hours",
+ "position": 8,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "revalidate_on_push",
+ "position": 9,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "budget_per_run",
+ "position": 10,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "monthly_invocation_budget",
+ "position": 11,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "discovery_model",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "validation_model",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "created_by",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "created_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_targets",
+ "name": "updated_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "run_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "coverage_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "status",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "wave",
+ "position": 4,
+ "type": "integer",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "agent_id",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "security_audit_units",
+ "name": "unit",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "description",
+ "position": 3,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "platform",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "kind",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "key_hash",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "key_prefix",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "allowed_signals",
+ "position": 8,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "rate_limit_rps",
+ "position": 9,
+ "type": "integer",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "resource_attributes",
+ "position": 10,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'::jsonb",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "expires_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "paused_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "paused_until",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_used_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_rejected_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_rejection",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_poll_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_poll_ok_at",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "last_poll_error",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "disconnected_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "poll_resources",
+ "position": 21,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "rolled_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "created_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "updated_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "created_by",
+ "position": 25,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "sources",
+ "name": "updated_by",
+ "position": 26,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "page_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "slug",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "delete_snapshot",
+ "position": 4,
+ "type": "boolean",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_cleanups",
+ "name": "created_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "page_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "name",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "description",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "group_name",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "position",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "monitor_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "manual_status",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "show_uptime",
+ "position": 9,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_components",
+ "name": "updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_components",
+ "name": "incident_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_components",
+ "name": "component_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_components",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "incident_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "status",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "body",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "source",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "created_by",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "overlay_entry_id",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incident_updates",
+ "name": "created_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "page_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "kind",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "title",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "impact",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "status",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "published",
+ "position": 7,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "alert_incident_id",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "scheduled_start",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "scheduled_end",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "started_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "resolved_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "created_by",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_page_incidents",
+ "name": "updated_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "slug",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "description",
+ "position": 4,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "website_url",
+ "position": 5,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "logo_url",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "privacy_url",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "terms_url",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "theme",
+ "position": 9,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'{\"preset\":\"default\",\"appearance\":\"auto\",\"accent\":null,\"background\":null,\"text\":null,\"card\":null,\"border\":null,\"radius\":\"md\",\"font\":\"sans\"}'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "show_powered_by",
+ "position": 10,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "auto_incidents",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": "'off'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "break_glass_token_sha256",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "break_glass_token_suffix",
+ "position": 13,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "draft",
+ "position": 14,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "revision",
+ "position": 15,
+ "type": "bigint",
+ "notNull": true,
+ "default": "1",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "published_revision",
+ "position": 16,
+ "type": "bigint",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "published_at",
+ "position": 17,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "last_publish_error",
+ "position": 18,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "published_hash",
+ "position": 19,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "publish_attempted_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "created_by",
+ "position": 21,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "created_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "status_pages",
+ "name": "updated_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "supabase_organization_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "supabase_organization_slug",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "supabase_organization_name",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "connected_by_user_id",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "discovery_lease_until",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "last_discovery_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "last_discovery_error",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "created_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_connections",
+ "name": "updated_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "project_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "advisors_json",
+ "position": 2,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "top_queries_json",
+ "position": 3,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "advisors_checked_at",
+ "position": 4,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "queries_checked_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "advisors_error",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "queries_error",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "lease_until",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "created_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_project_insights",
+ "name": "updated_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "connection_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "project_ref",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "region",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "status",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "metrics_enabled",
+ "position": 7,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "scrape_target_id",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drain_enabled",
+ "position": 9,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drain_id",
+ "position": 10,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drain_source_id",
+ "position": 11,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drain_error",
+ "position": 12,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drains_json",
+ "position": 13,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "log_drains_checked_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_enabled",
+ "position": 15,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_watermark_at",
+ "position": 16,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_boundary_ids",
+ "position": 17,
+ "type": "jsonb",
+ "notNull": true,
+ "default": "'[]'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_lease_until",
+ "position": 18,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_last_polled_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "logs_error",
+ "position": 20,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "last_seen_at",
+ "position": 21,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "removed_at",
+ "position": 22,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "created_at",
+ "position": 23,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "supabase_projects",
+ "name": "updated_at",
+ "position": 24,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "monitor_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "day",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "org_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "checks",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "failures",
+ "position": 4,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "down_checks",
+ "position": 5,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_daily",
+ "name": "last_check_at",
+ "position": 6,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "monitor_id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "status",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": "'pending'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "consecutive_failures",
+ "position": 3,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "consecutive_successes",
+ "position": 4,
+ "type": "integer",
+ "notNull": true,
+ "default": "0",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "status_changed_at",
+ "position": 5,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "last_check_json",
+ "position": 6,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "recent_json",
+ "position": 7,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "last_ping_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitor_states",
+ "name": "updated_at",
+ "position": 9,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "name",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "kind",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "config_json",
+ "position": 4,
+ "type": "jsonb",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "interval_seconds",
+ "position": 5,
+ "type": "integer",
+ "notNull": true,
+ "default": "60",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "failures_to_down",
+ "position": 6,
+ "type": "integer",
+ "notNull": true,
+ "default": "2",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "service_name",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "alert_rule_id",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "heartbeat_token",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "enabled",
+ "position": 10,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "created_by",
+ "position": 11,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "created_at",
+ "position": 12,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "uptime_monitors",
+ "name": "updated_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "provider",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "repository_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "sha",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "message",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "author_name",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "author_email",
+ "position": 7,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "author_login",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "author_avatar_url",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "authored_at",
+ "position": 10,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "committed_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "html_url",
+ "position": 12,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_commits",
+ "name": "created_at",
+ "position": 13,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "source_id",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "provider",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "external_installation_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "account_login",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "account_type",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "external_account_id",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "account_avatar_url",
+ "position": 8,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "repository_selection",
+ "position": 9,
+ "type": "text",
+ "notNull": true,
+ "default": "'all'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "status",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": "'active'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "suspended_at",
+ "position": 11,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "ci_traces_enabled",
+ "position": 12,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "installed_by_user_id",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "created_at",
+ "position": 14,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_installations",
+ "name": "updated_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "provider",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "installation_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "external_repo_id",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "owner",
+ "position": 5,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "name",
+ "position": 6,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "full_name",
+ "position": 7,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "default_branch",
+ "position": 8,
+ "type": "text",
+ "notNull": true,
+ "default": "'main'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "tracked_branch",
+ "position": 9,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "html_url",
+ "position": 10,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "is_private",
+ "position": 11,
+ "type": "boolean",
+ "notNull": true,
+ "default": "true",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "is_archived",
+ "position": 12,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "status",
+ "position": 13,
+ "type": "text",
+ "notNull": true,
+ "default": "'active'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "sync_status",
+ "position": 14,
+ "type": "text",
+ "notNull": true,
+ "default": "'pending'",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "last_synced_at",
+ "position": 15,
+ "type": "timestamp with time zone",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "last_sync_error",
+ "position": 16,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "pr_review_enabled",
+ "position": 17,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "pr_review_config",
+ "position": 18,
+ "type": "jsonb",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "created_at",
+ "position": 19,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repositories",
+ "name": "updated_at",
+ "position": 20,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "id",
+ "position": 0,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "org_id",
+ "position": 1,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "provider",
+ "position": 2,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "repository_id",
+ "position": 3,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "name",
+ "position": 4,
+ "type": "text",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "is_default",
+ "position": 5,
+ "type": "boolean",
+ "notNull": true,
+ "default": "false",
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "head_sha",
+ "position": 6,
+ "type": "text",
+ "notNull": false,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "created_at",
+ "position": 7,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "column",
+ "table": "vcs_repository_branches",
+ "name": "updated_at",
+ "position": 8,
+ "type": "timestamp with time zone",
+ "notNull": true,
+ "default": null,
+ "identity": null
+ },
+ {
+ "kind": "index",
+ "table": "actors",
+ "name": "actors_org_agent_name_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"agent_name\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "actors",
+ "name": "actors_org_type_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"type\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "actors",
+ "name": "actors_org_user_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "agent_feedback",
+ "name": "agent_feedback_kind_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"kind\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "agent_feedback",
+ "name": "agent_feedback_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_delivery_events",
+ "name": "alert_delivery_events_claim_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"status\"",
+ "\"claim_expires_at\"",
+ "\"scheduled_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_delivery_events",
+ "name": "alert_delivery_events_delivery_attempt_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"delivery_key\"",
+ "\"attempt_number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_delivery_events",
+ "name": "alert_delivery_events_due_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"status\"",
+ "\"scheduled_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_delivery_events",
+ "name": "alert_delivery_events_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_delivery_events",
+ "name": "alert_delivery_events_org_incident_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"incident_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_destinations",
+ "name": "alert_destinations_org_enabled_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"enabled\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_destinations",
+ "name": "alert_destinations_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_destinations",
+ "name": "alert_destinations_org_name_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"name\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_incident_key_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"incident_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_open_group_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"rule_id\"",
+ "\"group_key\""
+ ],
+ "where": "\"status\" = 'open'"
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_org_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"error_issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_org_rule_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"rule_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_incidents",
+ "name": "alert_incidents_org_status_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"status\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_linear_issues",
+ "name": "alert_linear_issues_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_linear_issues",
+ "name": "alert_linear_issues_thread_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"destination_id\"",
+ "\"thread_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_rule_claims",
+ "name": "alert_rule_claims_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_rule_states",
+ "name": "alert_rule_states_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_rules",
+ "name": "alert_rules_org_enabled_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"enabled\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_rules",
+ "name": "alert_rules_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "alert_rules",
+ "name": "alert_rules_org_name_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"name\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_detector_states",
+ "name": "anomaly_detector_states_evaluated_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"last_evaluated_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_detector_states",
+ "name": "anomaly_detector_states_open_incident_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"open_incident_id\""
+ ],
+ "where": "\"open_incident_id\" is not null"
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_incidents",
+ "name": "anomaly_incidents_open_detector_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"detector_key\""
+ ],
+ "where": "\"status\" = 'open'"
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_incidents",
+ "name": "anomaly_incidents_org_detector_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"detector_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_incidents",
+ "name": "anomaly_incidents_org_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"error_issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_incidents",
+ "name": "anomaly_incidents_org_status_triggered_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"status\"",
+ "\"last_triggered_at\"",
+ "\"id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "anomaly_incidents",
+ "name": "anomaly_incidents_org_triggered_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"last_triggered_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "api_keys",
+ "name": "api_keys_key_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"key_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "api_keys",
+ "name": "api_keys_org_id_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "aws_connections",
+ "name": "aws_connections_org_account_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"account_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "aws_connections",
+ "name": "aws_connections_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "aws_connections",
+ "name": "aws_connections_stream_secret_hash_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"stream_secret_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cancellation_reviews",
+ "name": "cancellation_reviews_subscription_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"plan_id\"",
+ "\"subscription_started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "chat_identities",
+ "name": "chat_identities_org_connector_external_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"connector\"",
+ "\"external_user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "chat_identities",
+ "name": "chat_identities_org_connector_user_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"connector\"",
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "chat_identities",
+ "name": "chat_identities_org_user_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "chat_workspaces",
+ "name": "chat_workspaces_connector_external_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"connector\"",
+ "\"external_workspace_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "chat_workspaces",
+ "name": "chat_workspaces_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cli_device_authorizations",
+ "name": "cli_device_authorizations_expires_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cli_device_authorizations",
+ "name": "cli_device_authorizations_user_code_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"user_code_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_analytics_state",
+ "name": "cf_analytics_state_org_account_dataset_zone_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"account_id\"",
+ "\"dataset\"",
+ "\"zone_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_analytics_state",
+ "name": "cf_analytics_state_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "cloudflare_hyperdrive_configs_org_config_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"config_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_hyperdrive_configs",
+ "name": "cloudflare_hyperdrive_configs_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_logpush_connectors",
+ "name": "cloudflare_logpush_connectors_org_enabled_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"enabled\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_logpush_connectors",
+ "name": "cloudflare_logpush_connectors_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_logpush_connectors",
+ "name": "cloudflare_logpush_connectors_secret_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"secret_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "cloudflare_logpush_connectors",
+ "name": "cloudflare_logpush_connectors_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_shares",
+ "name": "dashboard_shares_id_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_shares",
+ "name": "dashboard_shares_live_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"dashboard_id\"",
+ "coalesce(widget_id, '')"
+ ],
+ "where": "revoked_at is null"
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_shares",
+ "name": "dashboard_shares_org_dashboard_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"dashboard_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_shares",
+ "name": "dashboard_shares_token_hash_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"token_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_versions",
+ "name": "dashboard_versions_org_dashboard_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"dashboard_id\"",
+ "\"version_number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboard_versions",
+ "name": "dashboard_versions_org_dashboard_version_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"dashboard_id\"",
+ "\"version_number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboards",
+ "name": "dashboards_org_name_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"name\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dashboards",
+ "name": "dashboards_org_updated_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"updated_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_findings",
+ "name": "dependency_findings_key_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"lockfile_path\"",
+ "\"ecosystem\"",
+ "\"package_name\"",
+ "\"advisory_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_findings",
+ "name": "dependency_findings_org_status_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"status\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_findings",
+ "name": "dependency_findings_org_updated_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"updated_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_scan_matches",
+ "name": "dependency_scan_matches_org_scan_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"scan_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_scans",
+ "name": "dependency_scans_org_started_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_scans",
+ "name": "dependency_scans_repo_commit_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"commit_sha\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "dependency_scans",
+ "name": "dependency_scans_repo_started_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "device_credentials",
+ "name": "device_credentials_jkt_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"jkt\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "device_credentials",
+ "name": "device_credentials_live_installation_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"installation_id\""
+ ],
+ "where": "\"revoked_at\" IS NULL"
+ },
+ {
+ "kind": "index",
+ "table": "device_credentials",
+ "name": "device_credentials_user_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "device_proof_replays",
+ "name": "device_proof_replays_expires_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "digest_subscriptions",
+ "name": "digest_subscriptions_org_enabled_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"enabled\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "digest_subscriptions",
+ "name": "digest_subscriptions_org_user_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_fingerprint_candidates",
+ "name": "error_fingerprint_candidates_last_seen_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"last_seen_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_incidents",
+ "name": "error_incidents_org_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_incidents",
+ "name": "error_incidents_org_status_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"status\"",
+ "\"last_triggered_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_events",
+ "name": "error_issue_events_actor_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"actor_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_events",
+ "name": "error_issue_events_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_events",
+ "name": "error_issue_events_type_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"type\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_pull_requests",
+ "name": "error_issue_pull_requests_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_pull_requests",
+ "name": "error_issue_pull_requests_issue_pr_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\"",
+ "\"provider\"",
+ "\"repo_full_name\"",
+ "\"number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_pull_requests",
+ "name": "error_issue_pull_requests_repo_number_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"provider\"",
+ "\"repo_full_name\"",
+ "\"number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_verifications",
+ "name": "error_issue_verifications_due_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"status\"",
+ "\"verify_after\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_verifications",
+ "name": "error_issue_verifications_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issue_verifications",
+ "name": "error_issue_verifications_open_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": "\"status\" in ('waiting', 'running')"
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_lease_expiry_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"lease_expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_archived_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"archived_at\""
+ ],
+ "where": "\"archived_at\" is not null"
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_assignee_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"assigned_actor_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_fp_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"fingerprint_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_fp_version_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"fingerprint_version\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_live_seen_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"last_seen_at\"",
+ "\"id\""
+ ],
+ "where": "\"archived_at\" is null"
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_severity_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"severity\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_issues",
+ "name": "error_issues_org_workflow_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"workflow_state\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_notification_deliveries",
+ "name": "error_notification_deliveries_due_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"status\"",
+ "\"scheduled_at\"",
+ "\"claim_expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_notification_deliveries",
+ "name": "error_notification_deliveries_key_destination_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"delivery_key\"",
+ "\"destination_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_notification_deliveries",
+ "name": "error_notification_deliveries_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "error_tick_states",
+ "name": "error_tick_states_claim_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"claim_expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "gcp_connectors",
+ "name": "gcp_connectors_org_scope_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"scope_type\"",
+ "\"scope_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "gcp_connectors",
+ "name": "gcp_connectors_secret_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"secret_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "gcp_connectors",
+ "name": "gcp_connectors_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "investigations",
+ "name": "investigations_incident_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"incident_kind\"",
+ "\"incident_id\""
+ ],
+ "where": "\"incident_id\" is not null"
+ },
+ {
+ "kind": "index",
+ "table": "investigations",
+ "name": "investigations_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "investigations",
+ "name": "investigations_org_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "investigations",
+ "name": "investigations_org_status_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"status\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "issue_escalations",
+ "name": "issue_escalations_dedupe_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"dedupe_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "issue_escalations",
+ "name": "issue_escalations_due_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"status\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "issue_escalations",
+ "name": "issue_escalations_org_issue_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"issue_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "live_activities",
+ "name": "live_activities_device_incident_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"device_id\"",
+ "\"incident_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "live_activities",
+ "name": "live_activities_incident_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"incident_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mcp_oauth_authorizations",
+ "name": "mcp_oauth_authorizations_code_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"authorization_code_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mcp_oauth_authorizations",
+ "name": "mcp_oauth_authorizations_expires_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "mcp_oauth_refresh_tokens_expires_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "mcp_oauth_refresh_tokens_family_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"family_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mcp_oauth_refresh_tokens",
+ "name": "mcp_oauth_refresh_tokens_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"token_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mobile_devices",
+ "name": "mobile_devices_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mobile_devices",
+ "name": "mobile_devices_org_platform_token_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"platform\"",
+ "\"token\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "mobile_devices",
+ "name": "mobile_devices_user_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"user_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "oauth_auth_states",
+ "name": "oauth_auth_states_expires_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"expires_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "oauth_connections",
+ "name": "oauth_connections_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "oauth_connections",
+ "name": "oauth_connections_org_provider_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"provider\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "oauth_connections",
+ "name": "oauth_connections_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_billing_links",
+ "name": "org_billing_links_billing_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"billing_org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_attribute_mappings",
+ "name": "org_ingest_attribute_mappings_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_keys",
+ "name": "org_ingest_keys_private_key_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"private_key_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_keys",
+ "name": "org_ingest_keys_public_key_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"public_key_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_keys",
+ "name": "org_ingest_keys_public_key_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"public_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_rule_stats",
+ "name": "org_ingest_rule_stats_org_bucket_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"bucket\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_ingest_rules",
+ "name": "org_ingest_rules_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_recommendation_issues",
+ "name": "org_recommendation_issues_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "org_recommendation_issues",
+ "name": "org_recommendation_issues_org_key_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"recommendation_key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_connections",
+ "name": "planetscale_connections_org_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_connections",
+ "name": "planetscale_connections_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_databases",
+ "name": "planetscale_databases_org_db_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"database_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_databases",
+ "name": "planetscale_databases_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_events",
+ "name": "planetscale_events_dedupe_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"database_name\"",
+ "\"event_type\"",
+ "\"external_id\"",
+ "\"occurred_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_events",
+ "name": "planetscale_events_org_db_time_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"database_name\"",
+ "\"occurred_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_events",
+ "name": "planetscale_events_org_time_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"occurred_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_issue_receipts",
+ "name": "planetscale_issue_receipts_processed_at_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"processed_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_poll_state",
+ "name": "planetscale_poll_state_org_dataset_db_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"dataset\"",
+ "\"database_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "planetscale_poll_state",
+ "name": "planetscale_poll_state_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_edits",
+ "name": "pr_review_edits_reply_seq_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"reply_id\"",
+ "\"seq\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_finding_embeddings",
+ "name": "pr_review_finding_embeddings_org_model_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"model\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_findings",
+ "name": "pr_review_findings_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_findings",
+ "name": "pr_review_findings_pr_handle_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"number\"",
+ "\"handle\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_merge_steps",
+ "name": "pr_review_merge_steps_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_merge_steps",
+ "name": "pr_review_merge_steps_pr_key_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"number\"",
+ "\"key\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_replies",
+ "name": "pr_review_replies_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_review_replies",
+ "name": "pr_review_replies_repo_comment_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"comment_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_reviews",
+ "name": "pr_reviews_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_reviews",
+ "name": "pr_reviews_post_merge_due_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"post_merge_after\""
+ ],
+ "where": "\"post_merge_status\" = 'waiting'"
+ },
+ {
+ "kind": "index",
+ "table": "pr_reviews",
+ "name": "pr_reviews_repo_number_head_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"number\"",
+ "\"head_sha\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "pr_reviews",
+ "name": "pr_reviews_repo_number_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"number\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "railway_connections",
+ "name": "railway_connections_org_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "railway_connections",
+ "name": "railway_connections_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "railway_environments",
+ "name": "railway_environments_connection_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"connection_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "railway_environments",
+ "name": "railway_environments_org_env_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"environment_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "scrape_target_checks",
+ "name": "scrape_target_checks_target_checked_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"target_id\"",
+ "\"checked_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "scrape_targets",
+ "name": "scrape_targets_org_enabled_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"enabled\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "scrape_targets",
+ "name": "scrape_targets_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "scrape_targets",
+ "name": "scrape_targets_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_events",
+ "name": "security_audit_events_run_at_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"run_id\"",
+ "\"at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_findings",
+ "name": "security_audit_findings_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_findings",
+ "name": "security_audit_findings_target_fingerprint_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"target_id\"",
+ "\"fingerprint\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_org_reservations",
+ "name": "security_audit_org_reservations_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_runs",
+ "name": "security_audit_runs_one_running_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"target_id\""
+ ],
+ "where": "\"finished_at\" IS NULL"
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_runs",
+ "name": "security_audit_runs_org_started_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_runs",
+ "name": "security_audit_runs_target_started_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"target_id\"",
+ "\"started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_targets",
+ "name": "security_audit_targets_org_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "security_audit_targets",
+ "name": "security_audit_targets_org_repo_branch_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"repository\"",
+ "\"branch\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "sources",
+ "name": "sources_key_hash_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"key_hash\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "sources",
+ "name": "sources_org_default_kind_unique",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": "\"kind\" = 'default'"
+ },
+ {
+ "kind": "index",
+ "table": "sources",
+ "name": "sources_org_id_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_cleanups",
+ "name": "status_page_cleanups_created_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_components",
+ "name": "status_page_components_monitor_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"monitor_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_components",
+ "name": "status_page_components_page_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"page_id\"",
+ "\"position\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_incident_components",
+ "name": "status_page_incident_components_component_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"component_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_incident_updates",
+ "name": "status_page_incident_updates_incident_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"incident_id\"",
+ "\"created_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_incident_updates",
+ "name": "status_page_incident_updates_overlay_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"overlay_entry_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_incidents",
+ "name": "status_page_incidents_alert_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"alert_incident_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_page_incidents",
+ "name": "status_page_incidents_page_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"page_id\"",
+ "\"started_at\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_pages",
+ "name": "status_pages_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_pages",
+ "name": "status_pages_slug_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"slug\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "status_pages",
+ "name": "status_pages_unpublished_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"revision\"",
+ "\"published_revision\""
+ ],
+ "where": "revision > published_revision"
+ },
+ {
+ "kind": "index",
+ "table": "supabase_connections",
+ "name": "supabase_connections_org_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "supabase_connections",
+ "name": "supabase_connections_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "supabase_project_insights",
+ "name": "supabase_project_insights_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "supabase_projects",
+ "name": "supabase_projects_connection_ref_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"connection_id\"",
+ "\"project_ref\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "supabase_projects",
+ "name": "supabase_projects_log_drain_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"log_drain_source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "supabase_projects",
+ "name": "supabase_projects_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "uptime_monitor_daily",
+ "name": "uptime_monitor_daily_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "uptime_monitor_states",
+ "name": "uptime_monitor_states_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "uptime_monitors",
+ "name": "uptime_monitors_enabled_kind_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"enabled\"",
+ "\"kind\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "uptime_monitors",
+ "name": "uptime_monitors_heartbeat_token_unq",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"heartbeat_token\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "uptime_monitors",
+ "name": "uptime_monitors_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_commits",
+ "name": "vcs_commits_org_sha_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"sha\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_commits",
+ "name": "vcs_commits_repo_sha_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"sha\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_installations",
+ "name": "vcs_installations_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_installations",
+ "name": "vcs_installations_provider_external_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"provider\"",
+ "\"external_installation_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_installations",
+ "name": "vcs_installations_source_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"source_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_repositories",
+ "name": "vcs_repositories_installation_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"installation_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_repositories",
+ "name": "vcs_repositories_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_repositories",
+ "name": "vcs_repositories_org_repo_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"org_id\"",
+ "\"provider\"",
+ "\"external_repo_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_repository_branches",
+ "name": "vcs_repository_branches_org_idx",
+ "unique": false,
+ "method": "btree",
+ "columns": [
+ "\"org_id\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "index",
+ "table": "vcs_repository_branches",
+ "name": "vcs_repository_branches_repo_name_idx",
+ "unique": true,
+ "method": "btree",
+ "columns": [
+ "\"repository_id\"",
+ "\"name\""
+ ],
+ "where": null
+ },
+ {
+ "kind": "foreign_key",
+ "table": "alert_linear_issues",
+ "name": "alert_linear_issues_destination_id_alert_destinations_id_fk",
+ "columns": [
+ "destination_id"
+ ],
+ "foreignTable": "alert_destinations",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "aws_connections",
+ "name": "aws_connections_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "cloudflare_logpush_connectors",
+ "name": "cloudflare_logpush_connectors_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "SET NULL",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "dashboard_shares",
+ "name": "dashboard_shares_dashboard_fk",
+ "columns": [
+ "org_id",
+ "dashboard_id"
+ ],
+ "foreignTable": "dashboards",
+ "foreignColumns": [
+ "org_id",
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "gcp_connectors",
+ "name": "gcp_connectors_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "gcp_resources",
+ "name": "gcp_resources_connector_id_gcp_connectors_id_fk",
+ "columns": [
+ "connector_id"
+ ],
+ "foreignTable": "gcp_connectors",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "oauth_connections",
+ "name": "oauth_connections_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "planetscale_connections",
+ "name": "planetscale_connections_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "railway_connections",
+ "name": "railway_connections_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "scrape_target_checks",
+ "name": "scrape_target_checks_target_id_scrape_targets_id_fk",
+ "columns": [
+ "target_id"
+ ],
+ "foreignTable": "scrape_targets",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "scrape_targets",
+ "name": "scrape_targets_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_components",
+ "name": "status_page_components_monitor_id_uptime_monitors_id_fk",
+ "columns": [
+ "monitor_id"
+ ],
+ "foreignTable": "uptime_monitors",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "SET NULL",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_components",
+ "name": "status_page_components_page_id_status_pages_id_fk",
+ "columns": [
+ "page_id"
+ ],
+ "foreignTable": "status_pages",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_incident_components",
+ "name": "status_page_incident_components_Bnqlt6wwKJty_fk",
+ "columns": [
+ "component_id"
+ ],
+ "foreignTable": "status_page_components",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_incident_components",
+ "name": "status_page_incident_components_tBn6mEz4FenY_fk",
+ "columns": [
+ "incident_id"
+ ],
+ "foreignTable": "status_page_incidents",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_incident_updates",
+ "name": "status_page_incident_updates_3LDDUAhznHPM_fk",
+ "columns": [
+ "incident_id"
+ ],
+ "foreignTable": "status_page_incidents",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "status_page_incidents",
+ "name": "status_page_incidents_page_id_status_pages_id_fk",
+ "columns": [
+ "page_id"
+ ],
+ "foreignTable": "status_pages",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "supabase_connections",
+ "name": "supabase_connections_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "supabase_project_insights",
+ "name": "supabase_project_insights_project_id_supabase_projects_id_fk",
+ "columns": [
+ "project_id"
+ ],
+ "foreignTable": "supabase_projects",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "supabase_projects",
+ "name": "supabase_projects_connection_id_supabase_connections_id_fk",
+ "columns": [
+ "connection_id"
+ ],
+ "foreignTable": "supabase_connections",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "supabase_projects",
+ "name": "supabase_projects_log_drain_source_id_sources_id_fk",
+ "columns": [
+ "log_drain_source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "SET NULL",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "uptime_monitor_daily",
+ "name": "uptime_monitor_daily_monitor_id_uptime_monitors_id_fk",
+ "columns": [
+ "monitor_id"
+ ],
+ "foreignTable": "uptime_monitors",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "uptime_monitor_states",
+ "name": "uptime_monitor_states_monitor_id_uptime_monitors_id_fk",
+ "columns": [
+ "monitor_id"
+ ],
+ "foreignTable": "uptime_monitors",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ },
+ {
+ "kind": "foreign_key",
+ "table": "vcs_installations",
+ "name": "vcs_installations_source_id_sources_id_fk",
+ "columns": [
+ "source_id"
+ ],
+ "foreignTable": "sources",
+ "foreignColumns": [
+ "id"
+ ],
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION"
+ }
+ ]
+}
diff --git a/packages/db/src/tables/dependency-scan.ts b/packages/db/src/tables/dependency-scan.ts
new file mode 100644
index 0000000000..706385bbdd
--- /dev/null
+++ b/packages/db/src/tables/dependency-scan.ts
@@ -0,0 +1,123 @@
+import * as PG from "@maple-dev/effect-orm/postgres"
+import {
+ DependencyFindingId,
+ DependencyFindingStatus,
+ DependencyRelation,
+ DependencyScanId,
+ DependencyScanLockfile,
+ DependencyScanStatus,
+ DependencyScanTrigger,
+} from "@maple/domain/dependency-scan"
+import { GitCommitSha, VcsRepositoryId } from "@maple/domain/http/vcs"
+import { AdvisorySeverity, PackageEcosystem } from "@maple/domain/package-advisories"
+import { OrgId, UserId } from "@maple/domain/primitives"
+import { Schema } from "effect"
+
+// Dependency vulnerability scans. No FKs (house style): the store enforces the links and always
+// filters by org.
+
+const Strings = Schema.Array(Schema.String)
+
+/** One scan of a repository's lockfiles at one commit. Only a default-branch head reconciles findings. */
+export const DependencyScans = PG.table("dependency_scans", {
+ columns: {
+ id: PG.brand(PG.text, DependencyScanId),
+ orgId: PG.column(PG.brand(PG.text, OrgId), { name: "org_id" }),
+ repositoryId: PG.column(PG.brand(PG.text, VcsRepositoryId), { name: "repository_id" }),
+ commitSha: PG.column(PG.brand(PG.text, GitCommitSha), { name: "commit_sha" }),
+ /** The branch the commit was scanned on; null for a bare commit. */
+ ref: PG.nullable(PG.text),
+ trigger: PG.brand(PG.text, DependencyScanTrigger),
+ defaultBranchHead: PG.column(PG.bool, { name: "default_branch_head" }),
+ status: PG.column(PG.brand(PG.text, DependencyScanStatus), { default: "running" }),
+ lockfiles: PG.jsonb(Schema.Array(DependencyScanLockfile)),
+ packageCount: PG.column(PG.int4, { name: "package_count", default: 0 }),
+ vulnerableCount: PG.column(PG.int4, { name: "vulnerable_count", default: 0 }),
+ error: PG.nullable(PG.text),
+ startedAt: PG.column(PG.timestamptzMillis, { name: "started_at" }),
+ finishedAt: PG.column(PG.nullable(PG.timestamptzMillis), { name: "finished_at" }),
+ },
+ primaryKey: ["id"],
+ indexes: [
+ PG.index("dependency_scans_org_started_idx", ["orgId", "startedAt"]),
+ PG.index("dependency_scans_repo_started_idx", ["repositoryId", "startedAt"]),
+ PG.index("dependency_scans_repo_commit_idx", ["repositoryId", "commitSha"]),
+ ],
+ tenantColumn: "orgId",
+})
+
+/** The vulnerable packages one scan found, kept per scan so an older commit's exposure stays readable. */
+export const DependencyScanMatches = PG.table("dependency_scan_matches", {
+ columns: {
+ scanId: PG.column(PG.brand(PG.text, DependencyScanId), { name: "scan_id" }),
+ orgId: PG.column(PG.brand(PG.text, OrgId), { name: "org_id" }),
+ lockfilePath: PG.column(PG.text, { name: "lockfile_path" }),
+ ecosystem: PG.brand(PG.text, PackageEcosystem),
+ packageName: PG.column(PG.text, { name: "package_name" }),
+ version: PG.text,
+ relation: PG.brand(PG.text, DependencyRelation),
+ /** The OSV id. */
+ advisoryId: PG.column(PG.text, { name: "advisory_id" }),
+ aliases: PG.jsonb(Strings),
+ severity: PG.brand(PG.text, AdvisorySeverity),
+ summary: PG.nullable(PG.text),
+ fixedIn: PG.column(PG.nullable(PG.text), { name: "fixed_in" }),
+ },
+ primaryKey: ["scanId", "lockfilePath", "ecosystem", "packageName", "version", "advisoryId"],
+ indexes: [PG.index("dependency_scan_matches_org_scan_idx", ["orgId", "scanId"])],
+ tenantColumn: "orgId",
+})
+
+/**
+ * An advisory on a package in one lockfile of a repository, followed across default-branch scans.
+ * A `fixed` finding that comes back reopens; a dismissed or accepted one never does.
+ */
+export const DependencyFindings = PG.table("dependency_findings", {
+ columns: {
+ id: PG.brand(PG.text, DependencyFindingId),
+ orgId: PG.column(PG.brand(PG.text, OrgId), { name: "org_id" }),
+ repositoryId: PG.column(PG.brand(PG.text, VcsRepositoryId), { name: "repository_id" }),
+ lockfilePath: PG.column(PG.text, { name: "lockfile_path" }),
+ ecosystem: PG.brand(PG.text, PackageEcosystem),
+ packageName: PG.column(PG.text, { name: "package_name" }),
+ advisoryId: PG.column(PG.text, { name: "advisory_id" }),
+ aliases: PG.jsonb(Strings),
+ severity: PG.brand(PG.text, AdvisorySeverity),
+ summary: PG.nullable(PG.text),
+ /** The installed versions the advisory affects, as the latest scan saw them. */
+ versions: PG.jsonb(Strings),
+ fixedIn: PG.column(PG.nullable(PG.text), { name: "fixed_in" }),
+ /** The strongest relation across `versions`. */
+ relation: PG.brand(PG.text, DependencyRelation),
+ status: PG.column(PG.brand(PG.text, DependencyFindingStatus), { default: "open" }),
+ firstSeenScanId: PG.column(PG.brand(PG.text, DependencyScanId), { name: "first_seen_scan_id" }),
+ lastSeenScanId: PG.column(PG.brand(PG.text, DependencyScanId), { name: "last_seen_scan_id" }),
+ firstSeenSha: PG.column(PG.brand(PG.text, GitCommitSha), { name: "first_seen_sha" }),
+ lastSeenSha: PG.column(PG.brand(PG.text, GitCommitSha), { name: "last_seen_sha" }),
+ /** The scan that no longer matched it; cleared when it comes back. */
+ fixedScanId: PG.column(PG.nullable(PG.brand(PG.text, DependencyScanId)), { name: "fixed_scan_id" }),
+ fixedSha: PG.column(PG.nullable(PG.brand(PG.text, GitCommitSha)), { name: "fixed_sha" }),
+ statusReason: PG.column(PG.nullable(PG.text), { name: "status_reason" }),
+ statusChangedBy: PG.column(PG.nullable(PG.brand(PG.text, UserId)), { name: "status_changed_by" }),
+ statusChangedAt: PG.column(PG.nullable(PG.timestamptzMillis), { name: "status_changed_at" }),
+ createdAt: PG.column(PG.timestamptzMillis, { name: "created_at" }),
+ updatedAt: PG.column(PG.timestamptzMillis, { name: "updated_at" }),
+ },
+ primaryKey: ["id"],
+ indexes: [
+ PG.uniqueIndex("dependency_findings_key_idx", [
+ "repositoryId",
+ "lockfilePath",
+ "ecosystem",
+ "packageName",
+ "advisoryId",
+ ]),
+ PG.index("dependency_findings_org_status_idx", ["orgId", "status"]),
+ PG.index("dependency_findings_org_updated_idx", ["orgId", "updatedAt"]),
+ ],
+ tenantColumn: "orgId",
+})
+
+export type DependencyScanRow = PG.SelectRowOf
+export type DependencyScanMatchRow = PG.SelectRowOf
+export type DependencyFindingRow = PG.SelectRowOf
diff --git a/packages/db/src/tables/index.ts b/packages/db/src/tables/index.ts
index b26da0e0b1..eee038201d 100644
--- a/packages/db/src/tables/index.ts
+++ b/packages/db/src/tables/index.ts
@@ -76,6 +76,7 @@ import {
SecurityAuditTargets,
SecurityAuditUnits,
} from "./security-audit"
+import { DependencyFindings, DependencyScanMatches, DependencyScans } from "./dependency-scan"
import { SupabaseConnections, SupabaseProjectInsights, SupabaseProjects } from "./supabase"
import { OrgSupportChannels } from "./support-channels"
import {
@@ -108,6 +109,7 @@ export * from "./anomalies"
export * from "./api-keys"
export * from "./billing-links"
export * from "./cancellation-reviews"
+export * from "./dependency-scan"
export * from "./chat-identities"
export * from "./chat-workspaces"
export * from "./cli-device-authorizations"
@@ -233,6 +235,9 @@ export const allTables: ReadonlyArray>
SecurityAuditEvents,
SecurityAuditOrgReservations,
SecurityAuditOrgSettings,
+ DependencyScans,
+ DependencyScanMatches,
+ DependencyFindings,
SupabaseConnections,
SupabaseProjects,
SupabaseProjectInsights,
diff --git a/packages/domain/package.json b/packages/domain/package.json
index e27f022067..fc9663f859 100644
--- a/packages/domain/package.json
+++ b/packages/domain/package.json
@@ -46,6 +46,7 @@
"./raw-sql": "./src/raw-sql.ts",
"./recommendations": "./src/recommendations.ts",
"./sandbox": "./src/sandbox.ts",
+ "./dependency-scan": "./src/dependency-scan.ts",
"./security-audit": "./src/security-audit.ts",
"./onboarding-checklist": "./src/onboarding-checklist.ts",
"./setup-audit": "./src/setup-audit.ts",
diff --git a/packages/domain/src/dependency-scan.ts b/packages/domain/src/dependency-scan.ts
new file mode 100644
index 0000000000..c3f7d48a03
--- /dev/null
+++ b/packages/domain/src/dependency-scan.ts
@@ -0,0 +1,109 @@
+/**
+ * Identifiers and states of the dependency scanner: a scan reads a repository's lockfiles at one
+ * commit, matches the packages against OSV advisories, and follows each match as a finding.
+ */
+import { Schema } from "effect"
+import { GitCommitSha, VcsRepositoryId } from "./http/vcs"
+import { UserId } from "./primitives"
+import { AdvisorySeverity, PackageEcosystem } from "./package-advisories"
+import { SecurityAuditFindingStatus } from "./security-audit"
+
+export const DependencyScanId = Schema.String.check(Schema.isUUID()).pipe(
+ Schema.brand("@maple/DependencyScanId"),
+ Schema.annotate({ identifier: "@maple/DependencyScanId", title: "Dependency Scan ID" }),
+)
+export type DependencyScanId = Schema.Schema.Type
+
+/** Derived from the finding's key, so the same advisory on the same package keeps its id. */
+export const DependencyFindingId = Schema.String.check(Schema.isPattern(/^[0-9a-f]{32}$/u)).pipe(
+ Schema.brand("@maple/DependencyFindingId"),
+ Schema.annotate({ identifier: "@maple/DependencyFindingId", title: "Dependency Finding ID" }),
+)
+export type DependencyFindingId = Schema.Schema.Type
+
+/** What started a scan; only a default-branch head reconciles findings. */
+export const DependencyScanTrigger = Schema.Literals(["push", "schedule", "manual", "production"])
+export type DependencyScanTrigger = typeof DependencyScanTrigger.Type
+
+export const DependencyScanStatus = Schema.Literals(["running", "completed", "failed"])
+export type DependencyScanStatus = typeof DependencyScanStatus.Type
+
+/** How the lockfile's root depends on the package; `unknown` where the format does not say. */
+export const DependencyRelation = Schema.Literals(["direct", "dev", "transitive", "unknown"])
+export type DependencyRelation = typeof DependencyRelation.Type
+
+/** Lockfile formats, as `@maple/lockfiles` names them. */
+export const DependencyLockfileKind = Schema.Literals([
+ "package-lock",
+ "pnpm-lock",
+ "yarn-v1",
+ "yarn-berry",
+ "bun-lock",
+ "bun-lockb",
+ "go-mod",
+ "go-sum",
+ "cargo-lock",
+])
+export type DependencyLockfileKind = typeof DependencyLockfileKind.Type
+
+/**
+ * Only a `parsed` lockfile lets its findings be marked fixed when they are no longer matched.
+ * `skipped` is past the lockfiles a scan reads.
+ */
+export const DependencyLockfileStatus = Schema.Literals([
+ "parsed",
+ "unsupported",
+ "too_large",
+ "failed",
+ "skipped",
+])
+export type DependencyLockfileStatus = typeof DependencyLockfileStatus.Type
+
+/** One lockfile a scan read, as stored on the scan row. */
+export const DependencyScanLockfile = Schema.Struct({
+ path: Schema.String,
+ kind: DependencyLockfileKind,
+ blobSha: Schema.String,
+ packageCount: Schema.Int,
+ status: DependencyLockfileStatus,
+ message: Schema.NullOr(Schema.String),
+})
+export type DependencyScanLockfile = typeof DependencyScanLockfile.Type
+
+/** The audit lifecycle: `fixed` reopens when the advisory comes back, a triaged one never does. */
+export const DependencyFindingStatus = SecurityAuditFindingStatus
+export type DependencyFindingStatus = SecurityAuditFindingStatus
+
+/** What a person may set; `fixed` comes only from a scan that no longer matches it. */
+export const DependencyFindingTriageStatus = Schema.Literals(["open", "dismissed", "accepted_risk"])
+export type DependencyFindingTriageStatus = typeof DependencyFindingTriageStatus.Type
+
+/** A finding on the wire; timestamps are epoch ms. */
+export const DependencyFinding = Schema.Struct({
+ id: DependencyFindingId,
+ repositoryId: VcsRepositoryId,
+ lockfilePath: Schema.String,
+ ecosystem: PackageEcosystem,
+ packageName: Schema.String,
+ advisoryId: Schema.String,
+ aliases: Schema.Array(Schema.String),
+ severity: AdvisorySeverity,
+ summary: Schema.optionalKey(Schema.String),
+ /** The installed versions the advisory affects. */
+ versions: Schema.Array(Schema.String),
+ fixedIn: Schema.optionalKey(Schema.String),
+ relation: DependencyRelation,
+ status: DependencyFindingStatus,
+ firstSeenScanId: DependencyScanId,
+ lastSeenScanId: DependencyScanId,
+ firstSeenSha: GitCommitSha,
+ lastSeenSha: GitCommitSha,
+ fixedScanId: Schema.optionalKey(DependencyScanId),
+ fixedSha: Schema.optionalKey(GitCommitSha),
+ statusReason: Schema.optionalKey(Schema.String),
+ statusChangedBy: Schema.optionalKey(UserId),
+ statusChangedAt: Schema.optionalKey(Schema.Finite),
+ createdAt: Schema.Finite,
+ updatedAt: Schema.Finite,
+})
+export type DependencyFinding = typeof DependencyFinding.Type
diff --git a/packages/domain/src/package-advisories.ts b/packages/domain/src/package-advisories.ts
index d5d5547074..c08ef58bb2 100644
--- a/packages/domain/src/package-advisories.ts
+++ b/packages/domain/src/package-advisories.ts
@@ -9,6 +9,7 @@ export const PackageEcosystem = Schema.Literals(PACKAGE_ECOSYSTEMS)
export type PackageEcosystem = typeof PackageEcosystem.Type
export const AdvisorySeverity = Schema.Literals(ADVISORY_SEVERITIES)
+export type AdvisorySeverity = typeof AdvisorySeverity.Type
export const PackageAdvisory = Schema.Struct({
/** Stable across scans: the GitHub advisory id when OSV has one, else the first OSV id. */