/ opencodehub / src / db / schema / deploy-keys.ts
swadhinbiswas feat: OpenCodeHub v1.1.0 - Enterprise Features & Storage Adapters · 2/15/2026
719a1cb
35 lines · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 * Deploy Keys Schema - Drizzle ORM
 * Defines SSH deploy keys for repositories
 */

import { relations } from "drizzle-orm";
import { boolean, pgTable, text, timestamp } from "drizzle-orm/pg-core";
import { repositories } from "./repositories";

export const deployKeys = pgTable("deploy_keys", {
    id: text("id").primaryKey(),
    repositoryId: text("repository_id")
        .notNull()
        .references(() => repositories.id, { onDelete: "cascade" }),
    title: text("title").notNull(),
    key: text("key").notNull(),
    fingerprint: text("fingerprint").notNull(),
    readOnly: boolean("read_only").default(true).notNull(),
    createdAt: timestamp("created_at").notNull().defaultNow(),
    lastUsedAt: timestamp("last_used_at"),
});

export const deployKeysRelations = relations(
    deployKeys,
    ({ one }) => ({
        repository: one(repositories, {
            fields: [deployKeys.repositoryId],
            references: [repositories.id],
        }),
    })
);

export type DeployKey = typeof deployKeys.$inferSelect;
export type NewDeployKey = typeof deployKeys.$inferInsert;