mirror of
https://github.com/tale/headplane.git
synced 2026-07-26 07:48:14 +00:00
feat: upgrade to node 24 and drizzle
This commit is contained in:
@@ -1,28 +1,30 @@
|
|||||||
import { mkdir } from 'node:fs/promises';
|
import { mkdir } from "node:fs/promises";
|
||||||
import { dirname, resolve } from 'node:path';
|
import { dirname, resolve } from "node:path";
|
||||||
import { migrate } from 'drizzle-orm/libsql/migrator';
|
|
||||||
import { drizzle } from 'drizzle-orm/libsql/sqlite3';
|
import { drizzle } from "drizzle-orm/node-sqlite";
|
||||||
import log from '~/utils/log';
|
import { migrate } from "drizzle-orm/node-sqlite/migrator";
|
||||||
|
|
||||||
|
import log from "~/utils/log";
|
||||||
|
|
||||||
export async function createDbClient(path: string) {
|
export async function createDbClient(path: string) {
|
||||||
const realPath = resolve(path);
|
const realPath = resolve(path);
|
||||||
try {
|
try {
|
||||||
await mkdir(dirname(realPath), { recursive: true });
|
await mkdir(dirname(realPath), { recursive: true });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log.error(
|
log.error(
|
||||||
'server',
|
"server",
|
||||||
'Failed to create directory for database at %s: %s',
|
"Failed to create directory for database at %s: %s",
|
||||||
realPath,
|
realPath,
|
||||||
error instanceof Error ? error.message : String(error),
|
error instanceof Error ? error.message : String(error),
|
||||||
);
|
);
|
||||||
throw new Error(`Could not create directory for database at ${realPath}`);
|
throw new Error(`Could not create directory for database at ${realPath}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Turn the path into a URL with the file protocol
|
// Turn the path into a URL with the file protocol
|
||||||
const db = drizzle(`file://${realPath}`);
|
const db = drizzle(`file://${realPath}`);
|
||||||
migrate(db, {
|
migrate(db, {
|
||||||
migrationsFolder: './drizzle',
|
migrationsFolder: "./drizzle",
|
||||||
});
|
});
|
||||||
|
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"dialect": "sqlite",
|
||||||
|
"id": "ab03ffcd-9aa5-4b4b-9f38-322acc6899a3",
|
||||||
|
"prevIds": ["00000000-0000-0000-0000-000000000000"],
|
||||||
|
"version": "7",
|
||||||
|
"ddl": [
|
||||||
|
{
|
||||||
|
"name": "ephemeral_nodes",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "auth_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["auth_key"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "ephemeral_nodes_pk",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "node_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renames": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"dialect": "sqlite",
|
||||||
|
"id": "16f780a3-a6e7-4810-94bb-fad5c6446ab4",
|
||||||
|
"prevIds": ["ab03ffcd-9aa5-4b4b-9f38-322acc6899a3"],
|
||||||
|
"version": "7",
|
||||||
|
"ddl": [
|
||||||
|
{
|
||||||
|
"name": "ephemeral_nodes",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "auth_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["auth_key"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "ephemeral_nodes_pk",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "node_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "host_info",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "host_id",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["host_id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "host_info_pk",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "payload",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renames": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
{
|
||||||
|
"dialect": "sqlite",
|
||||||
|
"id": "2c18fbcb-d5f5-47c0-962d-54121cbb2e71",
|
||||||
|
"prevIds": ["16f780a3-a6e7-4810-94bb-fad5c6446ab4"],
|
||||||
|
"version": "7",
|
||||||
|
"ddl": [
|
||||||
|
{
|
||||||
|
"name": "ephemeral_nodes",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "auth_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["auth_key"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "ephemeral_nodes_pk",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "node_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "host_info",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "host_id",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["host_id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "host_info_pk",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "payload",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "id",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "users_pk",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "sub",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "0",
|
||||||
|
"generated": null,
|
||||||
|
"name": "caps",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "false",
|
||||||
|
"generated": null,
|
||||||
|
"name": "onboarded",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"value": "sub",
|
||||||
|
"isExpression": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": true,
|
||||||
|
"where": null,
|
||||||
|
"origin": "manual",
|
||||||
|
"name": "users_sub_unique",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "indexes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renames": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,291 @@
|
|||||||
|
{
|
||||||
|
"dialect": "sqlite",
|
||||||
|
"id": "e397c1d9-19a4-494a-9b87-5a94a093286a",
|
||||||
|
"prevIds": ["2c18fbcb-d5f5-47c0-962d-54121cbb2e71"],
|
||||||
|
"version": "7",
|
||||||
|
"ddl": [
|
||||||
|
{
|
||||||
|
"name": "auth_sessions",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "id",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "auth_sessions_pk",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "kind",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "user_id",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "api_key_hash",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "api_key_display",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "expires_at",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "created_at",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ephemeral_nodes",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "auth_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["auth_key"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "ephemeral_nodes_pk",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "node_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "host_info",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "host_id",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["host_id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "host_info_pk",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "payload",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "id",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "users_pk",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "sub",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "'member'",
|
||||||
|
"generated": null,
|
||||||
|
"name": "role",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "headscale_user_id",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "false",
|
||||||
|
"generated": null,
|
||||||
|
"name": "onboarded",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "created_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "last_login_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "0",
|
||||||
|
"generated": null,
|
||||||
|
"name": "caps",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"value": "sub",
|
||||||
|
"isExpression": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": true,
|
||||||
|
"where": null,
|
||||||
|
"origin": "manual",
|
||||||
|
"name": "users_sub_unique",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "indexes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"value": "headscale_user_id",
|
||||||
|
"isExpression": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": true,
|
||||||
|
"where": null,
|
||||||
|
"origin": "manual",
|
||||||
|
"name": "users_headscale_user_id_unique",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "indexes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renames": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,301 @@
|
|||||||
|
{
|
||||||
|
"dialect": "sqlite",
|
||||||
|
"id": "6d6838a7-e7ab-4661-bc7d-b47566bfff13",
|
||||||
|
"prevIds": ["e397c1d9-19a4-494a-9b87-5a94a093286a"],
|
||||||
|
"version": "7",
|
||||||
|
"ddl": [
|
||||||
|
{
|
||||||
|
"name": "auth_sessions",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "id",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "auth_sessions_pk",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "kind",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "user_id",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "api_key_hash",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "api_key_display",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "expires_at",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "created_at",
|
||||||
|
"table": "auth_sessions",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ephemeral_nodes",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "auth_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["auth_key"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "ephemeral_nodes_pk",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "node_key",
|
||||||
|
"table": "ephemeral_nodes",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "host_info",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "host_id",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["host_id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "host_info_pk",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "payload",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "host_info",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "users",
|
||||||
|
"entityType": "tables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "id",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": ["id"],
|
||||||
|
"nameExplicit": false,
|
||||||
|
"name": "users_pk",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "pks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "sub",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "name",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "email",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "'member'",
|
||||||
|
"generated": null,
|
||||||
|
"name": "role",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "headscale_user_id",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "created_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "updated_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": false,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": null,
|
||||||
|
"generated": null,
|
||||||
|
"name": "last_login_at",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"notNull": true,
|
||||||
|
"autoincrement": false,
|
||||||
|
"default": "0",
|
||||||
|
"generated": null,
|
||||||
|
"name": "caps",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "columns"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"value": "sub",
|
||||||
|
"isExpression": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": true,
|
||||||
|
"where": null,
|
||||||
|
"origin": "manual",
|
||||||
|
"name": "users_sub_unique",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "indexes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"value": "headscale_user_id",
|
||||||
|
"isExpression": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": true,
|
||||||
|
"where": null,
|
||||||
|
"origin": "manual",
|
||||||
|
"name": "users_headscale_user_id_unique",
|
||||||
|
"table": "users",
|
||||||
|
"entityType": "indexes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"renames": []
|
||||||
|
}
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "ab03ffcd-9aa5-4b4b-9f38-322acc6899a3",
|
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
|
||||||
"tables": {
|
|
||||||
"ephemeral_nodes": {
|
|
||||||
"name": "ephemeral_nodes",
|
|
||||||
"columns": {
|
|
||||||
"auth_key": {
|
|
||||||
"name": "auth_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"node_key": {
|
|
||||||
"name": "node_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "16f780a3-a6e7-4810-94bb-fad5c6446ab4",
|
|
||||||
"prevId": "ab03ffcd-9aa5-4b4b-9f38-322acc6899a3",
|
|
||||||
"tables": {
|
|
||||||
"ephemeral_nodes": {
|
|
||||||
"name": "ephemeral_nodes",
|
|
||||||
"columns": {
|
|
||||||
"auth_key": {
|
|
||||||
"name": "auth_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"node_key": {
|
|
||||||
"name": "node_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"host_info": {
|
|
||||||
"name": "host_info",
|
|
||||||
"columns": {
|
|
||||||
"host_id": {
|
|
||||||
"name": "host_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"payload": {
|
|
||||||
"name": "payload",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "2c18fbcb-d5f5-47c0-962d-54121cbb2e71",
|
|
||||||
"prevId": "16f780a3-a6e7-4810-94bb-fad5c6446ab4",
|
|
||||||
"tables": {
|
|
||||||
"ephemeral_nodes": {
|
|
||||||
"name": "ephemeral_nodes",
|
|
||||||
"columns": {
|
|
||||||
"auth_key": {
|
|
||||||
"name": "auth_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"node_key": {
|
|
||||||
"name": "node_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"host_info": {
|
|
||||||
"name": "host_info",
|
|
||||||
"columns": {
|
|
||||||
"host_id": {
|
|
||||||
"name": "host_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"payload": {
|
|
||||||
"name": "payload",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"users": {
|
|
||||||
"name": "users",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"sub": {
|
|
||||||
"name": "sub",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"caps": {
|
|
||||||
"name": "caps",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"onboarded": {
|
|
||||||
"name": "onboarded",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"users_sub_unique": {
|
|
||||||
"name": "users_sub_unique",
|
|
||||||
"columns": ["sub"],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "e397c1d9-19a4-494a-9b87-5a94a093286a",
|
|
||||||
"prevId": "2c18fbcb-d5f5-47c0-962d-54121cbb2e71",
|
|
||||||
"tables": {
|
|
||||||
"auth_sessions": {
|
|
||||||
"name": "auth_sessions",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"kind": {
|
|
||||||
"name": "kind",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"api_key_hash": {
|
|
||||||
"name": "api_key_hash",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"api_key_display": {
|
|
||||||
"name": "api_key_display",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"expires_at": {
|
|
||||||
"name": "expires_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"ephemeral_nodes": {
|
|
||||||
"name": "ephemeral_nodes",
|
|
||||||
"columns": {
|
|
||||||
"auth_key": {
|
|
||||||
"name": "auth_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"node_key": {
|
|
||||||
"name": "node_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"host_info": {
|
|
||||||
"name": "host_info",
|
|
||||||
"columns": {
|
|
||||||
"host_id": {
|
|
||||||
"name": "host_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"payload": {
|
|
||||||
"name": "payload",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"users": {
|
|
||||||
"name": "users",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"sub": {
|
|
||||||
"name": "sub",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": "'member'"
|
|
||||||
},
|
|
||||||
"headscale_user_id": {
|
|
||||||
"name": "headscale_user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"onboarded": {
|
|
||||||
"name": "onboarded",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"last_login_at": {
|
|
||||||
"name": "last_login_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"caps": {
|
|
||||||
"name": "caps",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"users_sub_unique": {
|
|
||||||
"name": "users_sub_unique",
|
|
||||||
"columns": ["sub"],
|
|
||||||
"isUnique": true
|
|
||||||
},
|
|
||||||
"users_headscale_user_id_unique": {
|
|
||||||
"name": "users_headscale_user_id_unique",
|
|
||||||
"columns": ["headscale_user_id"],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,225 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "6d6838a7-e7ab-4661-bc7d-b47566bfff13",
|
|
||||||
"prevId": "e397c1d9-19a4-494a-9b87-5a94a093286a",
|
|
||||||
"tables": {
|
|
||||||
"auth_sessions": {
|
|
||||||
"name": "auth_sessions",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"kind": {
|
|
||||||
"name": "kind",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"api_key_hash": {
|
|
||||||
"name": "api_key_hash",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"api_key_display": {
|
|
||||||
"name": "api_key_display",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"expires_at": {
|
|
||||||
"name": "expires_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"ephemeral_nodes": {
|
|
||||||
"name": "ephemeral_nodes",
|
|
||||||
"columns": {
|
|
||||||
"auth_key": {
|
|
||||||
"name": "auth_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"node_key": {
|
|
||||||
"name": "node_key",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"host_info": {
|
|
||||||
"name": "host_info",
|
|
||||||
"columns": {
|
|
||||||
"host_id": {
|
|
||||||
"name": "host_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"payload": {
|
|
||||||
"name": "payload",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"users": {
|
|
||||||
"name": "users",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"sub": {
|
|
||||||
"name": "sub",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": "'member'"
|
|
||||||
},
|
|
||||||
"headscale_user_id": {
|
|
||||||
"name": "headscale_user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"last_login_at": {
|
|
||||||
"name": "last_login_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"caps": {
|
|
||||||
"name": "caps",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false,
|
|
||||||
"default": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"users_sub_unique": {
|
|
||||||
"name": "users_sub_unique",
|
|
||||||
"columns": ["sub"],
|
|
||||||
"isUnique": true
|
|
||||||
},
|
|
||||||
"users_headscale_user_id_unique": {
|
|
||||||
"name": "users_headscale_user_id_unique",
|
|
||||||
"columns": ["headscale_user_id"],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"idx": 0,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1750355487927,
|
|
||||||
"tag": "0000_spicy_bloodscream",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 1,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1755554742267,
|
|
||||||
"tag": "0001_naive_lilith",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 2,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1755617607599,
|
|
||||||
"tag": "0002_square_bloodstorm",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 3,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1772917638504,
|
|
||||||
"tag": "0003_thick_otto_octavius",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 4,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1773505790202,
|
|
||||||
"tag": "0004_nappy_praxagora",
|
|
||||||
"breakpoints": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,31 +1,24 @@
|
|||||||
[tools]
|
[tools]
|
||||||
go = "1.25.1"
|
go = "1.25.1"
|
||||||
pnpm = "10.4.0"
|
pnpm = "10.4.0"
|
||||||
node = "22.18"
|
node = "24.2"
|
||||||
|
|
||||||
[tasks.build-nixos-docs]
|
[tasks.build-nixos-docs]
|
||||||
alias = ["nixos-docs"]
|
alias = ["nixos-docs"]
|
||||||
description = "Builds NixOS module documentation"
|
description = "Builds NixOS module documentation"
|
||||||
run = [
|
run = [
|
||||||
'nix build .#headplane-nixos-docs',
|
'nix build .#headplane-nixos-docs',
|
||||||
'cp --dereference --force ./result ./docs/NixOS-options.md',
|
'cp --dereference --force ./result ./docs/NixOS-options.md',
|
||||||
'sed -i "s;\[/nix.*;\[nix/options.nix\](https://github.com/tale/headplane/blob/main/nix/options.nix);" ./docs/NixOS-options.md'
|
'sed -i "s;\[/nix.*;\[nix/options.nix\](https://github.com/tale/headplane/blob/main/nix/options.nix);" ./docs/NixOS-options.md',
|
||||||
]
|
]
|
||||||
|
|
||||||
[tasks.generate-caddy-certs]
|
[tasks.generate-caddy-certs]
|
||||||
alias = ["mkcert"]
|
alias = ["mkcert"]
|
||||||
dir = "{{cwd}}/test/caddy/certs"
|
dir = "{{cwd}}/test/caddy/certs"
|
||||||
run = [
|
run = ["mkdir -p {{cwd}}/test/caddy/certs", "mkcert -install", "mkcert localhost"]
|
||||||
"mkdir -p {{cwd}}/test/caddy/certs",
|
|
||||||
"mkcert -install",
|
|
||||||
"mkcert localhost"
|
|
||||||
]
|
|
||||||
|
|
||||||
[tasks.ci]
|
[tasks.ci]
|
||||||
description = "Runs the CI pipeline"
|
description = "Runs the CI pipeline"
|
||||||
depends = ["build-go-wasm"]
|
depends = ["build-go-wasm"]
|
||||||
depends_post = ["build-go-agent"]
|
depends_post = ["build-go-agent"]
|
||||||
run = [
|
run = ["pnpm install", "pnpm run build"]
|
||||||
"pnpm install",
|
|
||||||
"pnpm run build"
|
|
||||||
]
|
|
||||||
|
|||||||
+4
-4
@@ -54,10 +54,10 @@
|
|||||||
"@xterm/xterm": "^6.0.0",
|
"@xterm/xterm": "^6.0.0",
|
||||||
"arktype": "^2.1.29",
|
"arktype": "^2.1.29",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"drizzle-kit": "^0.31.9",
|
"drizzle-kit": "1.0.0-beta.16-c2458b2",
|
||||||
"drizzle-orm": "0.45.1",
|
"drizzle-orm": "1.0.0-beta.16-c2458b2",
|
||||||
"isbot": "5.1.35",
|
"isbot": "5.1.35",
|
||||||
"jose": "6.1.3",
|
"jose": "6.2.1",
|
||||||
"js-yaml": "^4.1.1",
|
"js-yaml": "^4.1.1",
|
||||||
"lefthook": "^2.1.1",
|
"lefthook": "^2.1.1",
|
||||||
"lucide-react": "^0.575.0",
|
"lucide-react": "^0.575.0",
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
"yaml": "2.8.2"
|
"yaml": "2.8.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.18 <23",
|
"node": ">=24.2 <25",
|
||||||
"pnpm": ">=10.4 <11"
|
"pnpm": ">=10.4 <11"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.4.0",
|
"packageManager": "pnpm@10.4.0",
|
||||||
|
|||||||
Generated
+699
-335
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user