db: add sqlite "source of truth" schema

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2025-05-21 11:08:33 +02:00 committed by Kristoffer Dalby
parent 855c48aec2
commit c6736dd6d6
248 changed files with 6228 additions and 207 deletions

View File

@ -2,10 +2,12 @@ package cli
import (
"errors"
"fmt"
"net/http"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
"github.com/tailscale/squibble"
)
func init() {
@ -21,6 +23,12 @@ var serveCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
app, err := newHeadscaleServerWithConfig()
if err != nil {
var squibbleErr squibble.ValidationError
if errors.As(err, &squibbleErr) {
fmt.Printf("SQLite schema failed to validate:\n")
fmt.Println(squibbleErr.Diff)
}
log.Fatal().Caller().Err(err).Msg("Error initializing")
}

View File

@ -19,7 +19,7 @@
overlay = _: prev: let
pkgs = nixpkgs.legacyPackages.${prev.system};
buildGo = pkgs.buildGo124Module;
vendorHash = "sha256-ACab+UvKrh+7G5KXNS+Iu9y8ZExefQDhwEKgIv0iIvE=";
vendorHash = "sha256-S2GnCg2dyfjIyi5gXhVEuRs5Bop2JAhZcnhg1fu4/Gg=";
in {
headscale = buildGo {
pname = "headscale";

4
go.mod
View File

@ -39,6 +39,7 @@ require (
github.com/spf13/viper v1.20.1
github.com/stretchr/testify v1.10.0
github.com/tailscale/hujson v0.0.0-20250226034555-ec1d1c113d33
github.com/tailscale/squibble v0.0.0-20250108170732-a4ca58afa694
github.com/tailscale/tailsql v0.0.0-20250421235516-02f85f087b97
github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
@ -116,7 +117,7 @@ require (
github.com/containerd/errdefs v0.3.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
github.com/creachadair/mds v0.24.1 // indirect
github.com/creachadair/mds v0.24.3 // indirect
github.com/dblohm7/wingoes v0.0.0-20240123200102-b75a8a7d7eb0 // indirect
github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect
github.com/distribution/reference v0.6.0 // indirect
@ -213,7 +214,6 @@ require (
github.com/tailscale/netlink v1.1.1-0.20240822203006-4d49adab4de7 // indirect
github.com/tailscale/peercred v0.0.0-20250107143737-35a0c7bd7edc // indirect
github.com/tailscale/setec v0.0.0-20250305161714-445cadbbca3d // indirect
github.com/tailscale/squibble v0.0.0-20250108170732-a4ca58afa694 // indirect
github.com/tailscale/web-client-prebuilt v0.0.0-20250124233751-d4cd19a26976 // indirect
github.com/tailscale/wireguard-go v0.0.0-20250304000100-91a0587fb251 // indirect
github.com/vishvananda/netns v0.0.4 // indirect

4
go.sum
View File

@ -126,8 +126,8 @@ github.com/creachadair/command v0.1.22 h1:WmdrURwZdmPD1jm13SjKooaMoqo7mW1qI2BPCS
github.com/creachadair/command v0.1.22/go.mod h1:YFc+OMGucqTpxwQg/iJnNg8BMNmRPDK60rYy8ckgKwE=
github.com/creachadair/flax v0.0.5 h1:zt+CRuXQASxwQ68e9GHAOnEgAU29nF0zYMHOCrL5wzE=
github.com/creachadair/flax v0.0.5/go.mod h1:F1PML0JZLXSNDMNiRGK2yjm5f+L9QCHchyHBldFymj8=
github.com/creachadair/mds v0.24.1 h1:bzL4ItCtAUxxO9KkotP0PVzlw4tnJicAcjPu82v2mGs=
github.com/creachadair/mds v0.24.1/go.mod h1:ArfS0vPHoLV/SzuIzoqTEZfoYmac7n9Cj8XPANHocvw=
github.com/creachadair/mds v0.24.3 h1:X7cM2ymZSyl4IVWnfyXLxRXMJ6awhbcWvtLPhfnTaqI=
github.com/creachadair/mds v0.24.3/go.mod h1:0oeHt9QWu8VfnmskOL4zi2CumjEvB29ScmtOmdrhFeU=
github.com/creachadair/taskgroup v0.13.2 h1:3KyqakBuFsm3KkXi/9XIb0QcA8tEzLHLgaoidf0MdVc=
github.com/creachadair/taskgroup v0.13.2/go.mod h1:i3V1Zx7H8RjwljUEeUWYT30Lmb9poewSb2XI1yTwD0g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=

View File

@ -3,6 +3,7 @@ package db
import (
"context"
"database/sql"
_ "embed"
"encoding/json"
"errors"
"fmt"
@ -15,9 +16,11 @@ import (
"github.com/glebarez/sqlite"
"github.com/go-gormigrate/gormigrate/v2"
"github.com/juanfont/headscale/hscontrol/db/sqliteconfig"
"github.com/juanfont/headscale/hscontrol/types"
"github.com/juanfont/headscale/hscontrol/util"
"github.com/rs/zerolog/log"
"github.com/tailscale/squibble"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
@ -27,12 +30,23 @@ import (
"zgo.at/zcache/v2"
)
//go:embed schema.sql
var dbSchema string
func init() {
schema.RegisterSerializer("text", TextSerialiser{})
}
var errDatabaseNotSupported = errors.New("database type not supported")
var errForeignKeyConstraintsViolated = errors.New("foreign key constraints violated")
const (
maxIdleConns = 100
maxOpenConns = 100
contextTimeoutSecs = 10
)
// KV is a key-value store in a psql table. For future use...
// TODO(kradalby): Is this used for anything?
type KV struct {
@ -471,6 +485,7 @@ func NewHeadscaleDatabase(
// Drop the old table.
_ = tx.Migrator().DropTable(&preAuthKeyACLTag{})
return nil
},
Rollback: func(db *gorm.DB) error { return nil },
@ -602,7 +617,7 @@ COMMIT;
},
Rollback: func(db *gorm.DB) error { return nil },
},
// Ensure there are no nodes refering to a deleted preauthkey.
// Ensure there are no nodes referring to a deleted preauthkey.
{
ID: "202502070949",
Migrate: func(tx *gorm.DB) error {
@ -718,6 +733,208 @@ AND auth_key_id NOT IN (
},
Rollback: func(db *gorm.DB) error { return nil },
},
// Schema migration to ensure all tables match the expected schema.
// This migration recreates all tables to match the exact structure in schema.sql,
// preserving all data during the process.
// Only SQLite will be migrated for consistency.
{
ID: "202507021200",
Migrate: func(tx *gorm.DB) error {
// Only run on SQLite
if cfg.Type != types.DatabaseSqlite {
log.Info().Msg("Skipping schema migration on non-SQLite database")
return nil
}
log.Info().Msg("Starting schema recreation with table renaming")
// Rename existing tables to _old versions
tablesToRename := []string{"users", "pre_auth_keys", "api_keys", "nodes", "policies"}
// Check if routes table exists and drop it (should have been migrated already)
var routesExists bool
err := tx.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='routes'").Row().Scan(&routesExists)
if err == nil && routesExists {
log.Info().Msg("Dropping leftover routes table")
if err := tx.Exec("DROP TABLE routes").Error; err != nil {
return fmt.Errorf("dropping routes table: %w", err)
}
}
// Drop all indexes first to avoid conflicts
indexesToDrop := []string{
"idx_users_deleted_at",
"idx_provider_identifier",
"idx_name_provider_identifier",
"idx_name_no_provider_identifier",
"idx_api_keys_prefix",
"idx_policies_deleted_at",
}
for _, index := range indexesToDrop {
_ = tx.Exec("DROP INDEX IF EXISTS " + index).Error
}
for _, table := range tablesToRename {
// Check if table exists before renaming
var exists bool
err := tx.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?", table).Row().Scan(&exists)
if err != nil {
return fmt.Errorf("checking if table %s exists: %w", table, err)
}
if exists {
// Drop old table if it exists from previous failed migration
_ = tx.Exec("DROP TABLE IF EXISTS " + table + "_old").Error
// Rename current table to _old
if err := tx.Exec("ALTER TABLE " + table + " RENAME TO " + table + "_old").Error; err != nil {
return fmt.Errorf("renaming table %s to %s_old: %w", table, table, err)
}
}
}
// Create new tables with correct schema
tableCreationSQL := []string{
`CREATE TABLE users(
id integer PRIMARY KEY AUTOINCREMENT,
name text,
display_name text,
email text,
provider_identifier text,
provider text,
profile_pic_url text,
created_at datetime,
updated_at datetime,
deleted_at datetime
)`,
`CREATE TABLE pre_auth_keys(
id integer PRIMARY KEY AUTOINCREMENT,
key text,
user_id integer,
reusable numeric,
ephemeral numeric DEFAULT false,
used numeric DEFAULT false,
tags text,
expiration datetime,
created_at datetime,
CONSTRAINT fk_pre_auth_keys_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
)`,
`CREATE TABLE api_keys(
id integer PRIMARY KEY AUTOINCREMENT,
prefix text,
hash blob,
expiration datetime,
last_seen datetime,
created_at datetime
)`,
`CREATE TABLE nodes(
id integer PRIMARY KEY AUTOINCREMENT,
machine_key text,
node_key text,
disco_key text,
endpoints text,
host_info text,
ipv4 text,
ipv6 text,
hostname text,
given_name varchar(63),
user_id integer,
register_method text,
forced_tags text,
auth_key_id integer,
last_seen datetime,
expiry datetime,
approved_routes text,
created_at datetime,
updated_at datetime,
deleted_at datetime,
CONSTRAINT fk_nodes_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_nodes_auth_key FOREIGN KEY(auth_key_id) REFERENCES pre_auth_keys(id)
)`,
`CREATE TABLE policies(
id integer PRIMARY KEY AUTOINCREMENT,
data text,
created_at datetime,
updated_at datetime,
deleted_at datetime
)`,
}
for _, createSQL := range tableCreationSQL {
if err := tx.Exec(createSQL).Error; err != nil {
return fmt.Errorf("creating new table: %w", err)
}
}
// Copy data directly using SQL
dataCopySQL := []string{
`INSERT INTO users (id, name, display_name, email, provider_identifier, provider, profile_pic_url, created_at, updated_at, deleted_at)
SELECT id, name, display_name, email, provider_identifier, provider, profile_pic_url, created_at, updated_at, deleted_at
FROM users_old`,
`INSERT INTO pre_auth_keys (id, key, user_id, reusable, ephemeral, used, tags, expiration, created_at)
SELECT id, key, user_id, reusable, ephemeral, used, tags, expiration, created_at
FROM pre_auth_keys_old`,
`INSERT INTO api_keys (id, prefix, hash, expiration, last_seen, created_at)
SELECT id, prefix, hash, expiration, last_seen, created_at
FROM api_keys_old`,
`INSERT INTO nodes (id, machine_key, node_key, disco_key, endpoints, host_info, ipv4, ipv6, hostname, given_name, user_id, register_method, forced_tags, auth_key_id, last_seen, expiry, approved_routes, created_at, updated_at, deleted_at)
SELECT id, machine_key, node_key, disco_key, endpoints, host_info, ipv4, ipv6, hostname, given_name, user_id, register_method, forced_tags, auth_key_id, last_seen, expiry, approved_routes, created_at, updated_at, deleted_at
FROM nodes_old`,
`INSERT INTO policies (id, data, created_at, updated_at, deleted_at)
SELECT id, data, created_at, updated_at, deleted_at
FROM policies_old`,
}
for _, copySQL := range dataCopySQL {
if err := tx.Exec(copySQL).Error; err != nil {
return fmt.Errorf("copying data: %w", err)
}
}
// Create indexes
indexes := []string{
"CREATE INDEX idx_users_deleted_at ON users(deleted_at)",
`CREATE UNIQUE INDEX idx_provider_identifier ON users(
provider_identifier
) WHERE provider_identifier IS NOT NULL`,
`CREATE UNIQUE INDEX idx_name_provider_identifier ON users(
name,
provider_identifier
)`,
`CREATE UNIQUE INDEX idx_name_no_provider_identifier ON users(
name
) WHERE provider_identifier IS NULL`,
"CREATE UNIQUE INDEX idx_api_keys_prefix ON api_keys(prefix)",
"CREATE INDEX idx_policies_deleted_at ON policies(deleted_at)",
}
for _, indexSQL := range indexes {
if err := tx.Exec(indexSQL).Error; err != nil {
return fmt.Errorf("creating index: %w", err)
}
}
// Drop old tables only after everything succeeds
for _, table := range tablesToRename {
if err := tx.Exec("DROP TABLE IF EXISTS " + table + "_old").Error; err != nil {
log.Warn().Str("table", table+"_old").Err(err).Msg("Failed to drop old table, but migration succeeded")
}
}
log.Info().Msg("Schema recreation completed successfully")
return nil
},
Rollback: func(db *gorm.DB) error { return nil },
},
// From this point, the following rules must be followed:
// - NEVER use gorm.AutoMigrate, write the exact migration steps needed
// - AutoMigrate depends on the struct staying exactly the same, which it wont over time.
// - Never write migrations that requires foreign keys to be disabled.
},
)
@ -725,6 +942,30 @@ AND auth_key_id NOT IN (
log.Fatal().Err(err).Msgf("Migration failed: %v", err)
}
// Validate that the schema ends up in the expected state.
// This is currently only done on sqlite as squibble does not
// support Postgres and we use our sqlite schema as our source of
// truth.
if cfg.Type == types.DatabaseSqlite {
sqlConn, err := dbConn.DB()
if err != nil {
return nil, fmt.Errorf("getting DB from gorm: %w", err)
}
// or else it blocks...
sqlConn.SetMaxIdleConns(maxIdleConns)
sqlConn.SetMaxOpenConns(maxOpenConns)
defer sqlConn.SetMaxIdleConns(1)
defer sqlConn.SetMaxOpenConns(1)
ctx, cancel := context.WithTimeout(context.Background(), contextTimeoutSecs*time.Second)
defer cancel()
if err := squibble.Validate(ctx, sqlConn, dbSchema); err != nil {
return nil, fmt.Errorf("validating schema: %w", err)
}
}
db := HSDatabase{
DB: dbConn,
cfg: &cfg,
@ -758,32 +999,26 @@ func openDB(cfg types.DatabaseConfig) (*gorm.DB, error) {
Str("path", cfg.Sqlite.Path).
Msg("Opening database")
// Build SQLite configuration with pragmas set at connection time
sqliteConfig := sqliteconfig.Default(cfg.Sqlite.Path)
if cfg.Sqlite.WriteAheadLog {
sqliteConfig.JournalMode = sqliteconfig.JournalModeWAL
sqliteConfig.WALAutocheckpoint = cfg.Sqlite.WALAutoCheckPoint
}
connectionURL, err := sqliteConfig.ToURL()
if err != nil {
return nil, fmt.Errorf("building sqlite connection URL: %w", err)
}
db, err := gorm.Open(
sqlite.Open(cfg.Sqlite.Path),
sqlite.Open(connectionURL),
&gorm.Config{
PrepareStmt: cfg.Gorm.PrepareStmt,
Logger: dbLogger,
},
)
if err := db.Exec(`
PRAGMA foreign_keys=ON;
PRAGMA busy_timeout=10000;
PRAGMA auto_vacuum=INCREMENTAL;
PRAGMA synchronous=NORMAL;
`).Error; err != nil {
return nil, fmt.Errorf("enabling foreign keys: %w", err)
}
if cfg.Sqlite.WriteAheadLog {
if err := db.Exec(fmt.Sprintf(`
PRAGMA journal_mode=WAL;
PRAGMA wal_autocheckpoint=%d;
`, cfg.Sqlite.WALAutoCheckPoint)).Error; err != nil {
return nil, fmt.Errorf("setting WAL mode: %w", err)
}
}
// The pure Go SQLite library does not handle locking in
// the same way as the C based one and we can't use the gorm
// connection pool as of 2022/02/23.
@ -812,7 +1047,7 @@ func openDB(cfg types.DatabaseConfig) (*gorm.DB, error) {
dbString += " sslmode=disable"
}
} else {
dbString += fmt.Sprintf(" sslmode=%s", cfg.Postgres.Ssl)
dbString += " sslmode=" + cfg.Postgres.Ssl
}
if cfg.Postgres.Port != 0 {
@ -820,7 +1055,7 @@ func openDB(cfg types.DatabaseConfig) (*gorm.DB, error) {
}
if cfg.Postgres.Pass != "" {
dbString += fmt.Sprintf(" password=%s", cfg.Postgres.Pass)
dbString += " password=" + cfg.Postgres.Pass
}
db, err := gorm.Open(postgres.Open(dbString), &gorm.Config{
@ -848,29 +1083,84 @@ func openDB(cfg types.DatabaseConfig) (*gorm.DB, error) {
}
func runMigrations(cfg types.DatabaseConfig, dbConn *gorm.DB, migrations *gormigrate.Gormigrate) error {
// Turn off foreign keys for the duration of the migration if using sqlite to
// prevent data loss due to the way the GORM migrator handles certain schema
// changes.
if cfg.Type == types.DatabaseSqlite {
var fkEnabled int
if err := dbConn.Raw("PRAGMA foreign_keys").Scan(&fkEnabled).Error; err != nil {
// SQLite: Run migrations step-by-step, only disabling foreign keys when necessary
// List of migration IDs that require foreign keys to be disabled
// These are migrations that perform complex schema changes that GORM cannot handle safely with FK enabled
// NO NEW MIGRATIONS SHOULD BE ADDED HERE. ALL NEW MIGRATIONS MUST RUN WITH FOREIGN KEYS ENABLED.
migrationsRequiringFKDisabled := map[string]bool{
"202312101416": true, // Initial migration with complex table/column renames
"202402151347": true, // Migration that removes last_successful_update column
"2024041121742": true, // Migration that changes IP address storage format
"202407191627": true, // User table automigration with FK constraint issues
"202408181235": true, // User table automigration with FK constraint issues
"202501221827": true, // Route table automigration with FK constraint issues
"202501311657": true, // PreAuthKey table automigration with FK constraint issues
// Add other migration IDs here as they are identified to need FK disabled
}
// Get the current foreign key status
var fkOriginallyEnabled int
if err := dbConn.Raw("PRAGMA foreign_keys").Scan(&fkOriginallyEnabled).Error; err != nil {
return fmt.Errorf("checking foreign key status: %w", err)
}
if fkEnabled == 1 {
if err := dbConn.Exec("PRAGMA foreign_keys = OFF").Error; err != nil {
return fmt.Errorf("disabling foreign keys: %w", err)
// Get all migration IDs in order from the actual migration definitions
// Only IDs that are in the migrationsRequiringFKDisabled map will be processed with FK disabled
// any other new migrations are ran after.
migrationIDs := []string{
"202312101416",
"202312101430",
"202402151347",
"2024041121742",
"202406021630",
"202407191627",
"202408181235",
"202409271400",
"202501221827",
"202501311657",
"202502070949",
"202502131714",
"202502171819",
"202505091439",
"202505141324",
// As of 2025-07-02, no new IDs should be added here.
// They will be ran by the migrations.Migrate() call below.
}
defer dbConn.Exec("PRAGMA foreign_keys = ON")
for _, migrationID := range migrationIDs {
log.Trace().Str("migration_id", migrationID).Msg("Running migration")
needsFKDisabled := migrationsRequiringFKDisabled[migrationID]
if needsFKDisabled {
// Disable foreign keys for this migration
if err := dbConn.Exec("PRAGMA foreign_keys = OFF").Error; err != nil {
return fmt.Errorf("disabling foreign keys for migration %s: %w", migrationID, err)
}
} else {
// Ensure foreign keys are enabled for this migration
if err := dbConn.Exec("PRAGMA foreign_keys = ON").Error; err != nil {
return fmt.Errorf("enabling foreign keys for migration %s: %w", migrationID, err)
}
}
// Run up to this specific migration (will only run the next pending migration)
if err := migrations.MigrateTo(migrationID); err != nil {
return fmt.Errorf("running migration %s: %w", migrationID, err)
}
}
if err := dbConn.Exec("PRAGMA foreign_keys = ON").Error; err != nil {
return fmt.Errorf("restoring foreign keys: %w", err)
}
// Run the rest of the migrations
if err := migrations.Migrate(); err != nil {
return err
}
// Since we disabled foreign keys for the migration, we need to check for
// constraint violations manually at the end of the migration.
if cfg.Type == types.DatabaseSqlite {
// Check for constraint violations at the end
type constraintViolation struct {
Table string
RowID int
@ -904,7 +1194,12 @@ func runMigrations(cfg types.DatabaseConfig, dbConn *gorm.DB, migrations *gormig
Msg("Foreign key constraint violated")
}
return fmt.Errorf("foreign key constraints violated")
return errForeignKeyConstraintsViolated
}
} else {
// PostgreSQL can run all migrations in one block - no foreign key issues
if err := migrations.Migrate(); err != nil {
return err
}
}
@ -949,6 +1244,7 @@ func Read[T any](db *gorm.DB, fn func(rx *gorm.DB) (T, error)) (T, error) {
var no T
return no, err
}
return ret, nil
}
@ -970,5 +1266,6 @@ func Write[T any](db *gorm.DB, fn func(tx *gorm.DB) (T, error)) (T, error) {
var no T
return no, err
}
return ret, tx.Commit().Error
}

View File

@ -2,8 +2,6 @@ package db
import (
"database/sql"
"fmt"
"io"
"net/netip"
"os"
"os/exec"
@ -24,10 +22,10 @@ import (
"zgo.at/zcache/v2"
)
// TestMigrationsSQLite is the main function for testing migrations,
// we focus on SQLite correctness as it is the main database used in headscale.
// All migrations that are worth testing should be added here.
func TestMigrationsSQLite(t *testing.T) {
// TestSQLiteMigrationAndDataValidation tests specific SQLite migration scenarios
// and validates data integrity after migration. All migrations that require data validation
// should be added here.
func TestSQLiteMigrationAndDataValidation(t *testing.T) {
ipp := func(p string) netip.Prefix {
return netip.MustParsePrefix(p)
}
@ -43,12 +41,39 @@ func TestMigrationsSQLite(t *testing.T) {
tests := []struct {
dbPath string
wantFunc func(*testing.T, *HSDatabase)
wantErr string
}{
{
dbPath: "testdata/0-22-3-to-0-23-0-routes-are-dropped-2063.sqlite",
wantFunc: func(t *testing.T, h *HSDatabase) {
nodes, err := Read(h.DB, func(rx *gorm.DB) (types.Nodes, error) {
dbPath: "testdata/sqlite/0-22-3-to-0-23-0-routes-are-dropped-2063_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Comprehensive data preservation validation for 0.22.3->0.23.0 migration
// Expected data from dump: 4 users, 17 pre_auth_keys, 14 machines/nodes, 12 routes
// Verify users data preservation - should have 4 users
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 4, "should preserve all 4 users from original schema")
// Verify pre_auth_keys data preservation - should have 17 keys
preAuthKeys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
var keys []types.PreAuthKey
err := rx.Find(&keys).Error
return keys, err
})
require.NoError(t, err)
assert.Len(t, preAuthKeys, 17, "should preserve all 17 pre_auth_keys from original schema")
// Verify all nodes data preservation - should have 14 nodes
allNodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx)
})
require.NoError(t, err)
assert.Len(t, allNodes, 14, "should preserve all 14 machines/nodes from original schema")
// Verify specific nodes and their route migration with detailed validation
nodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
n1, err := GetNodeByID(rx, 1)
n26, err := GetNodeByID(rx, 26)
n31, err := GetNodeByID(rx, 31)
@ -60,24 +85,66 @@ func TestMigrationsSQLite(t *testing.T) {
return types.Nodes{n1, n26, n31, n32}, nil
})
require.NoError(t, err)
assert.Len(t, nodes, 4, "should have retrieved 4 specific nodes")
// want := types.Routes{
// r(1, "0.0.0.0/0", true, false),
// r(1, "::/0", true, false),
// r(1, "10.9.110.0/24", true, true),
// r(26, "172.100.100.0/24", true, true),
// r(26, "172.100.100.0/24", true, false, false),
// r(31, "0.0.0.0/0", true, false),
// r(31, "0.0.0.0/0", true, false, false),
// r(31, "::/0", true, false),
// r(31, "::/0", true, false, false),
// r(32, "192.168.0.24/32", true, true),
// }
// Validate specific node data from dump file
nodesByID := make(map[uint64]*types.Node)
for i := range nodes {
nodesByID[nodes[i].ID.Uint64()] = nodes[i]
}
node1 := nodesByID[1]
node26 := nodesByID[26]
node31 := nodesByID[31]
node32 := nodesByID[32]
require.NotNil(t, node1, "node 1 should exist")
require.NotNil(t, node26, "node 26 should exist")
require.NotNil(t, node31, "node 31 should exist")
require.NotNil(t, node32, "node 32 should exist")
// Validate node data using cmp.Diff
expectedNodes := map[uint64]struct {
Hostname string
GivenName string
IPv4 string
}{
1: {Hostname: "test_hostname", GivenName: "test_given_name", IPv4: "100.64.0.1"},
26: {Hostname: "test_hostname", GivenName: "test_given_name", IPv4: "100.64.0.19"},
31: {Hostname: "test_hostname", GivenName: "test_given_name", IPv4: "100.64.0.7"},
32: {Hostname: "test_hostname", GivenName: "test_given_name", IPv4: "100.64.0.11"},
}
for nodeID, expected := range expectedNodes {
node := nodesByID[nodeID]
require.NotNil(t, node, "node %d should exist", nodeID)
actual := struct {
Hostname string
GivenName string
IPv4 string
}{
Hostname: node.Hostname,
GivenName: node.GivenName,
IPv4: node.IPv4.String(),
}
if diff := cmp.Diff(expected, actual); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() node %d mismatch (-want +got):\n%s", nodeID, diff)
}
}
// Validate that routes were properly migrated from routes table to approved_routes
// Based on the dump file routes data:
// Node 1 (machine_id 1): routes 1,2,3 (0.0.0.0/0 enabled, ::/0 enabled, 10.9.110.0/24 enabled+primary)
// Node 26 (machine_id 26): route 6 (172.100.100.0/24 enabled+primary), route 7 (172.100.100.0/24 disabled)
// Node 31 (machine_id 31): routes 8,10 (0.0.0.0/0 enabled, ::/0 enabled), routes 9,11 (duplicates disabled)
// Node 32 (machine_id 32): route 12 (192.168.0.24/32 enabled+primary)
want := [][]netip.Prefix{
{ipp("0.0.0.0/0"), ipp("10.9.110.0/24"), ipp("::/0")},
{ipp("172.100.100.0/24")},
{ipp("0.0.0.0/0"), ipp("::/0")},
{ipp("192.168.0.24/32")},
{ipp("0.0.0.0/0"), ipp("10.9.110.0/24"), ipp("::/0")}, // node 1: 3 enabled routes
{ipp("172.100.100.0/24")}, // node 26: 1 enabled route
{ipp("0.0.0.0/0"), ipp("::/0")}, // node 31: 2 enabled routes
{ipp("192.168.0.24/32")}, // node 32: 1 enabled route
}
var got [][]netip.Prefix
for _, node := range nodes {
@ -85,14 +152,48 @@ func TestMigrationsSQLite(t *testing.T) {
}
if diff := cmp.Diff(want, got, util.PrefixComparer); diff != "" {
t.Errorf("TestMigrations() mismatch (-want +got):\n%s", diff)
t.Errorf("TestSQLiteMigrationAndDataValidation() route migration mismatch (-want +got):\n%s", diff)
}
// Verify routes table was dropped after migration
var routesTableExists bool
err = hsdb.DB.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='routes'").Row().Scan(&routesTableExists)
require.NoError(t, err)
assert.False(t, routesTableExists, "routes table should have been dropped after migration")
},
},
{
dbPath: "testdata/0-22-3-to-0-23-0-routes-fail-foreign-key-2076.sqlite",
wantFunc: func(t *testing.T, h *HSDatabase) {
node, err := Read(h.DB, func(rx *gorm.DB) (*types.Node, error) {
dbPath: "testdata/sqlite/0-22-3-to-0-23-0-routes-fail-foreign-key-2076_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Comprehensive data preservation validation for foreign key constraint issue case
// Expected data from dump: 4 users, 2 pre_auth_keys, 8 nodes
// Verify users data preservation
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 4, "should preserve all 4 users from original schema")
// Verify pre_auth_keys data preservation
preAuthKeys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
var keys []types.PreAuthKey
err := rx.Find(&keys).Error
return keys, err
})
require.NoError(t, err)
assert.Len(t, preAuthKeys, 2, "should preserve all 2 pre_auth_keys from original schema")
// Verify all nodes data preservation
allNodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx)
})
require.NoError(t, err)
assert.Len(t, allNodes, 8, "should preserve all 8 nodes from original schema")
// Verify specific node route migration
node, err := Read(hsdb.DB, func(rx *gorm.DB) (*types.Node, error) {
return GetNodeByID(rx, 13)
})
require.NoError(t, err)
@ -101,26 +202,26 @@ func TestMigrationsSQLite(t *testing.T) {
_ = types.Routes{
// These routes exists, but have no nodes associated with them
// when the migration starts.
// r(1, "0.0.0.0/0", true, true, false),
// r(1, "::/0", true, true, false),
// r(3, "0.0.0.0/0", true, true, false),
// r(3, "::/0", true, true, false),
// r(5, "0.0.0.0/0", true, true, false),
// r(5, "::/0", true, true, false),
// r(6, "0.0.0.0/0", true, true, false),
// r(6, "::/0", true, true, false),
// r(1, "0.0.0.0/0", true, false),
// r(1, "::/0", true, false),
// r(3, "0.0.0.0/0", true, false),
// r(3, "::/0", true, false),
// r(5, "0.0.0.0/0", true, false),
// r(5, "::/0", true, false),
// r(6, "0.0.0.0/0", true, false),
// r(6, "::/0", true, false),
// r(6, "10.0.0.0/8", true, false, false),
// r(7, "0.0.0.0/0", true, true, false),
// r(7, "::/0", true, true, false),
// r(7, "0.0.0.0/0", true, false),
// r(7, "::/0", true, false),
// r(7, "10.0.0.0/8", true, false, false),
// r(9, "0.0.0.0/0", true, true, false),
// r(9, "::/0", true, true, false),
// r(9, "10.0.0.0/8", true, true, false),
// r(11, "0.0.0.0/0", true, true, false),
// r(11, "::/0", true, true, false),
// r(11, "10.0.0.0/8", true, true, true),
// r(12, "0.0.0.0/0", true, true, false),
// r(12, "::/0", true, true, false),
// r(9, "0.0.0.0/0", true, false),
// r(9, "::/0", true, false),
// r(9, "10.0.0.0/8", true, false),
// r(11, "0.0.0.0/0", true, false),
// r(11, "::/0", true, false),
// r(11, "10.0.0.0/8", true, true),
// r(12, "0.0.0.0/0", true, false),
// r(12, "::/0", true, false),
// r(12, "10.0.0.0/8", true, false, false),
//
// These nodes exists, so routes should be kept.
@ -131,8 +232,14 @@ func TestMigrationsSQLite(t *testing.T) {
}
want := []netip.Prefix{ipp("0.0.0.0/0"), ipp("10.18.80.2/32"), ipp("::/0")}
if diff := cmp.Diff(want, node.ApprovedRoutes, util.PrefixComparer); diff != "" {
t.Errorf("TestMigrations() mismatch (-want +got):\n%s", diff)
t.Errorf("TestSQLiteMigrationAndDataValidation() route migration mismatch (-want +got):\n%s", diff)
}
// Verify routes table was dropped after migration
var routesTableExists bool
err = hsdb.DB.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='routes'").Row().Scan(&routesTableExists)
require.NoError(t, err)
assert.False(t, routesTableExists, "routes table should have been dropped after migration")
},
},
// at 14:15:06 go run ./cmd/headscale preauthkeys list
@ -143,9 +250,49 @@ func TestMigrationsSQLite(t *testing.T) {
// 4 | f20155.. | false | false | false | 2024-09-27 | 2024-09-27 | tag:test
// 5 | b212b9.. | false | false | false | 2024-09-27 | 2024-09-27 | tag:test,tag:woop,tag:dedu
{
dbPath: "testdata/0-23-0-to-0-24-0-preauthkey-tags-table.sqlite",
wantFunc: func(t *testing.T, h *HSDatabase) {
keys, err := Read(h.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
dbPath: "testdata/sqlite/0-23-0-to-0-24-0-preauthkey-tags-table_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Comprehensive data preservation validation for pre-auth key tags migration
// Expected data from dump: 2 users (kratest, testkra), 5 pre_auth_keys with specific tags
// Verify users data preservation with specific user data
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 2, "should preserve all 2 users from original schema")
// Validate specific user data from dump file using cmp.Diff
expectedUsers := []types.User{
{Model: gorm.Model{ID: 1}, Name: "kratest"},
{Model: gorm.Model{ID: 2}, Name: "testkra"},
}
if diff := cmp.Diff(expectedUsers, users,
cmpopts.IgnoreFields(types.User{}, "CreatedAt", "UpdatedAt", "DeletedAt", "DisplayName", "Email", "ProviderIdentifier", "Provider", "ProfilePicURL")); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() users mismatch (-want +got):\n%s", diff)
}
// Create maps for easier access in later validations
usersByName := make(map[string]*types.User)
for i := range users {
usersByName[users[i].Name] = &users[i]
}
kratest := usersByName["kratest"]
testkra := usersByName["testkra"]
// Verify all pre_auth_keys data preservation
allKeys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
var keys []types.PreAuthKey
err := rx.Find(&keys).Error
return keys, err
})
require.NoError(t, err)
assert.Len(t, allKeys, 5, "should preserve all 5 pre_auth_keys from original schema")
// Verify specific pre-auth keys and their tag migration with exact data validation
keys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
kratest, err := ListPreAuthKeysByUser(rx, 1) // kratest
if err != nil {
return nil, err
@ -159,51 +306,104 @@ func TestMigrationsSQLite(t *testing.T) {
return append(kratest, testkra...), nil
})
require.NoError(t, err)
assert.Len(t, keys, 5)
want := []types.PreAuthKey{
// Create map for easier validation by ID
keysByID := make(map[uint64]*types.PreAuthKey)
for i := range keys {
keysByID[keys[i].ID] = &keys[i]
}
// Validate specific pre-auth key data and tag migration from pre_auth_key_acl_tags table
key1 := keysByID[1]
key2 := keysByID[2]
key3 := keysByID[3]
key4 := keysByID[4]
key5 := keysByID[5]
require.NotNil(t, key1, "pre_auth_key 1 should exist")
require.NotNil(t, key2, "pre_auth_key 2 should exist")
require.NotNil(t, key3, "pre_auth_key 3 should exist")
require.NotNil(t, key4, "pre_auth_key 4 should exist")
require.NotNil(t, key5, "pre_auth_key 5 should exist")
// Validate specific pre-auth key data and tag migration using cmp.Diff
expectedKeys := []types.PreAuthKey{
{
ID: 1,
Key: "09b28f8c3351984874d46dace0a70177a8721933a950b663",
UserID: kratest.ID,
Tags: []string{"tag:derp"},
},
{
ID: 2,
Key: "3112b953cb344191b2d5aec1b891250125bf7b437eac5d26",
UserID: kratest.ID,
Tags: []string{"tag:derp"},
},
{
ID: 3,
Key: "7c23b9f215961e7609527aef78bf82fb19064b002d78c36f",
UserID: kratest.ID,
Tags: []string{"tag:derp", "tag:merp"},
},
{
ID: 4,
Key: "f2015583852b725220cc4b107fb288a4cf7ac259bd458a32",
UserID: testkra.ID,
Tags: []string{"tag:test"},
},
{
ID: 5,
Key: "b212b990165e897944dd3772786544402729fb349da50f57",
UserID: testkra.ID,
Tags: []string{"tag:test", "tag:woop", "tag:dedu"},
},
}
if diff := cmp.Diff(want, keys, cmp.Comparer(func(a, b []string) bool {
if diff := cmp.Diff(expectedKeys, keys, cmp.Comparer(func(a, b []string) bool {
sort.Sort(sort.StringSlice(a))
sort.Sort(sort.StringSlice(b))
return slices.Equal(a, b)
}), cmpopts.IgnoreFields(types.PreAuthKey{}, "Key", "UserID", "User", "CreatedAt", "Expiration")); diff != "" {
t.Errorf("TestMigrations() mismatch (-want +got):\n%s", diff)
}), cmpopts.IgnoreFields(types.PreAuthKey{}, "User", "CreatedAt", "Reusable", "Ephemeral", "Used", "Expiration")); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() pre-auth key tags migration mismatch (-want +got):\n%s", diff)
}
if h.DB.Migrator().HasTable("pre_auth_key_acl_tags") {
t.Errorf("TestMigrations() table pre_auth_key_acl_tags should not exist")
// Verify pre_auth_key_acl_tags table was dropped after migration
if hsdb.DB.Migrator().HasTable("pre_auth_key_acl_tags") {
t.Errorf("TestSQLiteMigrationAndDataValidation() table pre_auth_key_acl_tags should not exist after migration")
}
},
},
{
dbPath: "testdata/0-23-0-to-0-24-0-no-more-special-types.sqlite",
wantFunc: func(t *testing.T, h *HSDatabase) {
nodes, err := Read(h.DB, func(rx *gorm.DB) (types.Nodes, error) {
dbPath: "testdata/sqlite/0-23-0-to-0-24-0-no-more-special-types_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Comprehensive data preservation validation for special types removal migration
// Expected data from dump: 2 users, 2 pre_auth_keys, 12 nodes
// Verify users data preservation
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 2, "should preserve all 2 users from original schema")
// Verify pre_auth_keys data preservation
preAuthKeys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
var keys []types.PreAuthKey
err := rx.Find(&keys).Error
return keys, err
})
require.NoError(t, err)
assert.Len(t, preAuthKeys, 2, "should preserve all 2 pre_auth_keys from original schema")
// Verify nodes data preservation and field validation
nodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx)
})
require.NoError(t, err)
assert.Len(t, nodes, 12, "should preserve all 12 nodes from original schema")
for _, node := range nodes {
assert.Falsef(t, node.MachineKey.IsZero(), "expected non zero machinekey")
@ -213,7 +413,7 @@ func TestMigrationsSQLite(t *testing.T) {
assert.Falsef(t, node.DiscoKey.IsZero(), "expected non zero discokey")
assert.Contains(t, node.DiscoKey.String(), "discokey:")
assert.NotNil(t, node.IPv4)
assert.NotNil(t, node.IPv4)
assert.NotNil(t, node.IPv6)
assert.Len(t, node.Endpoints, 1)
assert.NotNil(t, node.Hostinfo)
assert.NotNil(t, node.MachineKey)
@ -221,12 +421,31 @@ func TestMigrationsSQLite(t *testing.T) {
},
},
{
dbPath: "testdata/failing-node-preauth-constraint.sqlite",
wantFunc: func(t *testing.T, h *HSDatabase) {
nodes, err := Read(h.DB, func(rx *gorm.DB) (types.Nodes, error) {
dbPath: "testdata/sqlite/failing-node-preauth-constraint_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Comprehensive data preservation validation for node-preauth constraint issue
// Expected data from dump: 1 user, 2 api_keys, 6 nodes
// Verify users data preservation
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 1, "should preserve all 1 user from original schema")
// Verify api_keys data preservation
var apiKeyCount int
err = hsdb.DB.Raw("SELECT COUNT(*) FROM api_keys").Scan(&apiKeyCount).Error
require.NoError(t, err)
assert.Equal(t, 2, apiKeyCount, "should preserve all 2 api_keys from original schema")
// Verify nodes data preservation and field validation
nodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx)
})
require.NoError(t, err)
assert.Len(t, nodes, 6, "should preserve all 6 nodes from original schema")
for _, node := range nodes {
assert.Falsef(t, node.MachineKey.IsZero(), "expected non zero machinekey")
@ -240,25 +459,262 @@ func TestMigrationsSQLite(t *testing.T) {
}
},
},
{
dbPath: "testdata/sqlite/wrongly-migrated-schema-0.25.1_dump.sql",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
// Test migration of a database that was wrongly migrated in 0.25.1
// This database has several issues:
// 1. Missing proper user unique constraints (idx_provider_identifier, idx_name_provider_identifier, idx_name_no_provider_identifier)
// 2. Still has routes table that should have been migrated to node.approved_routes
// 3. Wrong FOREIGN KEY constraint on pre_auth_keys (CASCADE instead of SET NULL)
// 4. Missing some required indexes
// Verify users table data is preserved with specific user data
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
assert.Len(t, users, 2, "should preserve existing users")
// Validate specific user data from dump file using cmp.Diff
expectedUsers := []types.User{
{Model: gorm.Model{ID: 1}, Name: "user2"},
{Model: gorm.Model{ID: 2}, Name: "user1"},
}
if diff := cmp.Diff(expectedUsers, users,
cmpopts.IgnoreFields(types.User{}, "CreatedAt", "UpdatedAt", "DeletedAt", "DisplayName", "Email", "ProviderIdentifier", "Provider", "ProfilePicURL")); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() users mismatch (-want +got):\n%s", diff)
}
// Create maps for easier access in later validations
usersByName := make(map[string]*types.User)
for i := range users {
usersByName[users[i].Name] = &users[i]
}
user1 := usersByName["user1"]
user2 := usersByName["user2"]
// Verify nodes table data is preserved and routes migrated to approved_routes
nodes, err := Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx)
})
require.NoError(t, err)
assert.Len(t, nodes, 3, "should preserve existing nodes")
// Validate specific node data from dump file
nodesByID := make(map[uint64]*types.Node)
for i := range nodes {
nodesByID[nodes[i].ID.Uint64()] = nodes[i]
}
node1 := nodesByID[1]
node2 := nodesByID[2]
node3 := nodesByID[3]
require.NotNil(t, node1, "node 1 should exist")
require.NotNil(t, node2, "node 2 should exist")
require.NotNil(t, node3, "node 3 should exist")
// Validate specific node field data using cmp.Diff
expectedNodes := map[uint64]struct {
Hostname string
GivenName string
IPv4 string
IPv6 string
UserID uint
}{
1: {Hostname: "node1", GivenName: "node1", IPv4: "100.64.0.1", IPv6: "fd7a:115c:a1e0::1", UserID: user2.ID},
2: {Hostname: "node2", GivenName: "node2", IPv4: "100.64.0.2", IPv6: "fd7a:115c:a1e0::2", UserID: user2.ID},
3: {Hostname: "node3", GivenName: "node3", IPv4: "100.64.0.3", IPv6: "fd7a:115c:a1e0::3", UserID: user1.ID},
}
for nodeID, expected := range expectedNodes {
node := nodesByID[nodeID]
require.NotNil(t, node, "node %d should exist", nodeID)
actual := struct {
Hostname string
GivenName string
IPv4 string
IPv6 string
UserID uint
}{
Hostname: node.Hostname,
GivenName: node.GivenName,
IPv4: node.IPv4.String(),
IPv6: func() string {
if node.IPv6 != nil {
return node.IPv6.String()
} else {
return ""
}
}(),
UserID: node.UserID,
}
if diff := cmp.Diff(expected, actual); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() node %d basic fields mismatch (-want +got):\n%s", nodeID, diff)
}
// Special validation for MachineKey content for node 1 only
if nodeID == 1 {
assert.Contains(t, node.MachineKey.String(), "mkey:1efe4388236c1c83fe0a19d3ce7c321ab81e138a4da57917c231ce4c01944409")
}
}
// Check that routes were migrated from routes table to node.approved_routes using cmp.Diff
// Original routes table had 4 routes for nodes 1, 2, 3:
// Node 1: 0.0.0.0/0 (enabled), ::/0 (enabled) -> should have 2 approved routes
// Node 2: 192.168.100.0/24 (enabled) -> should have 1 approved route
// Node 3: 10.0.0.0/8 (disabled) -> should have 0 approved routes
expectedRoutes := map[uint64][]netip.Prefix{
1: {netip.MustParsePrefix("0.0.0.0/0"), netip.MustParsePrefix("::/0")},
2: {netip.MustParsePrefix("192.168.100.0/24")},
3: nil,
}
actualRoutes := map[uint64][]netip.Prefix{
1: node1.ApprovedRoutes,
2: node2.ApprovedRoutes,
3: node3.ApprovedRoutes,
}
if diff := cmp.Diff(expectedRoutes, actualRoutes, util.PrefixComparer); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() routes migration mismatch (-want +got):\n%s", diff)
}
// Verify pre_auth_keys data is preserved with specific key data
preAuthKeys, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.PreAuthKey, error) {
var keys []types.PreAuthKey
err := rx.Find(&keys).Error
return keys, err
})
require.NoError(t, err)
assert.Len(t, preAuthKeys, 2, "should preserve existing pre_auth_keys")
// Validate specific pre_auth_key data from dump file using cmp.Diff
expectedKeys := []types.PreAuthKey{
{
ID: 1,
Key: "3d133ec953e31fd41edbd935371234f762b4bae300cea618",
UserID: user2.ID,
Reusable: true,
Used: true,
},
{
ID: 2,
Key: "9813cc1df1832259fb6322dad788bb9bec89d8a01eef683a",
UserID: user1.ID,
Reusable: true,
Used: true,
},
}
if diff := cmp.Diff(expectedKeys, preAuthKeys,
cmpopts.IgnoreFields(types.PreAuthKey{}, "User", "CreatedAt", "Expiration", "Ephemeral", "Tags")); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() pre_auth_keys mismatch (-want +got):\n%s", diff)
}
// Verify api_keys data is preserved with specific key data
var apiKeys []struct {
ID uint64
Prefix string
Hash []byte
CreatedAt string
Expiration string
LastSeen string
}
err = hsdb.DB.Raw("SELECT id, prefix, hash, created_at, expiration, last_seen FROM api_keys").Scan(&apiKeys).Error
require.NoError(t, err)
assert.Len(t, apiKeys, 1, "should preserve existing api_keys")
// Validate specific api_key data from dump file using cmp.Diff
expectedAPIKey := struct {
ID uint64
Prefix string
Hash []byte
}{
ID: 1,
Prefix: "ak_test",
Hash: []byte{0xde, 0xad, 0xbe, 0xef},
}
actualAPIKey := struct {
ID uint64
Prefix string
Hash []byte
}{
ID: apiKeys[0].ID,
Prefix: apiKeys[0].Prefix,
Hash: apiKeys[0].Hash,
}
if diff := cmp.Diff(expectedAPIKey, actualAPIKey); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() api_key mismatch (-want +got):\n%s", diff)
}
// Validate date fields separately since they need Contains check
assert.Contains(t, apiKeys[0].CreatedAt, "2025-12-31", "created_at should be preserved")
assert.Contains(t, apiKeys[0].Expiration, "2025-06-18", "expiration should be preserved")
// Verify that routes table no longer exists (should have been dropped)
var routesTableExists bool
err = hsdb.DB.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='routes'").Row().Scan(&routesTableExists)
require.NoError(t, err)
assert.False(t, routesTableExists, "routes table should have been dropped")
// Verify all required indexes exist with correct structure using cmp.Diff
expectedIndexes := []string{
"idx_users_deleted_at",
"idx_provider_identifier",
"idx_name_provider_identifier",
"idx_name_no_provider_identifier",
"idx_api_keys_prefix",
"idx_policies_deleted_at",
}
expectedIndexMap := make(map[string]bool)
for _, index := range expectedIndexes {
expectedIndexMap[index] = true
}
actualIndexMap := make(map[string]bool)
for _, indexName := range expectedIndexes {
var indexExists bool
err = hsdb.DB.Raw("SELECT COUNT(*) FROM sqlite_master WHERE type='index' AND name=?", indexName).Row().Scan(&indexExists)
require.NoError(t, err)
actualIndexMap[indexName] = indexExists
}
if diff := cmp.Diff(expectedIndexMap, actualIndexMap); diff != "" {
t.Errorf("TestSQLiteMigrationAndDataValidation() indexes existence mismatch (-want +got):\n%s", diff)
}
// Verify proper foreign key constraints are set
// Check that pre_auth_keys has correct FK constraint (SET NULL, not CASCADE)
var preAuthKeyConstraint string
err = hsdb.DB.Raw("SELECT sql FROM sqlite_master WHERE type='table' AND name='pre_auth_keys'").Row().Scan(&preAuthKeyConstraint)
require.NoError(t, err)
assert.Contains(t, preAuthKeyConstraint, "ON DELETE SET NULL", "pre_auth_keys should have SET NULL constraint")
assert.NotContains(t, preAuthKeyConstraint, "ON DELETE CASCADE", "pre_auth_keys should not have CASCADE constraint")
// Verify that user unique constraints work properly
// Try to create duplicate local user (should fail)
err = hsdb.DB.Create(&types.User{Name: users[0].Name}).Error
require.Error(t, err, "should not allow duplicate local usernames")
assert.Contains(t, err.Error(), "UNIQUE constraint", "should fail with unique constraint error")
},
},
}
for _, tt := range tests {
t.Run(tt.dbPath, func(t *testing.T) {
dbPath, err := testCopyOfDatabase(t, tt.dbPath)
if err != nil {
t.Fatalf("copying db for test: %s", err)
}
hsdb, err := NewHeadscaleDatabase(types.DatabaseConfig{
Type: "sqlite3",
Sqlite: types.SqliteConfig{
Path: dbPath,
},
}, "", emptyCache())
if err != nil && tt.wantErr != err.Error() {
t.Errorf("TestMigrations() unexpected error = %v, wantErr %v", err, tt.wantErr)
if !strings.HasSuffix(tt.dbPath, ".sql") {
t.Fatalf("TestSQLiteMigrationAndDataValidation only supports .sql files, got: %s", tt.dbPath)
}
hsdb := dbForTestWithPath(t, tt.dbPath)
if tt.wantFunc != nil {
tt.wantFunc(t, hsdb)
}
@ -266,39 +722,27 @@ func TestMigrationsSQLite(t *testing.T) {
}
}
func testCopyOfDatabase(t *testing.T, src string) (string, error) {
sourceFileStat, err := os.Stat(src)
if err != nil {
return "", err
}
if !sourceFileStat.Mode().IsRegular() {
return "", fmt.Errorf("%s is not a regular file", src)
}
source, err := os.Open(src)
if err != nil {
return "", err
}
defer source.Close()
tmpDir := t.TempDir()
fn := filepath.Base(src)
dst := filepath.Join(tmpDir, fn)
destination, err := os.Create(dst)
if err != nil {
return "", err
}
defer destination.Close()
_, err = io.Copy(destination, source)
return dst, err
}
func emptyCache() *zcache.Cache[types.RegistrationID, types.RegisterNode] {
return zcache.New[types.RegistrationID, types.RegisterNode](time.Minute, time.Hour)
}
func createSQLiteFromSQLFile(sqlFilePath, dbPath string) error {
db, err := sql.Open("sqlite", dbPath)
if err != nil {
return err
}
defer db.Close()
schemaContent, err := os.ReadFile(sqlFilePath)
if err != nil {
return err
}
_, err = db.Exec(string(schemaContent))
return err
}
// requireConstraintFailed checks if the error is a constraint failure with
// either SQLite and PostgreSQL error messages.
func requireConstraintFailed(t *testing.T, err error) {
@ -415,7 +859,13 @@ func TestConstraints(t *testing.T) {
}
}
func TestMigrationsPostgres(t *testing.T) {
// TestPostgresMigrationAndDataValidation tests specific PostgreSQL migration scenarios
// and validates data integrity after migration. All migrations that require data validation
// should be added here.
//
// TODO(kradalby): Convert to use plain text SQL dumps instead of binary .pssql dumps for consistency
// with SQLite tests and easier version control.
func TestPostgresMigrationAndDataValidation(t *testing.T) {
tests := []struct {
name string
dbPath string
@ -423,9 +873,10 @@ func TestMigrationsPostgres(t *testing.T) {
}{
{
name: "user-idx-breaking",
dbPath: "testdata/pre-24-postgresdb.pssql.dump",
wantFunc: func(t *testing.T, h *HSDatabase) {
users, err := Read(h.DB, func(rx *gorm.DB) ([]types.User, error) {
dbPath: "testdata/postgres/pre-24-postgresdb.pssql.dump",
wantFunc: func(t *testing.T, hsdb *HSDatabase) {
t.Helper()
users, err := Read(hsdb.DB, func(rx *gorm.DB) ([]types.User, error) {
return ListUsers(rx)
})
require.NoError(t, err)
@ -472,9 +923,27 @@ func TestMigrationsPostgres(t *testing.T) {
func dbForTest(t *testing.T) *HSDatabase {
t.Helper()
return dbForTestWithPath(t, "")
}
func dbForTestWithPath(t *testing.T, sqlFilePath string) *HSDatabase {
t.Helper()
dbPath := t.TempDir() + "/headscale_test.db"
// If SQL file path provided, validate and create database from it
if sqlFilePath != "" {
// Validate that the file is a SQL text file
if !strings.HasSuffix(sqlFilePath, ".sql") {
t.Fatalf("dbForTestWithPath only accepts .sql files, got: %s", sqlFilePath)
}
err := createSQLiteFromSQLFile(sqlFilePath, dbPath)
if err != nil {
t.Fatalf("setting up database from SQL file %s: %s", sqlFilePath, err)
}
}
db, err := NewHeadscaleDatabase(
types.DatabaseConfig{
Type: "sqlite3",
@ -489,7 +958,59 @@ func dbForTest(t *testing.T) *HSDatabase {
t.Fatalf("setting up database: %s", err)
}
if sqlFilePath != "" {
t.Logf("database set up from %s at: %s", sqlFilePath, dbPath)
} else {
t.Logf("database set up at: %s", dbPath)
}
return db
}
// TestSQLiteAllTestdataMigrations tests migration compatibility across all SQLite schemas
// in the testdata directory. It verifies they can be successfully migrated to the current
// schema version. This test only validates migration success, not data integrity.
//
// A lot of the schemas have been automatically generated with old Headscale binaries on empty databases
// (no user/node data):
// - `headscale_<VERSION>_schema.sql` (created with `sqlite3 headscale.db .schema`)
// - `headscale_<VERSION>_dump.sql` (created with `sqlite3 headscale.db .dump`)
// where `_dump.sql` contains the migration steps that have been applied to the database.
func TestSQLiteAllTestdataMigrations(t *testing.T) {
t.Parallel()
schemas, err := os.ReadDir("testdata/sqlite")
require.NoError(t, err)
t.Logf("loaded %d schemas", len(schemas))
for _, schema := range schemas {
if schema.IsDir() {
continue
}
t.Logf("validating: %s", schema.Name())
t.Run(schema.Name(), func(t *testing.T) {
t.Parallel()
dbPath := t.TempDir() + "/headscale_test.db"
// Setup a database with the old schema
schemaPath := filepath.Join("testdata/sqlite", schema.Name())
err := createSQLiteFromSQLFile(schemaPath, dbPath)
require.NoError(t, err)
_, err = NewHeadscaleDatabase(
types.DatabaseConfig{
Type: "sqlite3",
Sqlite: types.SqliteConfig{
Path: dbPath,
},
},
"",
emptyCache(),
)
require.NoError(t, err)
})
}
}

View File

@ -11,9 +11,11 @@ import (
"github.com/stretchr/testify/assert"
)
const fiveHundredMillis = 500 * time.Millisecond
const oneHundredMillis = 100 * time.Millisecond
const fiftyMillis = 50 * time.Millisecond
const (
fiveHundred = 500 * time.Millisecond
oneHundred = 100 * time.Millisecond
fifty = 50 * time.Millisecond
)
// TestEphemeralGarbageCollectorGoRoutineLeak is a test for a goroutine leak in EphemeralGarbageCollector().
// It creates a new EphemeralGarbageCollector, schedules several nodes for deletion with a short expiry,
@ -41,7 +43,7 @@ func TestEphemeralGarbageCollectorGoRoutineLeak(t *testing.T) {
go gc.Start()
// Schedule several nodes for deletion with short expiry
const expiry = fiftyMillis
const expiry = fifty
const numNodes = 100
// Set up wait group for expected deletions
@ -56,7 +58,7 @@ func TestEphemeralGarbageCollectorGoRoutineLeak(t *testing.T) {
// Check nodes are deleted
deleteMutex.Lock()
assert.Equal(t, numNodes, len(deletedIDs), "Not all nodes were deleted")
assert.Len(t, deletedIDs, numNodes, "Not all nodes were deleted")
deleteMutex.Unlock()
// Schedule and immediately cancel to test that part of the code
@ -76,7 +78,7 @@ func TestEphemeralGarbageCollectorGoRoutineLeak(t *testing.T) {
// Give any potential leaked goroutines a chance to exit
// Still need a small sleep here as we're checking for absence of goroutines
time.Sleep(oneHundredMillis)
time.Sleep(oneHundred)
// Check for leaked goroutines
finalGoroutines := runtime.NumGoroutine()
@ -112,7 +114,7 @@ func TestEphemeralGarbageCollectorReschedule(t *testing.T) {
go gc.Start()
defer gc.Close()
const shortExpiry = fiftyMillis
const shortExpiry = fifty
const longExpiry = 1 * time.Hour
nodeID := types.NodeID(1)
@ -128,7 +130,7 @@ func TestEphemeralGarbageCollectorReschedule(t *testing.T) {
// Verify that the node was deleted once
deleteMutex.Lock()
assert.Equal(t, 1, len(deletedIDs), "Node should be deleted exactly once")
assert.Len(t, deletedIDs, 1, "Node should be deleted exactly once")
assert.Equal(t, nodeID, deletedIDs[0], "The correct node should be deleted")
deleteMutex.Unlock()
}
@ -155,7 +157,7 @@ func TestEphemeralGarbageCollectorCancelAndReschedule(t *testing.T) {
defer gc.Close()
nodeID := types.NodeID(1)
const expiry = fiftyMillis
const expiry = fifty
// Schedule node for deletion
gc.Schedule(nodeID, expiry)
@ -172,7 +174,7 @@ func TestEphemeralGarbageCollectorCancelAndReschedule(t *testing.T) {
}
deleteMutex.Lock()
assert.Equal(t, 0, len(deletedIDs), "Node should not be deleted after cancellation")
assert.Empty(t, deletedIDs, "Node should not be deleted after cancellation")
deleteMutex.Unlock()
// Reschedule the node
@ -189,7 +191,7 @@ func TestEphemeralGarbageCollectorCancelAndReschedule(t *testing.T) {
// Verify final state
deleteMutex.Lock()
assert.Equal(t, 1, len(deletedIDs), "Node should be deleted after rescheduling")
assert.Len(t, deletedIDs, 1, "Node should be deleted after rescheduling")
assert.Equal(t, nodeID, deletedIDs[0], "The correct node should be deleted")
deleteMutex.Unlock()
}
@ -212,7 +214,7 @@ func TestEphemeralGarbageCollectorCloseBeforeTimerFires(t *testing.T) {
go gc.Start()
const longExpiry = 1 * time.Hour
const shortExpiry = fiftyMillis
const shortExpiry = fifty
// Schedule node deletion with a long expiry
gc.Schedule(types.NodeID(1), longExpiry)
@ -225,7 +227,7 @@ func TestEphemeralGarbageCollectorCloseBeforeTimerFires(t *testing.T) {
// Verify that no deletion occurred
deleteMutex.Lock()
assert.Equal(t, 0, len(deletedIDs), "No node should be deleted when GC is closed before timer fires")
assert.Empty(t, deletedIDs, "No node should be deleted when GC is closed before timer fires")
deleteMutex.Unlock()
}
@ -269,7 +271,7 @@ func TestEphemeralGarbageCollectorScheduleAfterClose(t *testing.T) {
// Give the GC time to fully close and clean up resources
// This is still time-based but only affects when we check the goroutine count,
// not the actual test logic
time.Sleep(oneHundredMillis)
time.Sleep(oneHundred)
close(gcClosedCheck)
}()
@ -279,7 +281,7 @@ func TestEphemeralGarbageCollectorScheduleAfterClose(t *testing.T) {
gc.Schedule(nodeID, 1*time.Millisecond)
// Set up a timeout channel for our test
timeout := time.After(fiveHundredMillis)
timeout := time.After(fiveHundred)
// Check if any node was deleted (which shouldn't happen)
select {
@ -329,7 +331,7 @@ func TestEphemeralGarbageCollectorConcurrentScheduleAndClose(t *testing.T) {
// Number of concurrent scheduling goroutines
const numSchedulers = 10
const nodesPerScheduler = 50
const schedulingDuration = fiveHundredMillis
const schedulingDuration = fiveHundred
// Use WaitGroup to wait for all scheduling goroutines to finish
var wg sync.WaitGroup
@ -339,14 +341,14 @@ func TestEphemeralGarbageCollectorConcurrentScheduleAndClose(t *testing.T) {
stopScheduling := make(chan struct{})
// Launch goroutines that continuously schedule nodes
for i := 0; i < numSchedulers; i++ {
for schedulerIndex := range numSchedulers {
go func(schedulerID int) {
defer wg.Done()
baseNodeID := schedulerID * nodesPerScheduler
// Keep scheduling nodes until signaled to stop
for j := 0; j < nodesPerScheduler; j++ {
for j := range nodesPerScheduler {
select {
case <-stopScheduling:
return
@ -358,7 +360,7 @@ func TestEphemeralGarbageCollectorConcurrentScheduleAndClose(t *testing.T) {
time.Sleep(time.Duration(rand.Intn(5)) * time.Millisecond)
}
}
}(i)
}(schedulerIndex)
}
// After a short delay, close the garbage collector while schedulers are still running
@ -377,7 +379,7 @@ func TestEphemeralGarbageCollectorConcurrentScheduleAndClose(t *testing.T) {
wg.Wait()
// Wait a bit longer to allow any leaked goroutines to do their work
time.Sleep(oneHundredMillis)
time.Sleep(oneHundred)
// Check for leaks
finalGoroutines := runtime.NumGoroutine()

View File

@ -17,6 +17,8 @@ import (
"tailscale.com/net/tsaddr"
)
var errGeneratedIPBytesInvalid = errors.New("generated ip bytes are invalid ip")
// IPAllocator is a singleton responsible for allocating
// IP addresses for nodes and making sure the same
// address is not handed out twice. There can only be one
@ -236,7 +238,7 @@ func randomNext(pfx netip.Prefix) (netip.Addr, error) {
ip, ok := netip.AddrFromSlice(valInRange.Bytes())
if !ok {
return netip.Addr{}, fmt.Errorf("generated ip bytes are invalid ip")
return netip.Addr{}, errGeneratedIPBytesInvalid
}
if !pfx.Contains(ip) {

View File

@ -64,7 +64,7 @@ func ListPeers(tx *gorm.DB, nodeID types.NodeID, peerIDs ...types.NodeID) (types
}
// ListNodes queries the database for either all nodes if no parameters are given
// or for the given nodes if at least one node ID is given as parameter
// or for the given nodes if at least one node ID is given as parameter.
func (hsdb *HSDatabase) ListNodes(nodeIDs ...types.NodeID) (types.Nodes, error) {
return Read(hsdb.DB, func(rx *gorm.DB) (types.Nodes, error) {
return ListNodes(rx, nodeIDs...)
@ -72,7 +72,7 @@ func (hsdb *HSDatabase) ListNodes(nodeIDs ...types.NodeID) (types.Nodes, error)
}
// ListNodes queries the database for either all nodes if no parameters are given
// or for the given nodes if at least one node ID is given as parameter
// or for the given nodes if at least one node ID is given as parameter.
func ListNodes(tx *gorm.DB, nodeIDs ...types.NodeID) (types.Nodes, error) {
nodes := types.Nodes{}
if err := tx.
@ -406,6 +406,7 @@ func (hsdb *HSDatabase) HandleNodeFromAuthPath(
close(reg.Registered)
newNode = true
return node, err
} else {
// If the node is already registered, this is a refresh.
@ -413,6 +414,7 @@ func (hsdb *HSDatabase) HandleNodeFromAuthPath(
if err != nil {
return nil, err
}
return node, nil
}
}

View File

@ -118,7 +118,7 @@ func (s *Suite) TestListPeers(c *check.C) {
_, err = db.GetNodeByID(0)
c.Assert(err, check.NotNil)
for index := 0; index <= 10; index++ {
for index := range 11 {
nodeKey := key.NewNode()
machineKey := key.NewMachine()
@ -589,6 +589,7 @@ func generateRandomNumber(t *testing.T, max int64) int64 {
if err != nil {
t.Fatalf("getting random number: %s", err)
}
return n.Int64() + 1
}
@ -692,6 +693,7 @@ func TestRenameNode(t *testing.T) {
return err
}
_, err = RegisterNode(tx, node2, nil, nil)
return err
})
require.NoError(t, err)
@ -792,6 +794,7 @@ func TestListPeers(t *testing.T) {
return err
}
_, err = RegisterNode(tx, node2, nil, nil)
return err
})
require.NoError(t, err)
@ -804,30 +807,30 @@ func TestListPeers(t *testing.T) {
// No parameter means no filter, should return all peers
nodes, err = db.ListPeers(1)
require.NoError(t, err)
assert.Equal(t, len(nodes), 1)
assert.Len(t, nodes, 1)
assert.Equal(t, "test2", nodes[0].Hostname)
// Empty node list should return all peers
nodes, err = db.ListPeers(1, types.NodeIDs{}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 1)
assert.Len(t, nodes, 1)
assert.Equal(t, "test2", nodes[0].Hostname)
// No match in IDs should return empty list and no error
nodes, err = db.ListPeers(1, types.NodeIDs{3, 4, 5}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 0)
assert.Empty(t, nodes)
// Partial match in IDs
nodes, err = db.ListPeers(1, types.NodeIDs{2, 3}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 1)
assert.Len(t, nodes, 1)
assert.Equal(t, "test2", nodes[0].Hostname)
// Several matched IDs, but node ID is still filtered out
nodes, err = db.ListPeers(1, types.NodeIDs{1, 2, 3}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 1)
assert.Len(t, nodes, 1)
assert.Equal(t, "test2", nodes[0].Hostname)
}
@ -876,6 +879,7 @@ func TestListNodes(t *testing.T) {
return err
}
_, err = RegisterNode(tx, node2, nil, nil)
return err
})
require.NoError(t, err)
@ -888,32 +892,32 @@ func TestListNodes(t *testing.T) {
// No parameter means no filter, should return all nodes
nodes, err = db.ListNodes()
require.NoError(t, err)
assert.Equal(t, len(nodes), 2)
assert.Len(t, nodes, 2)
assert.Equal(t, "test1", nodes[0].Hostname)
assert.Equal(t, "test2", nodes[1].Hostname)
// Empty node list should return all nodes
nodes, err = db.ListNodes(types.NodeIDs{}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 2)
assert.Len(t, nodes, 2)
assert.Equal(t, "test1", nodes[0].Hostname)
assert.Equal(t, "test2", nodes[1].Hostname)
// No match in IDs should return empty list and no error
nodes, err = db.ListNodes(types.NodeIDs{3, 4, 5}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 0)
assert.Empty(t, nodes)
// Partial match in IDs
nodes, err = db.ListNodes(types.NodeIDs{2, 3}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 1)
assert.Len(t, nodes, 1)
assert.Equal(t, "test2", nodes[0].Hostname)
// Several matched IDs
nodes, err = db.ListNodes(types.NodeIDs{1, 2, 3}...)
require.NoError(t, err)
assert.Equal(t, len(nodes), 2)
assert.Len(t, nodes, 2)
assert.Equal(t, "test1", nodes[0].Hostname)
assert.Equal(t, "test2", nodes[1].Hostname)
}

View File

@ -8,9 +8,8 @@ import (
"github.com/juanfont/headscale/hscontrol/util"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"tailscale.com/types/ptr"
"gopkg.in/check.v1"
"tailscale.com/types/ptr"
)
func (*Suite) TestCreatePreAuthKey(c *check.C) {

110
hscontrol/db/schema.sql Normal file
View File

@ -0,0 +1,110 @@
-- This file is the representation of the SQLite schema of Headscale.
-- It is the "source of truth" and is used to validate any migrations
-- that are run against the database to ensure it ends in the expected state.
CREATE TABLE migrations(id text,PRIMARY KEY(id));
CREATE TABLE users(
id integer PRIMARY KEY AUTOINCREMENT,
name text,
display_name text,
email text,
provider_identifier text,
provider text,
profile_pic_url text,
created_at datetime,
updated_at datetime,
deleted_at datetime
);
CREATE INDEX idx_users_deleted_at ON users(deleted_at);
-- The following three UNIQUE indexes work together to enforce the user identity model:
--
-- 1. Users can be either local (provider_identifier is NULL) or from external providers (provider_identifier set)
-- 2. Each external provider identifier must be unique across the system
-- 3. Local usernames must be unique among local users
-- 4. The same username can exist across different providers with different identifiers
--
-- Examples:
-- - Can create local user "alice" (provider_identifier=NULL)
-- - Can create external user "alice" with GitHub (name="alice", provider_identifier="alice_github")
-- - Can create external user "alice" with Google (name="alice", provider_identifier="alice_google")
-- - Cannot create another local user "alice" (blocked by idx_name_no_provider_identifier)
-- - Cannot create another user with provider_identifier="alice_github" (blocked by idx_provider_identifier)
-- - Cannot create user "bob" with provider_identifier="alice_github" (blocked by idx_name_provider_identifier)
CREATE UNIQUE INDEX idx_provider_identifier ON users(
provider_identifier
) WHERE provider_identifier IS NOT NULL;
CREATE UNIQUE INDEX idx_name_provider_identifier ON users(
name,
provider_identifier
);
CREATE UNIQUE INDEX idx_name_no_provider_identifier ON users(
name
) WHERE provider_identifier IS NULL;
CREATE TABLE pre_auth_keys(
id integer PRIMARY KEY AUTOINCREMENT,
key text,
user_id integer,
reusable numeric,
ephemeral numeric DEFAULT false,
used numeric DEFAULT false,
tags text,
expiration datetime,
created_at datetime,
CONSTRAINT fk_pre_auth_keys_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
);
CREATE TABLE api_keys(
id integer PRIMARY KEY AUTOINCREMENT,
prefix text,
hash blob,
expiration datetime,
last_seen datetime,
created_at datetime
);
CREATE UNIQUE INDEX idx_api_keys_prefix ON api_keys(prefix);
CREATE TABLE nodes(
id integer PRIMARY KEY AUTOINCREMENT,
machine_key text,
node_key text,
disco_key text,
endpoints text,
host_info text,
ipv4 text,
ipv6 text,
hostname text,
given_name varchar(63),
user_id integer,
register_method text,
forced_tags text,
auth_key_id integer,
last_seen datetime,
expiry datetime,
approved_routes text,
created_at datetime,
updated_at datetime,
deleted_at datetime,
CONSTRAINT fk_nodes_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_nodes_auth_key FOREIGN KEY(auth_key_id) REFERENCES pre_auth_keys(id)
);
CREATE TABLE policies(
id integer PRIMARY KEY AUTOINCREMENT,
data text,
created_at datetime,
updated_at datetime,
deleted_at datetime
);
CREATE INDEX idx_policies_deleted_at ON policies(deleted_at);

View File

@ -0,0 +1,345 @@
// Package sqliteconfig provides type-safe configuration for SQLite databases
// with proper enum validation and URL generation for modernc.org/sqlite driver.
package sqliteconfig
import (
"errors"
"fmt"
"strings"
)
// Errors returned by config validation.
var (
ErrPathEmpty = errors.New("path cannot be empty")
ErrBusyTimeoutNegative = errors.New("busy_timeout must be >= 0")
ErrInvalidJournalMode = errors.New("invalid journal_mode")
ErrInvalidAutoVacuum = errors.New("invalid auto_vacuum")
ErrWALAutocheckpoint = errors.New("wal_autocheckpoint must be >= -1")
ErrInvalidSynchronous = errors.New("invalid synchronous")
)
const (
// DefaultBusyTimeout is the default busy timeout in milliseconds.
DefaultBusyTimeout = 10000
)
// JournalMode represents SQLite journal_mode pragma values.
// Journal modes control how SQLite handles write transactions and crash recovery.
//
// Performance vs Durability Tradeoffs:
//
// WAL (Write-Ahead Logging) - Recommended for production:
// - Best performance for concurrent reads/writes
// - Readers don't block writers, writers don't block readers
// - Excellent crash recovery with minimal data loss risk
// - Uses additional .wal and .shm files
// - Default choice for Headscale production deployments
//
// DELETE - Traditional rollback journal:
// - Good performance for single-threaded access
// - Readers block writers and vice versa
// - Reliable crash recovery but with exclusive locking
// - Creates temporary journal files during transactions
// - Suitable for low-concurrency scenarios
//
// TRUNCATE - Similar to DELETE but faster cleanup:
// - Slightly better performance than DELETE
// - Same concurrency limitations as DELETE
// - Faster transaction commit by truncating instead of deleting journal
//
// PERSIST - Journal file remains between transactions:
// - Avoids file creation/deletion overhead
// - Same concurrency limitations as DELETE
// - Good for frequent small transactions
//
// MEMORY - Journal kept in memory:
// - Fastest performance but NO crash recovery
// - Data loss risk on power failure or crash
// - Only suitable for temporary or non-critical data
//
// OFF - No journaling:
// - Maximum performance but NO transaction safety
// - High risk of database corruption on crash
// - Should only be used for read-only or disposable databases
type JournalMode string
const (
// JournalModeWAL enables Write-Ahead Logging (RECOMMENDED for production).
// Best concurrent performance + crash recovery. Uses additional .wal/.shm files.
JournalModeWAL JournalMode = "WAL"
// JournalModeDelete uses traditional rollback journaling.
// Good single-threaded performance, readers block writers. Creates temp journal files.
JournalModeDelete JournalMode = "DELETE"
// JournalModeTruncate is like DELETE but with faster cleanup.
// Slightly better performance than DELETE, same safety with exclusive locking.
JournalModeTruncate JournalMode = "TRUNCATE"
// JournalModePersist keeps journal file between transactions.
// Good for frequent transactions, avoids file creation/deletion overhead.
JournalModePersist JournalMode = "PERSIST"
// JournalModeMemory keeps journal in memory (DANGEROUS).
// Fastest performance but NO crash recovery - data loss on power failure.
JournalModeMemory JournalMode = "MEMORY"
// JournalModeOff disables journaling entirely (EXTREMELY DANGEROUS).
// Maximum performance but high corruption risk. Only for disposable databases.
JournalModeOff JournalMode = "OFF"
)
// IsValid returns true if the JournalMode is valid.
func (j JournalMode) IsValid() bool {
switch j {
case JournalModeWAL, JournalModeDelete, JournalModeTruncate,
JournalModePersist, JournalModeMemory, JournalModeOff:
return true
default:
return false
}
}
// String returns the string representation.
func (j JournalMode) String() string {
return string(j)
}
// AutoVacuum represents SQLite auto_vacuum pragma values.
// Auto-vacuum controls how SQLite reclaims space from deleted data.
//
// Performance vs Storage Tradeoffs:
//
// INCREMENTAL - Recommended for production:
// - Reclaims space gradually during normal operations
// - Minimal performance impact on writes
// - Database size shrinks automatically over time
// - Can manually trigger with PRAGMA incremental_vacuum
// - Good balance of space efficiency and performance
//
// FULL - Automatic space reclamation:
// - Immediately reclaims space on every DELETE/DROP
// - Higher write overhead due to page reorganization
// - Keeps database file size minimal
// - Can cause significant slowdowns on large deletions
// - Best for applications with frequent deletes and limited storage
//
// NONE - No automatic space reclamation:
// - Fastest write performance (no vacuum overhead)
// - Database file only grows, never shrinks
// - Deleted space is reused but file size remains large
// - Requires manual VACUUM to reclaim space
// - Best for write-heavy workloads where storage isn't constrained
type AutoVacuum string
const (
// AutoVacuumNone disables automatic space reclamation.
// Fastest writes, file only grows. Requires manual VACUUM to reclaim space.
AutoVacuumNone AutoVacuum = "NONE"
// AutoVacuumFull immediately reclaims space on every DELETE/DROP.
// Minimal file size but slower writes. Can impact performance on large deletions.
AutoVacuumFull AutoVacuum = "FULL"
// AutoVacuumIncremental reclaims space gradually (RECOMMENDED for production).
// Good balance: minimal write impact, automatic space management over time.
AutoVacuumIncremental AutoVacuum = "INCREMENTAL"
)
// IsValid returns true if the AutoVacuum is valid.
func (a AutoVacuum) IsValid() bool {
switch a {
case AutoVacuumNone, AutoVacuumFull, AutoVacuumIncremental:
return true
default:
return false
}
}
// String returns the string representation.
func (a AutoVacuum) String() string {
return string(a)
}
// Synchronous represents SQLite synchronous pragma values.
// Synchronous mode controls how aggressively SQLite flushes data to disk.
//
// Performance vs Durability Tradeoffs:
//
// NORMAL - Recommended for production:
// - Good balance of performance and safety
// - Syncs at critical moments (transaction commits in WAL mode)
// - Very low risk of corruption, minimal performance impact
// - Safe with WAL mode even with power loss
// - Default choice for most production applications
//
// FULL - Maximum durability:
// - Syncs to disk after every write operation
// - Highest data safety, virtually no corruption risk
// - Significant performance penalty (up to 50% slower)
// - Recommended for critical data where corruption is unacceptable
//
// EXTRA - Paranoid mode:
// - Even more aggressive syncing than FULL
// - Maximum possible data safety
// - Severe performance impact
// - Only for extremely critical scenarios
//
// OFF - Maximum performance, minimum safety:
// - No syncing, relies on OS to flush data
// - Fastest possible performance
// - High risk of corruption on power failure or crash
// - Only suitable for non-critical or easily recreatable data
type Synchronous string
const (
// SynchronousOff disables syncing (DANGEROUS).
// Fastest performance but high corruption risk on power failure. Avoid in production.
SynchronousOff Synchronous = "OFF"
// SynchronousNormal provides balanced performance and safety (RECOMMENDED).
// Good performance with low corruption risk. Safe with WAL mode on power loss.
SynchronousNormal Synchronous = "NORMAL"
// SynchronousFull provides maximum durability with performance cost.
// Syncs after every write. Up to 50% slower but virtually no corruption risk.
SynchronousFull Synchronous = "FULL"
// SynchronousExtra provides paranoid-level data safety (EXTREME).
// Maximum safety with severe performance impact. Rarely needed in practice.
SynchronousExtra Synchronous = "EXTRA"
)
// IsValid returns true if the Synchronous is valid.
func (s Synchronous) IsValid() bool {
switch s {
case SynchronousOff, SynchronousNormal, SynchronousFull, SynchronousExtra:
return true
default:
return false
}
}
// String returns the string representation.
func (s Synchronous) String() string {
return string(s)
}
// Config holds SQLite database configuration with type-safe enums.
// This configuration balances performance, durability, and operational requirements
// for Headscale's SQLite database usage patterns.
type Config struct {
Path string // file path or ":memory:"
BusyTimeout int // milliseconds (0 = default/disabled)
JournalMode JournalMode // journal mode (affects concurrency and crash recovery)
AutoVacuum AutoVacuum // auto vacuum mode (affects storage efficiency)
WALAutocheckpoint int // pages (-1 = default/not set, 0 = disabled, >0 = enabled)
Synchronous Synchronous // synchronous mode (affects durability vs performance)
ForeignKeys bool // enable foreign key constraints (data integrity)
}
// Default returns the production configuration optimized for Headscale's usage patterns.
// This configuration prioritizes:
// - Concurrent access (WAL mode for multiple readers/writers)
// - Data durability with good performance (NORMAL synchronous)
// - Automatic space management (INCREMENTAL auto-vacuum)
// - Data integrity (foreign key constraints enabled)
// - Reasonable timeout for busy database scenarios (10s)
func Default(path string) *Config {
return &Config{
Path: path,
BusyTimeout: DefaultBusyTimeout,
JournalMode: JournalModeWAL,
AutoVacuum: AutoVacuumIncremental,
WALAutocheckpoint: 1000,
Synchronous: SynchronousNormal,
ForeignKeys: true,
}
}
// Memory returns a configuration for in-memory databases.
func Memory() *Config {
return &Config{
Path: ":memory:",
WALAutocheckpoint: -1, // not set, use driver default
ForeignKeys: true,
}
}
// Validate checks if all configuration values are valid.
func (c *Config) Validate() error {
if c.Path == "" {
return ErrPathEmpty
}
if c.BusyTimeout < 0 {
return fmt.Errorf("%w, got %d", ErrBusyTimeoutNegative, c.BusyTimeout)
}
if c.JournalMode != "" && !c.JournalMode.IsValid() {
return fmt.Errorf("%w: %s", ErrInvalidJournalMode, c.JournalMode)
}
if c.AutoVacuum != "" && !c.AutoVacuum.IsValid() {
return fmt.Errorf("%w: %s", ErrInvalidAutoVacuum, c.AutoVacuum)
}
if c.WALAutocheckpoint < -1 {
return fmt.Errorf("%w, got %d", ErrWALAutocheckpoint, c.WALAutocheckpoint)
}
if c.Synchronous != "" && !c.Synchronous.IsValid() {
return fmt.Errorf("%w: %s", ErrInvalidSynchronous, c.Synchronous)
}
return nil
}
// ToURL builds a properly encoded SQLite connection string using _pragma parameters
// compatible with modernc.org/sqlite driver.
func (c *Config) ToURL() (string, error) {
if err := c.Validate(); err != nil {
return "", fmt.Errorf("invalid config: %w", err)
}
var pragmas []string
// Add pragma parameters only if they're set (non-zero/non-empty)
if c.BusyTimeout > 0 {
pragmas = append(pragmas, fmt.Sprintf("busy_timeout=%d", c.BusyTimeout))
}
if c.JournalMode != "" {
pragmas = append(pragmas, fmt.Sprintf("journal_mode=%s", c.JournalMode))
}
if c.AutoVacuum != "" {
pragmas = append(pragmas, fmt.Sprintf("auto_vacuum=%s", c.AutoVacuum))
}
if c.WALAutocheckpoint >= 0 {
pragmas = append(pragmas, fmt.Sprintf("wal_autocheckpoint=%d", c.WALAutocheckpoint))
}
if c.Synchronous != "" {
pragmas = append(pragmas, fmt.Sprintf("synchronous=%s", c.Synchronous))
}
if c.ForeignKeys {
pragmas = append(pragmas, "foreign_keys=ON")
}
// Handle different database types
var baseURL string
if c.Path == ":memory:" {
baseURL = ":memory:"
} else {
baseURL = "file:" + c.Path
}
// Add parameters without encoding = signs
if len(pragmas) > 0 {
var queryParts []string
for _, pragma := range pragmas {
queryParts = append(queryParts, "_pragma="+pragma)
}
baseURL += "?" + strings.Join(queryParts, "&")
}
return baseURL, nil
}

View File

@ -0,0 +1,211 @@
package sqliteconfig
import (
"testing"
)
func TestJournalMode(t *testing.T) {
tests := []struct {
mode JournalMode
valid bool
}{
{JournalModeWAL, true},
{JournalModeDelete, true},
{JournalModeTruncate, true},
{JournalModePersist, true},
{JournalModeMemory, true},
{JournalModeOff, true},
{JournalMode("INVALID"), false},
{JournalMode(""), false},
}
for _, tt := range tests {
t.Run(string(tt.mode), func(t *testing.T) {
if got := tt.mode.IsValid(); got != tt.valid {
t.Errorf("JournalMode(%q).IsValid() = %v, want %v", tt.mode, got, tt.valid)
}
})
}
}
func TestAutoVacuum(t *testing.T) {
tests := []struct {
mode AutoVacuum
valid bool
}{
{AutoVacuumNone, true},
{AutoVacuumFull, true},
{AutoVacuumIncremental, true},
{AutoVacuum("INVALID"), false},
{AutoVacuum(""), false},
}
for _, tt := range tests {
t.Run(string(tt.mode), func(t *testing.T) {
if got := tt.mode.IsValid(); got != tt.valid {
t.Errorf("AutoVacuum(%q).IsValid() = %v, want %v", tt.mode, got, tt.valid)
}
})
}
}
func TestSynchronous(t *testing.T) {
tests := []struct {
mode Synchronous
valid bool
}{
{SynchronousOff, true},
{SynchronousNormal, true},
{SynchronousFull, true},
{SynchronousExtra, true},
{Synchronous("INVALID"), false},
{Synchronous(""), false},
}
for _, tt := range tests {
t.Run(string(tt.mode), func(t *testing.T) {
if got := tt.mode.IsValid(); got != tt.valid {
t.Errorf("Synchronous(%q).IsValid() = %v, want %v", tt.mode, got, tt.valid)
}
})
}
}
func TestConfigValidate(t *testing.T) {
tests := []struct {
name string
config *Config
wantErr bool
}{
{
name: "valid default config",
config: Default("/path/to/db.sqlite"),
},
{
name: "empty path",
config: &Config{
Path: "",
},
wantErr: true,
},
{
name: "negative busy timeout",
config: &Config{
Path: "/path/to/db.sqlite",
BusyTimeout: -1,
},
wantErr: true,
},
{
name: "invalid journal mode",
config: &Config{
Path: "/path/to/db.sqlite",
JournalMode: JournalMode("INVALID"),
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.config.Validate()
if (err != nil) != tt.wantErr {
t.Errorf("Config.Validate() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func TestConfigToURL(t *testing.T) {
tests := []struct {
name string
config *Config
want string
}{
{
name: "default config",
config: Default("/path/to/db.sqlite"),
want: "file:/path/to/db.sqlite?_pragma=busy_timeout=10000&_pragma=journal_mode=WAL&_pragma=auto_vacuum=INCREMENTAL&_pragma=wal_autocheckpoint=1000&_pragma=synchronous=NORMAL&_pragma=foreign_keys=ON",
},
{
name: "memory config",
config: Memory(),
want: ":memory:?_pragma=foreign_keys=ON",
},
{
name: "minimal config",
config: &Config{
Path: "/simple/db.sqlite",
WALAutocheckpoint: -1, // not set
},
want: "file:/simple/db.sqlite",
},
{
name: "custom config",
config: &Config{
Path: "/custom/db.sqlite",
BusyTimeout: 5000,
JournalMode: JournalModeDelete,
WALAutocheckpoint: -1, // not set
Synchronous: SynchronousFull,
ForeignKeys: true,
},
want: "file:/custom/db.sqlite?_pragma=busy_timeout=5000&_pragma=journal_mode=DELETE&_pragma=synchronous=FULL&_pragma=foreign_keys=ON",
},
{
name: "memory with custom timeout",
config: &Config{
Path: ":memory:",
BusyTimeout: 2000,
WALAutocheckpoint: -1, // not set
ForeignKeys: true,
},
want: ":memory:?_pragma=busy_timeout=2000&_pragma=foreign_keys=ON",
},
{
name: "wal autocheckpoint zero",
config: &Config{
Path: "/test.db",
WALAutocheckpoint: 0,
},
want: "file:/test.db?_pragma=wal_autocheckpoint=0",
},
{
name: "all options",
config: &Config{
Path: "/full.db",
BusyTimeout: 15000,
JournalMode: JournalModeWAL,
AutoVacuum: AutoVacuumFull,
WALAutocheckpoint: 1000,
Synchronous: SynchronousExtra,
ForeignKeys: true,
},
want: "file:/full.db?_pragma=busy_timeout=15000&_pragma=journal_mode=WAL&_pragma=auto_vacuum=FULL&_pragma=wal_autocheckpoint=1000&_pragma=synchronous=EXTRA&_pragma=foreign_keys=ON",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := tt.config.ToURL()
if err != nil {
t.Errorf("Config.ToURL() error = %v", err)
return
}
if got != tt.want {
t.Errorf("Config.ToURL() = %q, want %q", got, tt.want)
}
})
}
}
func TestConfigToURLInvalid(t *testing.T) {
config := &Config{
Path: "",
BusyTimeout: -1,
}
_, err := config.ToURL()
if err == nil {
t.Error("Config.ToURL() with invalid config should return error")
}
}

View File

@ -0,0 +1,269 @@
package sqliteconfig
import (
"database/sql"
"path/filepath"
"strings"
"testing"
_ "modernc.org/sqlite"
)
const memoryDBPath = ":memory:"
// TestSQLiteDriverPragmaIntegration verifies that the modernc.org/sqlite driver
// correctly applies all pragma settings from URL parameters, ensuring they work
// the same as the old SQL PRAGMA statements approach.
func TestSQLiteDriverPragmaIntegration(t *testing.T) {
tests := []struct {
name string
config *Config
expected map[string]any
}{
{
name: "default configuration",
config: Default("/tmp/test.db"),
expected: map[string]any{
"busy_timeout": 10000,
"journal_mode": "wal",
"auto_vacuum": 2, // INCREMENTAL = 2
"wal_autocheckpoint": 1000,
"synchronous": 1, // NORMAL = 1
"foreign_keys": 1, // ON = 1
},
},
{
name: "memory database with foreign keys",
config: Memory(),
expected: map[string]any{
"foreign_keys": 1, // ON = 1
},
},
{
name: "custom configuration",
config: &Config{
Path: "/tmp/custom.db",
BusyTimeout: 5000,
JournalMode: JournalModeDelete,
AutoVacuum: AutoVacuumFull,
WALAutocheckpoint: 1000,
Synchronous: SynchronousFull,
ForeignKeys: true,
},
expected: map[string]any{
"busy_timeout": 5000,
"journal_mode": "delete",
"auto_vacuum": 1, // FULL = 1
"wal_autocheckpoint": 1000,
"synchronous": 2, // FULL = 2
"foreign_keys": 1, // ON = 1
},
},
{
name: "foreign keys disabled",
config: &Config{
Path: "/tmp/no_fk.db",
ForeignKeys: false,
},
expected: map[string]any{
// foreign_keys should not be set (defaults to 0/OFF)
"foreign_keys": 0,
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// Create temporary database file if not memory
if tt.config.Path == memoryDBPath {
// For memory databases, no changes needed
} else {
tempDir := t.TempDir()
dbPath := filepath.Join(tempDir, "test.db")
// Update config with actual temp path
configCopy := *tt.config
configCopy.Path = dbPath
tt.config = &configCopy
}
// Generate URL and open database
url, err := tt.config.ToURL()
if err != nil {
t.Fatalf("Failed to generate URL: %v", err)
}
t.Logf("Opening database with URL: %s", url)
db, err := sql.Open("sqlite", url)
if err != nil {
t.Fatalf("Failed to open database: %v", err)
}
defer db.Close()
// Test connection
if err := db.Ping(); err != nil {
t.Fatalf("Failed to ping database: %v", err)
}
// Verify each expected pragma setting
for pragma, expectedValue := range tt.expected {
t.Run("pragma_"+pragma, func(t *testing.T) {
var actualValue any
query := "PRAGMA " + pragma
err := db.QueryRow(query).Scan(&actualValue)
if err != nil {
t.Fatalf("Failed to query %s: %v", query, err)
}
t.Logf("%s: expected=%v, actual=%v", pragma, expectedValue, actualValue)
// Handle type conversion for comparison
switch expected := expectedValue.(type) {
case int:
if actual, ok := actualValue.(int64); ok {
if int64(expected) != actual {
t.Errorf("%s: expected %d, got %d", pragma, expected, actual)
}
} else {
t.Errorf("%s: expected int %d, got %T %v", pragma, expected, actualValue, actualValue)
}
case string:
if actual, ok := actualValue.(string); ok {
if expected != actual {
t.Errorf("%s: expected %q, got %q", pragma, expected, actual)
}
} else {
t.Errorf("%s: expected string %q, got %T %v", pragma, expected, actualValue, actualValue)
}
default:
t.Errorf("Unsupported expected type for %s: %T", pragma, expectedValue)
}
})
}
})
}
}
// TestForeignKeyConstraintEnforcement verifies that foreign key constraints
// are actually enforced when enabled via URL parameters.
func TestForeignKeyConstraintEnforcement(t *testing.T) {
tempDir := t.TempDir()
dbPath := filepath.Join(tempDir, "fk_test.db")
config := Default(dbPath)
url, err := config.ToURL()
if err != nil {
t.Fatalf("Failed to generate URL: %v", err)
}
db, err := sql.Open("sqlite", url)
if err != nil {
t.Fatalf("Failed to open database: %v", err)
}
defer db.Close()
// Create test tables with foreign key relationship
schema := `
CREATE TABLE parent (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE child (
id INTEGER PRIMARY KEY,
parent_id INTEGER NOT NULL,
name TEXT NOT NULL,
FOREIGN KEY (parent_id) REFERENCES parent(id)
);
`
if _, err := db.Exec(schema); err != nil {
t.Fatalf("Failed to create schema: %v", err)
}
// Insert parent record
if _, err := db.Exec("INSERT INTO parent (id, name) VALUES (1, 'Parent 1')"); err != nil {
t.Fatalf("Failed to insert parent: %v", err)
}
// Test 1: Valid foreign key should work
_, err = db.Exec("INSERT INTO child (id, parent_id, name) VALUES (1, 1, 'Child 1')")
if err != nil {
t.Fatalf("Valid foreign key insert failed: %v", err)
}
// Test 2: Invalid foreign key should fail
_, err = db.Exec("INSERT INTO child (id, parent_id, name) VALUES (2, 999, 'Child 2')")
if err == nil {
t.Error("Expected foreign key constraint violation, but insert succeeded")
} else if !contains(err.Error(), "FOREIGN KEY constraint failed") {
t.Errorf("Expected foreign key constraint error, got: %v", err)
} else {
t.Logf("✓ Foreign key constraint correctly enforced: %v", err)
}
// Test 3: Deleting referenced parent should fail
_, err = db.Exec("DELETE FROM parent WHERE id = 1")
if err == nil {
t.Error("Expected foreign key constraint violation when deleting referenced parent")
} else if !contains(err.Error(), "FOREIGN KEY constraint failed") {
t.Errorf("Expected foreign key constraint error on delete, got: %v", err)
} else {
t.Logf("✓ Foreign key constraint correctly prevented parent deletion: %v", err)
}
}
// TestJournalModeValidation verifies that the journal_mode setting is applied correctly.
func TestJournalModeValidation(t *testing.T) {
modes := []struct {
mode JournalMode
expected string
}{
{JournalModeWAL, "wal"},
{JournalModeDelete, "delete"},
{JournalModeTruncate, "truncate"},
{JournalModeMemory, "memory"},
}
for _, tt := range modes {
t.Run(string(tt.mode), func(t *testing.T) {
tempDir := t.TempDir()
dbPath := filepath.Join(tempDir, "journal_test.db")
config := &Config{
Path: dbPath,
JournalMode: tt.mode,
ForeignKeys: true,
}
url, err := config.ToURL()
if err != nil {
t.Fatalf("Failed to generate URL: %v", err)
}
db, err := sql.Open("sqlite", url)
if err != nil {
t.Fatalf("Failed to open database: %v", err)
}
defer db.Close()
var actualMode string
err = db.QueryRow("PRAGMA journal_mode").Scan(&actualMode)
if err != nil {
t.Fatalf("Failed to query journal_mode: %v", err)
}
if actualMode != tt.expected {
t.Errorf("journal_mode: expected %q, got %q", tt.expected, actualMode)
} else {
t.Logf("✓ journal_mode correctly set to: %s", actualMode)
}
})
}
}
// contains checks if a string contains a substring (helper function).
func contains(str, substr string) bool {
return strings.Contains(str, substr)
}

View File

@ -1,7 +1,6 @@
package db
import (
"context"
"log"
"net/url"
"os"
@ -84,7 +83,7 @@ func newPostgresTestDB(t *testing.T) *HSDatabase {
func newPostgresDBForTest(t *testing.T) *url.URL {
t.Helper()
ctx := context.Background()
ctx := t.Context()
srv, err := postgrestest.Start(ctx)
if err != nil {
t.Fatal(err)

View File

@ -0,0 +1,59 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-01-20 15:24:32.036023546+00:00','2023-01-20 15:24:32.036023546+00:00',NULL,'test_username');
INSERT INTO users VALUES(2,'2023-01-20 15:24:37.819763186+00:00','2023-01-20 15:24:37.819763186+00:00',NULL,'test_username2');
INSERT INTO users VALUES(3,'2023-03-14 18:44:35.748065603+00:00','2023-03-14 18:44:35.748065603+00:00',NULL,'test_username3');
INSERT INTO users VALUES(4,'2023-10-28 10:11:58.184072133+00:00','2023-10-28 10:11:58.184072133+00:00',NULL,'test_username4');
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
INSERT INTO pre_auth_keys VALUES(1,'abc',3,0,0,1,'2023-03-14 18:48:00.276961537+00:00','2023-03-14 19:47:00+00:00');
INSERT INTO pre_auth_keys VALUES(2,'abc',3,0,0,1,'2023-03-19 02:03:37.127380891+00:00','2023-03-19 03:03:00+00:00');
INSERT INTO pre_auth_keys VALUES(3,'abc',3,0,0,1,'2023-07-12 16:29:17.255869839+00:00','2023-07-12 17:29:17.253994971+00:00');
INSERT INTO pre_auth_keys VALUES(4,'abc',4,0,0,0,'2023-10-28 10:12:25.105521216+00:00','2023-10-28 11:12:25.103560646+00:00');
INSERT INTO pre_auth_keys VALUES(5,'abc',4,0,0,1,'2023-10-28 11:19:38.120019211+00:00','2023-10-28 12:19:38.118375437+00:00');
INSERT INTO pre_auth_keys VALUES(6,'abc',4,0,0,1,'2023-10-28 11:47:58.0406679+00:00','2023-10-28 12:47:58.036681164+00:00');
INSERT INTO pre_auth_keys VALUES(7,'abc',4,0,0,1,'2023-10-30 15:14:21.038723484+00:00','2023-10-30 16:14:21.03662712+00:00');
INSERT INTO pre_auth_keys VALUES(8,'abc',4,0,0,1,'2023-10-30 16:18:12.358594006+00:00','2023-10-30 17:18:12.357173229+00:00');
INSERT INTO pre_auth_keys VALUES(9,'abc',4,0,0,1,'2023-10-31 16:00:05.806877017+00:00','2023-10-31 17:00:05.801991493+00:00');
INSERT INTO pre_auth_keys VALUES(10,'abc',1,0,0,1,'2023-10-31 16:17:04.813054795+00:00','2023-10-31 17:17:04.809264757+00:00');
INSERT INTO pre_auth_keys VALUES(11,'abc',1,0,0,1,'2023-11-20 21:03:07.524801178+00:00','2023-11-20 22:03:07.521904023+00:00');
INSERT INTO pre_auth_keys VALUES(12,'abc',1,0,0,1,'2024-01-09 16:53:26.73433598+00:00','2024-01-09 17:53:26.730815243+00:00');
INSERT INTO pre_auth_keys VALUES(13,'abc',1,0,0,0,'2024-01-15 10:57:54.79892743+00:00','2024-01-15 11:57:54.797213855+00:00');
INSERT INTO pre_auth_keys VALUES(14,'abc',3,0,0,1,'2024-02-09 11:11:44.760824633+00:00','2024-02-09 12:11:44.757791384+00:00');
INSERT INTO pre_auth_keys VALUES(15,'abc',1,0,0,1,'2024-02-09 15:58:39.383257853+00:00','2024-02-09 16:58:39.381325589+00:00');
INSERT INTO pre_auth_keys VALUES(16,'abc',3,0,0,1,'2024-02-15 14:28:52.808875211+00:00','2024-02-15 15:28:52.806886242+00:00');
INSERT INTO pre_auth_keys VALUES(17,'abc',3,0,0,1,'2024-03-22 09:14:48.915733965+00:00','2024-03-22 10:14:48.913376104+00:00');
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),"user_id" integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
INSERT INTO machines VALUES(1,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.1','test_hostname','test_given_name',2,'cli','null',0,'2024-08-21 08:40:52.222825283+00:00','2024-08-21 08:18:52.242124403+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-01-20 15:25:20.356129891+00:00','2024-08-21 08:40:52.222881482+00:00',NULL);
INSERT INTO machines VALUES(3,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.3','test_hostname','test_given_name',1,'cli','null',0,'2024-08-21 08:40:56.62914289+00:00','2024-08-21 08:18:46.63998217+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-01-20 15:35:03.370060441+00:00','2024-08-21 08:40:56.629253788+00:00',NULL);
INSERT INTO machines VALUES(6,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.6','test_hostname','test_given_name',3,'authkey','[]',2,'2023-03-20 19:41:31.098518915+00:00','2023-03-20 19:40:35.242992108+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-03-19 02:04:05.008046059+00:00','2023-03-20 19:41:31.098577514+00:00',NULL);
INSERT INTO machines VALUES(9,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.9','test_hostname','test_given_name',1,'cli','null',0,'2024-07-29 13:49:30.299050593+00:00','2024-07-29 13:48:10.308424118+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-07-27 08:56:16.70263804+00:00','2024-07-29 13:49:30.299142293+00:00',NULL);
INSERT INTO machines VALUES(14,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.2','test_hostname','test_given_name',1,'cli','null',0,'2024-08-21 08:40:55.887260826+00:00','2024-08-21 08:18:45.907361083+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-10-10 18:41:13.821106556+00:00','2024-08-21 08:40:55.887344424+00:00',NULL);
INSERT INTO machines VALUES(24,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.16','test_hostname','test_given_name',1,'cli','null',0,'2024-08-21 08:40:53.141335445+00:00','2024-08-21 08:18:43.153446351+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-12-05 10:35:59.888379379+00:00','2024-08-21 08:40:53.141393344+00:00',NULL);
INSERT INTO machines VALUES(26,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.19','test_hostname','test_given_name',1,'authkey','[]',12,'2024-08-21 08:40:53.117322135+00:00','2024-08-21 08:18:43.129839273+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-01-09 16:54:15.190375117+00:00','2024-08-21 08:40:53.117392533+00:00',NULL);
INSERT INTO machines VALUES(27,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.10','test_hostname','test_given_name',3,'authkey','[]',14,'2024-08-21 08:40:17.737469943+00:00','2024-08-21 08:18:47.747596039+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-02-09 11:12:06.970690104+00:00','2024-08-21 08:40:17.737524142+00:00',NULL);
INSERT INTO machines VALUES(28,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.5','test_hostname','test_given_name',1,'cli','null',0,'2024-08-16 16:10:15.388306191+00:00','2024-08-16 15:42:50.445601237+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-02-09 12:05:40.426476827+00:00','2024-08-16 16:10:15.38838619+00:00',NULL);
INSERT INTO machines VALUES(30,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.4','test_hostname','test_given_name',1,'authkey','[]',15,'2024-08-21 08:40:58.279528619+00:00','2024-08-21 08:18:48.290788011+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-02-09 15:58:53.072455801+00:00','2024-08-21 08:40:58.279725115+00:00',NULL);
INSERT INTO machines VALUES(31,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.7','test_hostname','test_given_name',3,'authkey','[]',16,'2024-08-21 08:40:59.118548501+00:00','2024-08-21 08:18:49.131796048+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-02-15 14:29:11.751167192+00:00','2024-08-21 08:40:59.118634099+00:00',NULL);
INSERT INTO machines VALUES(32,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.11','test_hostname','test_given_name',1,'cli','null',0,'2024-08-21 08:40:11.534414289+00:00','2024-08-21 08:18:51.548310242+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-03-05 21:21:27.482961607+00:00','2024-08-21 08:40:11.534488588+00:00',NULL);
INSERT INTO machines VALUES(33,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.12','test_hostname','test_given_name',3,'authkey','[]',17,'2024-07-24 14:02:32.230464112+00:00','2024-07-24 13:58:06.34346502+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-03-22 09:15:06.999732064+00:00','2024-07-24 14:02:32.230542511+00:00',NULL);
INSERT INTO machines VALUES(34,'f3c6d0e51ae64e6020827a70fb345e8ca1225acfe2e5064b6d3611ed2ffc0a7b','c2ef0d2e0ec342d836e45690c7f6e4b986553b78997e08c55fbe28238283e30f','7808fad26f34fb919895224f80e01979074d8b8af4b81d2fa465134c20795e11','100.64.0.8','test_hostname','test_given_name',1,'cli','null',0,'2024-08-20 18:55:03.645637741+00:00','2024-08-20 18:53:33.573112275+00:00','0001-01-01 00:00:00+00:00','{}','[]','2024-05-12 18:10:18.529512769+00:00','2024-08-20 18:55:03.64569204+00:00',NULL);
CREATE TABLE `routes` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`));
INSERT INTO routes VALUES(1,'2023-06-07 19:33:30.351228569+00:00','2024-02-09 12:12:46.846169943+00:00',NULL,1,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(2,'2023-06-07 19:33:30.374825485+00:00','2024-02-09 12:12:46.85904672+00:00',NULL,1,'::/0',1,1,0);
INSERT INTO routes VALUES(3,'2023-06-07 19:40:59.371440019+00:00','2024-02-09 12:12:50.579469958+00:00',NULL,1,'10.9.110.0/24',1,1,1);
INSERT INTO routes VALUES(6,'2024-01-09 16:54:15.230556693+00:00','2024-01-09 16:56:18.454994668+00:00',NULL,26,'172.100.100.0/24',1,1,1);
INSERT INTO routes VALUES(7,'2024-01-09 16:54:15.244301546+00:00','2024-01-09 16:54:15.244301546+00:00',NULL,26,'172.100.100.0/24',1,0,0);
INSERT INTO routes VALUES(8,'2024-02-15 14:29:11.80450206+00:00','2024-02-15 14:31:33.693110756+00:00',NULL,31,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-02-15 14:29:11.819498226+00:00','2024-02-15 14:29:11.819498226+00:00',NULL,31,'0.0.0.0/0',1,0,0);
INSERT INTO routes VALUES(10,'2024-02-15 14:29:11.83141704+00:00','2024-02-15 14:31:33.710242987+00:00',NULL,31,'::/0',1,1,0);
INSERT INTO routes VALUES(11,'2024-02-15 14:29:11.843494351+00:00','2024-02-15 14:29:11.843494351+00:00',NULL,31,'::/0',1,0,0);
INSERT INTO routes VALUES(12,'2024-08-16 14:58:46.162834956+00:00','2024-08-16 14:59:46.380224608+00:00',NULL,32,'192.168.0.24/32',1,1,1);
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `pre_auth_key_acl_tags` (`id` integer,`pre_auth_key_id` integer,`tag` text,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON "users"(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,52 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),"user_id" integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
INSERT INTO machines VALUES(2,'dda8a58fa5db0d02a7351518342b1c1b6c57be2300e9d2c2600b42310c272560','8133aaff1056f74ba062d65ed71c619531b0d8bb3f455f9623ca62b21c765796','d5d8b487956f8ab8186682cd1cc8b1c0d1f38df3e0af2f1e100db219d72d05ca','fd7a:115c:a1e0::2,100.64.0.2','user6','user6',2,'oidc',NULL,0,'2023-08-10 20:39:17.723753+00:00','2023-08-10 20:38:29.407452+00:00','2023-08-11 04:31:47.962903+00:00','{"IPNVersion":"1.46.1-te42e60103-g4cea91365","BackendLogID":"3b49a2a5ab87c374de316f31901b27386e91803b577512c47fb770c4c2491f62","OS":"macOS","OSVersion":"12.6.8","Package":"IPNExtension","DeviceModel":"MacBookPro16,1","Hostname":"user6","Machine":"x86_64","GoArch":"amd64","GoArchVar":"v1","GoVersion":"go1.21rc3","Services":[{"Proto":"peerapi6","Port":47166},{"Proto":"peerapi4","Port":46590},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":2,"DERPLatency":{"1-v4":0.113968906,"10-v4":0.023436893,"11-v4":0.198267412,"12-v4":0.061961581,"13-v4":0.031651191,"14-v4":0.146547143,"16-v4":0.114270957,"17-v4":0.023428486,"18-v4":0.144492636,"19-v4":0.150996698,"2-v4":0.012436127,"20-v4":0.166397065,"21-v4":0.064436639,"22-v4":0.169095616,"24-v4":0.070928559,"3-v4":0.197250582,"4-v4":0.162028147,"5-v4":0.220367619,"6-v4":0.225762119,"7-v4":0.114449341,"8-v4":0.135539131,"9-v4":0.054314979}},"Userspace":false,"UserspaceRouter":true}','["67.58.239.134:41641","192.168.2.63:41641"]','2023-08-08 03:42:32.227355+00:00','2023-08-11 04:31:47.968673+00:00',NULL);
INSERT INTO machines VALUES(13,'5418566216128c1d55cb729d08b020c0948a4974c7ec8631ca2d87c94a57c62f','2df745735e7a024f59385687404555917d904c0cc6b2b4c376d86005fa0c50e9','bc23afab27bd633c993e5feb0cbc64b463bd06bd74e5b0ed34aa0c59db1241cc','fd7a:115c:a1e0::1,100.64.0.1','private-access','private-access',1,'authkey','["tag:routers-general"]',2,'2024-08-21 09:10:42.082477+00:00','2024-08-21 09:10:42.124509+00:00','0001-01-01 00:00:00+00:00','{"IPNVersion":"1.68.1-t92eacec73","BackendLogID":"ace1ce1f1029d84582595b60a979159f7ffc2d088c58bc58ce957d5b5d76ab65","OS":"linux","OSVersion":"6.1.102-111.182.amzn2023.aarch64","Container":true,"Distro":"alpine","DistroVersion":"3.18.6","Desktop":false,"Hostname":"private-access","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.22.4","RoutableIPs":["0.0.0.0/0","::/0","10.0.0.0/8","10.18.80.2/32"],"Services":[{"Proto":"peerapi6","Port":59780},{"Proto":"peerapi4","Port":58436},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":10,"DERPLatency":{"1-v4":0.072225784,"10-v4":0.006838935,"11-v4":0.190929032,"12-v4":0.059929235,"13-v4":0.034135764,"14-v4":0.160624902,"16-v4":0.081274428,"17-v4":0.027732861,"18-v4":0.152569261,"19-v4":0.156006631,"2-v4":0.021369602,"20-v4":0.191327522,"21-v4":0.072034124,"22-v4":0.17290295,"23-v4":0.24451928,"24-v4":0.07036978,"3-v4":0.218839858,"4-v4":0.154432955,"5-v4":0.205852211,"7-v4":0.106623559,"8-v4":0.142767263,"9-v4":0.055452594}},"Cloud":"aws","Userspace":false,"UserspaceRouter":false}','["54.218.81.157:55438","10.18.95.117:55438","172.17.0.1:55438"]','2023-08-09 07:25:28.410294+00:00','2024-08-21 09:10:42.125774+00:00',NULL);
INSERT INTO machines VALUES(14,'45b7283a09376c6e4a0e91c791cd7ed62d3ab67af04e2ab65ea769f13b5d01a8','3f122817b7daec63358d7f32037157cc0742b236ebe10159200e04661846dc12','ca8c018c9a84e1ee5bea886b353b85a1cbc41b26bad1a8ea09250a73ee3bc224','fd7a:115c:a1e0::3,100.64.0.3','user5','user5',2,'oidc',NULL,0,'2023-09-05 20:17:56.144957+00:00','2023-09-05 20:17:15.131619+00:00','2023-09-02 02:14:29.91958+00:00','{"IPNVersion":"1.48.1-t528f95da6-gc4e4acad7","BackendLogID":"105b508bb534b33b1fbbfcab5d1b35b2f8aa14898f7f1deb79f82a0b4556a337","OS":"macOS","OSVersion":"12.6.8","Package":"IPNExtension","DeviceModel":"MacBookPro16,1","Hostname":"user5","Machine":"x86_64","GoArch":"amd64","GoArchVar":"v1","GoVersion":"go1.21.0","Services":[{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":2,"DERPLatency":{"1-v4":0.110587393,"10-v4":0.021509598,"11-v4":0.196329449,"12-v4":0.059015905,"13-v4":0.028908204,"14-v4":0.14475452,"16-v4":0.089070015,"17-v4":0.021616309,"18-v4":0.14320796,"19-v4":0.144814647,"2-v4":0.010198952,"20-v4":0.164708226,"21-v4":0.110530864,"22-v4":0.169718648,"24-v4":0.110470627,"3-v4":0.198647468,"4-v4":0.162606553,"5-v4":0.218460376,"6-v4":0.23733193,"7-v4":0.114587062,"8-v4":0.140155524,"9-v4":0.052894305}},"Userspace":false,"UserspaceRouter":true}','["67.58.239.134:41641","192.168.2.63:41641"]','2023-08-10 20:41:58.499623+00:00','2023-09-05 20:17:56.146062+00:00',NULL);
INSERT INTO machines VALUES(15,'46b10c2ee93b1da403a87d7d57eecd9b3bf47ce58425742bc44bb8967984f3e9','35e6f69d23d17c13c48c45c0b74d1c3db85b21736151bcc06933939dface88b0','393ae3076213aae7a3ac11bc08fb0ad5c690ee5c50a4522f209fb5b018ecc958','fd7a:115c:a1e0::4,100.64.0.4','user3','user3',3,'oidc',NULL,0,'2023-09-06 02:43:29.503895+00:00','2023-09-06 02:43:49.511926+00:00','2023-09-06 23:17:20.322291+00:00','{"IPNVersion":"1.46.1-te42e60103-g4cea91365","BackendLogID":"8f10b84dbe2a45b68242bbf236952cfe88fdce68de11d6c21d4ea9b6a3cbe0e4","OS":"macOS","OSVersion":"13.5.0","Package":"IPNExtension","DeviceModel":"MacBookPro16,1","Hostname":"user3","Machine":"x86_64","GoArch":"amd64","GoArchVar":"v1","GoVersion":"go1.21rc3","Services":[{"Proto":"peerapi6","Port":40203},{"Proto":"peerapi4","Port":37067},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":true,"PMP":false,"PCP":false,"PreferredDERP":13,"DERPLatency":{"12-v4":0.026085574,"13-v4":0.00640859,"9-v4":0.024989145}},"Userspace":false,"UserspaceRouter":true}','["8.36.226.139:41641","192.168.5.49:41641"]','2023-08-10 21:11:29.400994+00:00','2023-09-06 02:43:49.512388+00:00',NULL);
INSERT INTO machines VALUES(16,'785f4b01cbbafb26f69acc95913f87c18f91b400526a8fea867e57d1f6979199','26ff15bb8b839d2648dd5ec3dd751c31a96c56604c9bcc7865dad2a285092b11','03dd9981e5e2b580dfc7c4fc6614e99dfa44671810a04f43b351d4a081fedfd7','fd7a:115c:a1e0::5,100.64.0.5','user1','user1',4,'oidc',NULL,0,'2023-09-06 02:44:13.123335+00:00','2023-09-06 02:43:43.131322+00:00','2023-09-06 22:13:57.020939+00:00','{"IPNVersion":"1.48.1-t528f95da6-gc4e4acad7","BackendLogID":"40e9bb1b2cc2f8a56648c6a892cfc00c0f03d2457822a59606e95d75a1e82fec","OS":"macOS","OSVersion":"13.5.0","Package":"IPNExtension","DeviceModel":"MacBookPro15,1","Hostname":"user1","Machine":"x86_64","GoArch":"amd64","GoArchVar":"v1","GoVersion":"go1.21.0","Services":[{"Proto":"peerapi6","Port":44445},{"Proto":"peerapi4","Port":41053},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":true,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"HavePortMap":true,"UPnP":true,"PMP":false,"PCP":false,"PreferredDERP":2,"DERPLatency":{"10-v4":0.178866462,"17-v4":0.17890099,"17-v6":0.178871041,"2-v4":0.083849135,"2-v6":0.085625895}},"Userspace":false,"UserspaceRouter":true}','["73.241.238.118:59407","73.241.238.118:57965","[2601:646:c500:3ad0:694f:e60a:54dd:9236]:41641","73.241.238.118:11709","73.241.238.118:41902","73.241.238.118:57674","73.241.238.118:41641","10.0.0.158:57965","[2601:646:c500:3ad0::670e]:57965","[2601:646:c500:3ad0:ce6:7064:450d:a01a]:57965","[2601:646:c500:3ad0:694f:e60a:54dd:9236]:57965"]','2023-08-10 23:58:34.357314+00:00','2023-09-06 02:44:13.123879+00:00',NULL);
INSERT INTO machines VALUES(17,'85892b41a04ffab78009c9129a87006e9af9335d4e3521939acddfb5a3edc0f1','7e7d018c338666e72b3b5ec2cc5e987bb294a88320740f07c9a337f07c2228b6','96425c4e4c62419e780b920f117183b77be80bc370f3d528bbd0bf4384703f2f','fd7a:115c:a1e0::6,100.64.0.6','user4','user4',2,'oidc',NULL,0,'2023-09-12 22:58:03.464908+00:00','2023-09-12 22:58:03.37758+00:00','2023-09-12 22:58:08.958716+00:00','{"IPNVersion":"1.48.1-t528f95da6-gc4e4acad7","BackendLogID":"5feae6bec74c6b933912936cfe4647f220d31d4aae9595838e0d5ab93c6ae277","OS":"macOS","OSVersion":"13.5.2","Package":"IPNExtension","DeviceModel":"MacBookPro18,1","Hostname":"user4","NoLogsNoSupport":true,"Machine":"arm64","GoArch":"arm64","GoVersion":"go1.21.0","Services":[{"Proto":"peerapi6","Port":64551},{"Proto":"peerapi4","Port":61927},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":2,"DERPLatency":{"10-v4":0.021871917,"17-v4":0.072667291,"2-v4":0.010047084}},"Userspace":false,"UserspaceRouter":true}','["67.58.239.134:41641","192.168.2.205:41641"]','2023-08-24 06:16:01.898323+00:00','2023-09-12 22:58:08.961416+00:00',NULL);
INSERT INTO machines VALUES(18,'d1b2d75439d096b762a8c197377a37c7e771edd51f2a2146114af94756afa696','2da1fa2a8beeed09aede703c44b045bdb21a8819e505b91ed54b66599a3d61e4','37ad3823ffdada188c1710388f1cd242646e66a60d7554f38e069d8df90b064f','fd7a:115c:a1e0::7,100.64.0.7','user7','user7',3,'oidc',NULL,0,'2023-09-14 03:45:00.450227+00:00','2023-09-14 03:44:59.144507+00:00','2023-09-13 22:23:33.608107+00:00','{"IPNVersion":"1.48.1-t528f95da6-gc4e4acad7","BackendLogID":"fdcd2df9a10448a038e3afbdd166762d8917c2f10f4d49c2d257c2269f7a3ef3","OS":"macOS","OSVersion":"13.5.2","Package":"IPNExtension","DeviceModel":"MacBookPro16,1","Hostname":"user7","NoLogsNoSupport":true,"Machine":"x86_64","GoArch":"amd64","GoArchVar":"v1","GoVersion":"go1.21.0","Services":[{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":false,"HairPinning":false,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":true,"WorkingICMPv4":false,"UPnP":true,"PMP":false,"PCP":false,"PreferredDERP":13,"DERPLatency":{"1-v4":0.106408989,"10-v4":0.03490791,"11-v4":0.175664039,"12-v4":0.025765898,"13-v4":0.006238122,"14-v4":0.113346949,"16-v4":0.047132419,"17-v4":0.034994123,"18-v4":0.117520649,"19-v4":0.114357219,"2-v4":0.031949238,"20-v4":0.186615346,"21-v4":0.035247054,"22-v4":0.130433232,"23-v4":0.219779149,"24-v4":0.077523355,"3-v4":0.195639797,"4-v4":0.123427047,"5-v4":0.172791876,"6-v4":0.249922387,"7-v4":0.11796353,"8-v4":0.108542864,"9-v4":0.025837496}},"Userspace":false,"UserspaceRouter":true}','["8.36.226.139:41641","192.168.5.49:41641"]','2023-09-12 17:26:45.871277+00:00','2023-09-14 03:45:00.451656+00:00',NULL);
INSERT INTO machines VALUES(19,'0509c7634a68d962a11eb677b0914303e626af043ec1fe4e12c2dc5d45516cb8','5ba0a0384cffe3faf0a050ad8c5bd73a508faa63441b0fb8502c57313a4c523f','12d047ca5a667e2f4a02ac77994c3b6bd85359efa3810df372c0aad3a576a018','fd7a:115c:a1e0::8,100.64.0.8','user2','user2',2,'oidc','null',0,'2024-07-05 23:25:37.618298+00:00','2024-07-05 23:25:37.386862+00:00','2024-07-06 23:07:22.092685+00:00','{"IPNVersion":"1.68.2-tc79c500c7","BackendLogID":"047f3d6f49ca7c0990ff0084cb14f3aa3b8c41d40e4979ae7626d267bf8bca73","OS":"macOS","Package":"tailscaled","Hostname":"user2","Machine":"arm64","GoArch":"arm64","GoVersion":"go1.22.4","Services":[{"Proto":"peerapi-dns-proxy","Port":1}],"Userspace":false,"UserspaceRouter":true}','["156.47.240.192:61820","192.168.2.205:61820"]','2024-07-05 23:07:20.301108+00:00','2024-07-06 23:07:22.101717+00:00',NULL);
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `pre_auth_key_acl_tags` (`id` integer,`pre_auth_key_id` integer,`tag` text,PRIMARY KEY (`id`));
INSERT INTO pre_auth_key_acl_tags VALUES(1,1,'tag:routers-general');
INSERT INTO pre_auth_key_acl_tags VALUES(2,2,'tag:routers-general');
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
INSERT INTO pre_auth_keys VALUES(1,'832bf4265e26f5a5d4ea3593f652ed0df64cf9250f70ee23',1,'t','t','t','2023-08-08 01:52:38.951578+00:00','2033-08-05 01:52:38.949719+00:00');
INSERT INTO pre_auth_keys VALUES(2,'c304da0964e5ff7b299a6426b413ad729b898bc2c2d829aa',1,'f','f','t','2023-08-09 07:12:47.593913+00:00','2023-08-09 08:12:47.591239+00:00');
CREATE TABLE `routes` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`));
INSERT INTO routes VALUES(1,'2023-08-08 03:37:36.017468+00:00','2023-08-08 03:37:36.031681+00:00',NULL,1,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(2,'2023-08-08 03:37:36.021527+00:00','2023-08-08 03:37:36.035791+00:00',NULL,1,'::/0',1,1,0);
INSERT INTO routes VALUES(3,'2023-08-08 04:30:41.584823+00:00','2023-08-08 04:30:41.597683+00:00',NULL,3,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(4,'2023-08-08 04:30:41.589517+00:00','2023-08-08 04:30:41.601622+00:00',NULL,3,'::/0',1,1,0);
INSERT INTO routes VALUES(7,'2023-08-08 15:23:37.871901+00:00','2023-08-08 15:23:37.883309+00:00',NULL,5,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-08-08 15:23:37.874743+00:00','2023-08-08 15:23:37.886933+00:00',NULL,5,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2023-08-09 02:32:42.366585+00:00','2023-08-09 02:32:42.377397+00:00',NULL,6,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(10,'2023-08-09 02:32:42.368994+00:00','2023-08-09 02:32:42.37993+00:00',NULL,6,'::/0',1,1,0);
INSERT INTO routes VALUES(11,'2023-08-09 02:32:42.370746+00:00','2023-08-09 02:32:42.370746+00:00',NULL,6,'10.0.0.0/8',1,0,0);
INSERT INTO routes VALUES(12,'2023-08-09 02:55:13.294542+00:00','2023-08-09 02:55:13.307086+00:00',NULL,7,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(13,'2023-08-09 02:55:13.297551+00:00','2023-08-09 02:55:13.310197+00:00',NULL,7,'::/0',1,1,0);
INSERT INTO routes VALUES(14,'2023-08-09 02:55:13.299975+00:00','2023-08-09 02:55:13.299975+00:00',NULL,7,'10.0.0.0/8',1,0,0);
INSERT INTO routes VALUES(89,'2023-08-09 05:10:16.439999+00:00','2023-08-09 05:10:16.455326+00:00',NULL,9,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(90,'2023-08-09 05:10:16.445257+00:00','2023-08-09 05:10:16.458885+00:00',NULL,9,'::/0',1,1,0);
INSERT INTO routes VALUES(91,'2023-08-09 05:10:16.448348+00:00','2023-08-09 06:18:14.219819+00:00',NULL,9,'10.0.0.0/8',1,1,0);
INSERT INTO routes VALUES(166,'2023-08-09 06:18:09.248571+00:00','2023-08-09 06:18:09.262669+00:00',NULL,11,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(167,'2023-08-09 06:18:09.251732+00:00','2023-08-09 06:18:09.266107+00:00',NULL,11,'::/0',1,1,0);
INSERT INTO routes VALUES(168,'2023-08-09 06:18:09.253883+00:00','2023-08-09 06:18:14.222585+00:00',NULL,11,'10.0.0.0/8',1,1,1);
INSERT INTO routes VALUES(169,'2023-08-09 06:34:33.350442+00:00','2023-08-09 06:34:33.361231+00:00',NULL,12,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(170,'2023-08-09 06:34:33.352935+00:00','2023-08-09 06:34:33.364731+00:00',NULL,12,'::/0',1,1,0);
INSERT INTO routes VALUES(171,'2023-08-09 06:34:33.354735+00:00','2023-08-09 06:34:33.354735+00:00',NULL,12,'10.0.0.0/8',1,0,0);
INSERT INTO routes VALUES(172,'2023-08-09 07:25:28.459499+00:00','2023-08-09 07:25:28.459499+00:00',NULL,13,'10.0.0.0/8',1,0,0);
INSERT INTO routes VALUES(173,'2023-08-09 07:25:28.465389+00:00','2023-08-09 07:25:28.506247+00:00',NULL,13,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(174,'2023-08-09 07:25:28.473006+00:00','2023-08-09 07:25:28.51642+00:00',NULL,13,'::/0',1,1,0);
INSERT INTO routes VALUES(175,'2023-08-11 22:09:28.25414+00:00','2023-08-11 22:09:30.021129+00:00',NULL,13,'10.18.80.2/32',1,1,1);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-08-08 01:46:05.562873+00:00','2023-08-08 01:46:05.562873+00:00',NULL,'routers');
INSERT INTO users VALUES(2,'2023-08-08 03:42:32.218269+00:00','2023-08-08 03:42:32.218269+00:00',NULL,'user2');
INSERT INTO users VALUES(3,'2023-08-10 21:11:29.386521+00:00','2023-08-10 21:11:29.386521+00:00',NULL,'user3');
INSERT INTO users VALUES(4,'2023-08-10 23:58:34.343848+00:00','2023-08-10 23:58:34.343848+00:00',NULL,'user4');
COMMIT;

View File

@ -0,0 +1,40 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
CREATE TABLE `users` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text,CONSTRAINT `uni_users_name` UNIQUE (`name`));
INSERT INTO users VALUES(1,'2024-09-27 14:26:08.573622915+00:00','2024-09-27 14:26:08.573622915+00:00',NULL,'user2');
INSERT INTO users VALUES(2,'2024-09-27 14:26:17.094350688+00:00','2024-09-27 14:26:17.094350688+00:00',NULL,'user1');
CREATE TABLE `pre_auth_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'3d133ec953e31fd41edbd935371234f762b4bae300cea618',1,1,0,1,'2024-09-27 14:26:14.737869796+00:00','2024-09-28 14:26:14.736601748+00:00');
INSERT INTO pre_auth_keys VALUES(2,'9813cc1df1832259fb6322dad788bb9bec89d8a01eef683a',2,1,0,1,'2024-09-27 14:26:23.181049239+00:00','2024-09-28 14:26:23.179903567+00:00');
CREATE TABLE `routes` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
CREATE TABLE `pre_auth_key_acl_tags` (`id` integer PRIMARY KEY AUTOINCREMENT,`pre_auth_key_id` integer,`tag` text,CONSTRAINT `fk_pre_auth_keys_acl_tags` FOREIGN KEY (`pre_auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE CASCADE);
CREATE TABLE `api_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer PRIMARY KEY AUTOINCREMENT,`machine_key` text,`node_key` text,`disco_key` text,`endpoints` text,`host_info` text,`hostinfo` text,`ipv4` text,`ipv6` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:1efe4388236c1c83fe0a19d3ce7c321ab81e138a4da57917c231ce4c01944409','nodekey:4091de8ee569b46a0cf322ae7350e80f3af4ccfd6d83a27ad4ce455982bd0f52','discokey:0ec0a701b7596a230fff993483c12019951899920fbc1eefa90f73f05147ea20','["172.19.0.5:50477"]','{"IPNVersion":"1.74.1-t0ca17be4a","BackendLogID":"ef6d8598273807218f7589f6c957f09d0caa2c146b71a22ab417bc2cd2c61e32","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Package":"container","Hostname":"ts-1-74-9r0gv5","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":48783},{"Proto":"peerapi6","Port":61271},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.74.1-t0ca17be4a","BackendLogID":"ef6d8598273807218f7589f6c957f09d0caa2c146b71a22ab417bc2cd2c61e32","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Package":"container","Hostname":"ts-1-74-9r0gv5","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":48783},{"Proto":"peerapi6","Port":61271},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.75.24.109','fd7a:115c:a1e0:6558:d71d:c420:6693:2137','ts-1-74-9r0gv5','ts-1-74-9r0gv5',1,'authkey','[]',1,'2024-09-27 14:26:16.86266134+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.818308317+00:00','2024-09-27 14:26:16.865671604+00:00',NULL);
INSERT INTO nodes VALUES(2,'mkey:779766343bd0311dd043e61f4e5ab13b43dbd9fef3c243aad406aac43146f566','nodekey:ae80297e118d23f00e029c89c82c53cf575803c40e0dfab5bf3f34213b265731','discokey:591540881c8a783dcfeeb1dbe049ce9a9b74347b6a96c0f17452735cb1de6c2f','["172.19.0.9:59415"]','{"IPNVersion":"1.73.0-dev20240911-t98f4dd985","BackendLogID":"98d5b64d1713a8048c260dc0a18d453bae0f144fdcccb31445356d30ef890a0b","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Hostname":"ts-head-2rx0pf","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":62304},{"Proto":"peerapi6","Port":58495},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.73.0-dev20240911-t98f4dd985","BackendLogID":"98d5b64d1713a8048c260dc0a18d453bae0f144fdcccb31445356d30ef890a0b","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Hostname":"ts-head-2rx0pf","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":62304},{"Proto":"peerapi6","Port":58495},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.66.134.61','fd7a:115c:a1e0:9f2a:7124:e520:c18e:1a70','ts-head-2rx0pf','ts-head-2rx0pf',1,'authkey','[]',1,'2024-09-27 14:26:16.872651222+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.824358847+00:00','2024-09-27 14:26:16.875317527+00:00',NULL);
INSERT INTO nodes VALUES(3,'mkey:233ecd117c36c1e5a635b1658fd54369fddf38b5312adf8aae38dfe6506fdf47','nodekey:2a53f1bbefae24a4724201379a05d32c84fc8c86fb2c856334a904ac53a3b827','discokey:acda4e99407eed3b807b81649998d69f93e9c28ce6e4dc1032686b45a70bca09','["172.19.0.6:38747"]','{"IPNVersion":"1.72.1-tf4a95663c","BackendLogID":"6d2ed9adf12339635cbe3098b0000898e1206217be28203e914c561b48d18d14","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-1-72-tiaqxm","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.22.5","Services":[{"Proto":"peerapi4","Port":35537},{"Proto":"peerapi6","Port":52493},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.72.1-tf4a95663c","BackendLogID":"6d2ed9adf12339635cbe3098b0000898e1206217be28203e914c561b48d18d14","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-1-72-tiaqxm","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.22.5","Services":[{"Proto":"peerapi4","Port":35537},{"Proto":"peerapi6","Port":52493},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.122.53.94','fd7a:115c:a1e0:7ff3:3849:312e:e0ce:b130','ts-1-72-tiaqxm','ts-1-72-tiaqxm',1,'authkey','[]',1,'2024-09-27 14:26:16.876448699+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.826628358+00:00','2024-09-27 14:26:16.877346245+00:00',NULL);
INSERT INTO nodes VALUES(4,'mkey:faa7947734ef7763fd18f23502b934d53d6f8120f6ff95dd3fd1efcda16b9b60','nodekey:2b463a60a90b18a43b64aab223e1f52887d67579b645eec44489c51ff0246e59','discokey:a4a8a7340733bc6fd01f9e3932e2c76311b06e63ed6d5f014e703bd02d664923','["172.19.0.4:40007"]','{"IPNVersion":"1.58.2-tb0e1bbb62","BackendLogID":"d136d72e6814dece6a96d1be183c76365a2998969a33b6dbcbcfa3fbc36c3441","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-58-1nvqo9","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":39487},{"Proto":"peerapi6","Port":54215},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.58.2-tb0e1bbb62","BackendLogID":"d136d72e6814dece6a96d1be183c76365a2998969a33b6dbcbcfa3fbc36c3441","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-58-1nvqo9","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":39487},{"Proto":"peerapi6","Port":54215},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.81.207.12','fd7a:115c:a1e0:6eab:4356:d2b2:3ec6:db5e','ts-1-58-1nvqo9','ts-1-58-1nvqo9',1,'authkey','[]',1,'2024-09-27 14:26:16.867951657+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.830098209+00:00','2024-09-27 14:26:16.872950015+00:00',NULL);
INSERT INTO nodes VALUES(5,'mkey:1dc2e7d2021e5e0ecfd5769e007088c570c24f92d72f8c81e9cbafaf651c321e','nodekey:ffde0f4d4b9a2365e2c62c47e86597565c7f95a47f0efe3468501d45e844cf31','discokey:aca5c0f12ea887b46ec89d4a2f5759587689a33757026760557bc9cf94979f4d','["172.19.0.7:46344"]','{"IPNVersion":"1.56.1-tf1ea3161a","BackendLogID":"c6ebd81c20af7b4aa066b458c48232d155b39b4cf2f51eb2247fdf75b7f133f6","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-56-z9manh","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":58612},{"Proto":"peerapi6","Port":41402},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.56.1-tf1ea3161a","BackendLogID":"c6ebd81c20af7b4aa066b458c48232d155b39b4cf2f51eb2247fdf75b7f133f6","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-56-z9manh","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":58612},{"Proto":"peerapi6","Port":41402},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.66.133.106','fd7a:115c:a1e0:fbd2:e73f:b9c7:6f65:b22f','ts-1-56-z9manh','ts-1-56-z9manh',1,'authkey','[]',1,'2024-09-27 14:26:16.878707293+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.830352877+00:00','2024-09-27 14:26:16.878994587+00:00',NULL);
INSERT INTO nodes VALUES(6,'mkey:a6b1a81c08622e5ba6ce0411be5d7a4a1cc9c56e1e2cb255a1411540a0353c5c','nodekey:951c0e942b007a32eada6c4de231537a49144ff36144ba09989142e48400aa72','discokey:a3addac173e10230313a823b88444fd082183dbd7a13b503c70eba1766ee5b5f','["172.19.0.8:40676"]','{"IPNVersion":"1.73.100-t7dcf65a10","BackendLogID":"352b9c938ef6fffd1e9d7b357370a9413abf57590c97f2176684b0572426c72c","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-unstable-qxkobr","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.0","Services":[{"Proto":"peerapi4","Port":56973},{"Proto":"peerapi6","Port":51259},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.73.100-t7dcf65a10","BackendLogID":"352b9c938ef6fffd1e9d7b357370a9413abf57590c97f2176684b0572426c72c","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-unstable-qxkobr","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.0","Services":[{"Proto":"peerapi4","Port":56973},{"Proto":"peerapi6","Port":51259},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.90.160.114','fd7a:115c:a1e0:8f5b:5b4c:2619:eb78:588d','ts-unstable-qxkobr','ts-unstable-qxkobr',1,'authkey','[]',1,'2024-09-27 14:26:16.872053136+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:14.846863625+00:00','2024-09-27 14:26:16.873881395+00:00',NULL);
INSERT INTO nodes VALUES(7,'mkey:49add8704a1d2ed2981cff46ca48eb8ebaf3c8c454b9b8ad23ad1f9e422aff48','nodekey:8fea100f6c7f4ad2d8104701611d1e071f3b7f97a74e447a668e8de15547e126','discokey:73ca6a00fbcd8d630566f9329c82c9a3d024430cdfec638347e87ad19add737d','["172.19.0.13:44781"]','{"IPNVersion":"1.58.2-tb0e1bbb62","BackendLogID":"40d54901b911fd583dfb54bbf328450fa1da24291a65c68a1b6799808e2c2952","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-58-fvd14i","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":57976},{"Proto":"peerapi6","Port":55540},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.58.2-tb0e1bbb62","BackendLogID":"40d54901b911fd583dfb54bbf328450fa1da24291a65c68a1b6799808e2c2952","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-58-fvd14i","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":57976},{"Proto":"peerapi6","Port":55540},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.104.229.213','fd7a:115c:a1e0:2652:4049:544d:31b3:7e65','ts-1-58-fvd14i','ts-1-58-fvd14i',2,'authkey','[]',2,'2024-09-27 14:26:25.289265425+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.255563272+00:00','2024-09-27 14:26:25.293329154+00:00',NULL);
INSERT INTO nodes VALUES(8,'mkey:232725e99c1aa8f275259e6a88e59f77d3e5a8644f987c3be56b9a9d8b0b6803','nodekey:9fff7b41b1e7739214078737b4d473518509916fd429f37dbcd21538cb420413','discokey:184f4a42db7e71f4c002befb59fe200aada0514b3290d4609258797f414c4246','["172.19.0.12:40625"]','{"IPNVersion":"1.74.1-t0ca17be4a","BackendLogID":"40d20ee5cc6374aecea21b6d996be3dddfde1a14a72f43b88abcf54ac4dc7393","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Package":"container","Hostname":"ts-1-74-m8xzkz","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":50864},{"Proto":"peerapi6","Port":57864},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.74.1-t0ca17be4a","BackendLogID":"40d20ee5cc6374aecea21b6d996be3dddfde1a14a72f43b88abcf54ac4dc7393","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Package":"container","Hostname":"ts-1-74-m8xzkz","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":50864},{"Proto":"peerapi6","Port":57864},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.103.73.167','fd7a:115c:a1e0:9094:220b:d07c:2ada:afa8','ts-1-74-m8xzkz','ts-1-74-m8xzkz',2,'authkey','[]',2,'2024-09-27 14:26:25.298808764+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.257602115+00:00','2024-09-27 14:26:25.299937061+00:00',NULL);
INSERT INTO nodes VALUES(9,'mkey:d86a2d3bf33f28068f41bcf28eaef65874e75645b8a209b8e8ff75b982fd3030','nodekey:b791922bf53ca56cf20eddab18f70819dd974e88f81e0899468bbdb5ce57a947','discokey:3053d621f5f6a66bed296ca47950c73c6baeac05f363e6b93f4de436e5480912','["172.19.0.11:35503"]','{"IPNVersion":"1.56.1-tf1ea3161a","BackendLogID":"0dcd9913179fdd831ed881b2c4bbdbd34f8c35cdc291b770af1de2bd6f65406f","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-56-d68ebk","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":60691},{"Proto":"peerapi6","Port":52294},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.56.1-tf1ea3161a","BackendLogID":"0dcd9913179fdd831ed881b2c4bbdbd34f8c35cdc291b770af1de2bd6f65406f","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.5","Desktop":false,"Hostname":"ts-1-56-d68ebk","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.21.5","Services":[{"Proto":"peerapi4","Port":60691},{"Proto":"peerapi6","Port":52294},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.66.151.35','fd7a:115c:a1e0:3bb0:cb5d:ce50:aff7:e909','ts-1-56-d68ebk','ts-1-56-d68ebk',2,'authkey','[]',2,'2024-09-27 14:26:25.295234746+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.259854709+00:00','2024-09-27 14:26:25.299175891+00:00',NULL);
INSERT INTO nodes VALUES(10,'mkey:7c5d3c34416dcba5331cb4e982f2a39628e0f20af864f2dc3d374c78c3127f3f','nodekey:f9ce61c929baab74b66c15d06e1ed029b4a810b208cbcf09fc833579ef4c2d1d','discokey:6cf5becf49993e8346022e336d009aed97fc336b06bf5233f41fdd958125552e','["172.19.0.10:49139"]','{"IPNVersion":"1.73.100-t7dcf65a10","BackendLogID":"c8babece2de39ecf1fb604a6308ed4682bc80d57a20469f2a0a963839a3cf89a","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-unstable-rww2w3","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.0","Services":[{"Proto":"peerapi4","Port":34210},{"Proto":"peerapi6","Port":33839},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.73.100-t7dcf65a10","BackendLogID":"c8babece2de39ecf1fb604a6308ed4682bc80d57a20469f2a0a963839a3cf89a","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-unstable-rww2w3","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.0","Services":[{"Proto":"peerapi4","Port":34210},{"Proto":"peerapi6","Port":33839},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.80.216.124','fd7a:115c:a1e0:862b:7842:203c:b321:bc21','ts-unstable-rww2w3','ts-unstable-rww2w3',2,'authkey','[]',2,'2024-09-27 14:26:25.306378593+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.264221272+00:00','2024-09-27 14:26:25.307441765+00:00',NULL);
INSERT INTO nodes VALUES(11,'mkey:011d835011ce062b6d4599e12db61b40a0232841733bc562924e81f8fa27e918','nodekey:b0102b4105fee529bf2b639cda917764435532499bbe1e5b196912ade3fad74e','discokey:28b9ca33497f8e61af9a650ab7043c1c889c3dda3fc5502e57b26aa34320f92f','["172.19.0.14:33800"]','{"IPNVersion":"1.72.1-tf4a95663c","BackendLogID":"073c48058a504ed882178e356d461aa1ea43d2f0b18eb791dc776aafecb2916e","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-1-72-au8tie","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.22.5","Services":[{"Proto":"peerapi4","Port":38962},{"Proto":"peerapi6","Port":42239},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.72.1-tf4a95663c","BackendLogID":"073c48058a504ed882178e356d461aa1ea43d2f0b18eb791dc776aafecb2916e","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.8","Desktop":false,"Package":"container","Hostname":"ts-1-72-au8tie","Machine":"aarch64","GoArch":"arm64","GoVersion":"go1.22.5","Services":[{"Proto":"peerapi4","Port":38962},{"Proto":"peerapi6","Port":42239},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.88.147.164','fd7a:115c:a1e0:82b7:17b5:cc3d:7714:4a61','ts-1-72-au8tie','ts-1-72-au8tie',2,'authkey','[]',2,'2024-09-27 14:26:25.305073961+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.266659201+00:00','2024-09-27 14:26:25.305586505+00:00',NULL);
INSERT INTO nodes VALUES(12,'mkey:7c2bcc073197a9e56d0eb13f0328e75768223569c2f4468d83d9ae05bfa50c5d','nodekey:d51788b3908c85e1d80ccc7f91e12d482e5da7dfb30d2f65f7161592d67a7f2e','discokey:a332f1553d1ad958abbe91dc0e3fc661e8f78864839f4bc7f8c8b0f12ef4e450','["172.19.0.15:47328"]','{"IPNVersion":"1.73.0-dev20240911-t98f4dd985","BackendLogID":"51a7c7677a3758f7a6c77fa555ab4834a0f5e7482bb64ddcde02c73ec9c2a138","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Hostname":"ts-head-ujp4xa","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":55532},{"Proto":"peerapi6","Port":55720},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','{"IPNVersion":"1.73.0-dev20240911-t98f4dd985","BackendLogID":"51a7c7677a3758f7a6c77fa555ab4834a0f5e7482bb64ddcde02c73ec9c2a138","OS":"linux","OSVersion":"6.8.0-36-generic","Container":true,"Distro":"alpine","DistroVersion":"3.18.9","Desktop":false,"Hostname":"ts-head-ujp4xa","Machine":"aarch64","GoArch":"arm64","GoArchVar":"v8.0","GoVersion":"go1.23.1","Services":[{"Proto":"peerapi4","Port":55532},{"Proto":"peerapi6","Port":55720},{"Proto":"peerapi-dns-proxy","Port":1}],"NetInfo":{"MappingVariesByDestIP":null,"HairPinning":null,"WorkingIPv6":false,"OSHasIPv6":true,"WorkingUDP":false,"WorkingICMPv4":false,"UPnP":false,"PMP":false,"PCP":false,"PreferredDERP":999,"FirewallMode":"ipt-default"},"Userspace":false,"UserspaceRouter":false,"AppConnector":false}','100.120.55.122','fd7a:115c:a1e0:b9b:d74c:e55a:c201:eb5','ts-head-ujp4xa','ts-head-ujp4xa',2,'authkey','[]',2,'2024-09-27 14:26:25.30691872+00:00','0001-01-01 00:00:00+00:00','2024-09-27 14:26:23.274483531+00:00','2024-09-27 14:26:25.30791685+00:00',NULL);
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
DELETE FROM sqlite_sequence;
INSERT INTO sqlite_sequence VALUES('nodes',12);
INSERT INTO sqlite_sequence VALUES('users',2);
INSERT INTO sqlite_sequence VALUES('pre_auth_keys',2);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,40 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
CREATE TABLE `users` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text,CONSTRAINT `uni_users_name` UNIQUE (`name`));
INSERT INTO users VALUES(1,'2024-09-27 14:12:26.861201+02:00','2024-09-27 14:12:26.861201+02:00',NULL,'kratest');
INSERT INTO users VALUES(2,'2024-09-27 14:12:33.550973+02:00','2024-09-27 14:12:33.550973+02:00',NULL,'testkra');
CREATE TABLE `pre_auth_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'09b28f8c3351984874d46dace0a70177a8721933a950b663',1,0,0,0,'2024-09-27 12:12:38.242797+00:00','2024-09-27 13:12:38.241063+00:00');
INSERT INTO pre_auth_keys VALUES(2,'3112b953cb344191b2d5aec1b891250125bf7b437eac5d26',1,0,0,0,'2024-09-27 12:12:55.365396+00:00','2024-09-27 13:12:55.363595+00:00');
INSERT INTO pre_auth_keys VALUES(3,'7c23b9f215961e7609527aef78bf82fb19064b002d78c36f',1,0,0,0,'2024-09-27 12:13:32.99926+00:00','2024-09-27 13:13:32.997848+00:00');
INSERT INTO pre_auth_keys VALUES(4,'f2015583852b725220cc4b107fb288a4cf7ac259bd458a32',2,0,0,0,'2024-09-27 12:14:52.719795+00:00','2024-09-27 13:14:52.717783+00:00');
INSERT INTO pre_auth_keys VALUES(5,'b212b990165e897944dd3772786544402729fb349da50f57',2,0,0,0,'2024-09-27 12:15:06.869006+00:00','2024-09-27 13:15:06.86619+00:00');
CREATE TABLE `routes` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
CREATE TABLE `pre_auth_key_acl_tags` (`id` integer PRIMARY KEY AUTOINCREMENT,`pre_auth_key_id` integer,`tag` text,CONSTRAINT `fk_pre_auth_keys_acl_tags` FOREIGN KEY (`pre_auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_key_acl_tags VALUES(1,1,'tag:derp');
INSERT INTO pre_auth_key_acl_tags VALUES(2,2,'tag:derp');
INSERT INTO pre_auth_key_acl_tags VALUES(3,3,'tag:derp');
INSERT INTO pre_auth_key_acl_tags VALUES(4,3,'tag:merp');
INSERT INTO pre_auth_key_acl_tags VALUES(5,4,'tag:test');
INSERT INTO pre_auth_key_acl_tags VALUES(6,5,'tag:test');
INSERT INTO pre_auth_key_acl_tags VALUES(7,5,'tag:woop');
INSERT INTO pre_auth_key_acl_tags VALUES(8,5,'tag:dedu');
CREATE TABLE `api_keys` (`id` integer PRIMARY KEY AUTOINCREMENT,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer PRIMARY KEY AUTOINCREMENT,`machine_key` text,`node_key` text,`disco_key` text,`endpoints` text,`host_info` text,`ipv4` text,`ipv6` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
DELETE FROM sqlite_sequence;
INSERT INTO sqlite_sequence VALUES('nodes',0);
INSERT INTO sqlite_sequence VALUES('users',2);
INSERT INTO sqlite_sequence VALUES('pre_auth_keys',5);
INSERT INTO sqlite_sequence VALUES('pre_auth_key_acl_tags',8);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,34 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'hFKcRjLyfw',X'243261243130242e68554a6739332e6658333061326457723637464f2e6146424c74726e4542474c6c746437597a4253534d6f3677326d3944664d61','2023-04-09 22:34:28.624250346+00:00','2023-07-08 22:34:28.559681279+00:00',NULL);
INSERT INTO api_keys VALUES(2,'88Wbitubag',X'243261243130246f7932506d53375033334b733861376e7745434f3665674e776e517659374b5474326a30686958446c6c55696c3568513948307665','2024-07-28 21:59:38.786936789+00:00','2024-10-26 21:59:38.724189498+00:00',NULL);
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,`tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE SET NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`));
INSERT INTO nodes VALUES(1,'mkey:a0ab77456320823945ae0331823e3c0d516fae9585bd42698dfa1ac3d7679e63','nodekey:7c84167ab68f494942de14deb83587fd841843de2bac105b6c670048c160554f','discokey:53075b3c6cad3b62a2a29caea61beeb93f66b8c75cb89dac465236a5bbf57759','hostname_1','given_name1',1,'cli','["tag:sshclient","tag:ssh"]',0,'2025-02-05 16:46:13.960213431+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-03-30 23:18:17.612740902+00:00','2025-02-05 16:46:13.960284003+00:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:f63dda7495db68077080364ba4109f48dee7a59310b9ed4968beb40d038eb622','nodekey:8186817337049e092e6ea02507091d8e9686924d46ad0e74a90370ec0113c440','discokey:28a2df7e73b8196c6859c94329443a28f9605b2b83541b685c1db666bd835775','hostname_2','given_name2',1,'cli','["tag:sshclient"]',0,'2024-07-30 17:37:24.266006395+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-03-30 23:20:01.05202704+00:00','2024-07-30 17:37:24.266082813+00:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:0af53661fedf5143af3ea79e596928302e51c9fc9f0ea9ed1f2bb7d54778b80e','nodekey:8defd8272fd2851601158b2444fc8d1ab12b6187ec5db154b7a83bb75b2ce952','discokey:ba9d1ffac1997acbd8d281b8711699daa77ed91691772683ebbfdaafa2518a52','hostname_3','given_name3',1,'cli','["tag:ssh"]',0,'2025-02-05 16:48:00.460606473+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-03-30 23:36:04.930844845+00:00','2025-02-05 16:48:00.460679869+00:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:365e2055485de89e65e63c13e426b1ec5d5606327d63955b38be1d3f8cbbac6c','nodekey:996b9814e405f572fc0338f91b0c53f3a3a9a5b1ae0d2846d179195778d50909','discokey:ed72cb545b46b3e2ed0332f9cb4d7f4e774ea5834e2cbadc43c9bf7918ef2503','hostname_4','given_name4',1,'cli','["tag:ssh"]',0,'2025-02-05 16:48:00.460607206+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-03-31 15:51:56.149734121+00:00','2025-02-05 16:48:00.46092239+00:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:1d04be488182a66cd7df4596ac59a40613eac6465a331af9ac6c91bb70754a25','nodekey:9b617f3e7941ac70b76f0e40c55543173e0432d4a9bb8bcb8b25d93b60a5da0e','discokey:15834557115cb889e8362e7f2cae1cfd7e78e754cb7310cff6b5c5b5d3027e35','hostname_5','given_name5',1,'cli','["tag:sshclient","tag:ssh"]',0,'2023-04-21 15:07:38.796218079+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-04-21 13:16:19.148836255+00:00','2024-04-17 15:39:21.339518261+00:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:ed649503734e31eafad7f884ac8ee36ba0922c57cda8b6946cb439b1ed645676','nodekey:200484e66b43012eca81ec8850e4b5d1dd8fa538dfebdaac718f202cd2f1f955','discokey:600651ed2436ce5a49e71b3980f93070d888e6d65d608a64be29fdeed9f7bd6b','hostname_6','given_name6',1,'cli','["tag:ssh"]',0,'2023-07-09 16:56:18.876491583+00:00','0001-01-01 00:00:00+00:00','{}','[]','2023-05-07 10:30:54.520661376+00:00','2024-04-17 15:39:23.182648721+00:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-03-30 23:08:54.151102578+00:00','2023-03-30 23:08:54.151102578+00:00',NULL,'username_1','display_name_1','email_1@example.com',NULL,NULL,NULL);
DELETE FROM sqlite_sequence;
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,97 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,"node_id" integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(7,'2023-01-15 14:41:49.445054371+01:00','2023-01-29 10:12:11.959527554+01:00',NULL,14,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-01-15 14:41:49.452617331+01:00','2023-01-29 10:12:13.154311101+01:00',NULL,14,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-05-05 07:16:02.944084847+02:00','2024-05-05 13:25:02.977065366+02:00',NULL,3,'10.138.98.32/27',1,1,1);
INSERT INTO routes VALUES(10,'2024-05-05 07:16:02.95709561+02:00','2024-05-05 13:25:04.513930181+02:00',NULL,3,'192.168.208.0/20',1,1,1);
INSERT INTO routes VALUES(11,'2024-05-05 12:46:08.770263657+02:00','2024-05-05 12:46:39.012076195+02:00',NULL,27,'172.19.128.0/20',1,1,1);
INSERT INTO routes VALUES(12,'2024-05-05 12:46:08.779527998+02:00','2024-05-05 12:46:39.843489833+02:00',NULL,27,'10.68.0.0/14',1,1,1);
INSERT INTO routes VALUES(13,'2024-05-05 12:46:08.787239639+02:00','2024-05-05 12:46:40.983839193+02:00',NULL,27,'10.243.219.68/31',1,1,1);
INSERT INTO routes VALUES(14,'2024-05-05 12:46:08.794135892+02:00','2024-08-18 08:45:35.831813635+02:00',NULL,27,'10.30.155.128/25',1,1,1);
INSERT INTO routes VALUES(15,'2024-05-05 12:46:08.799975671+02:00','2024-05-05 12:46:44.333956126+02:00',NULL,27,'10.64.0.0/13',1,1,1);
INSERT INTO routes VALUES(16,'2024-05-05 12:46:08.806879988+02:00','2024-05-05 12:46:45.422824419+02:00',NULL,27,'192.168.0.0/16',1,1,1);
INSERT INTO routes VALUES(17,'2024-08-08 20:44:22.76306591+02:00','2024-12-21 12:10:07.339044415+01:00',NULL,31,'172.27.33.0/24',1,1,1);
INSERT INTO routes VALUES(18,'2024-08-08 20:47:33.469970726+02:00','2024-12-21 12:10:07.442783446+01:00',NULL,31,'10.151.196.0/23',1,1,1);
INSERT INTO routes VALUES(21,'2024-08-08 20:54:05.146666051+02:00','2024-12-21 12:10:07.538738125+01:00',NULL,31,'192.168.33.128/26',1,1,1);
INSERT INTO routes VALUES(23,'2024-08-08 20:54:05.162212208+02:00','2024-12-21 12:10:07.644714175+01:00',NULL,31,'10.69.87.96/27',1,1,1);
INSERT INTO routes VALUES(25,'2024-08-08 20:54:05.179419681+02:00','2024-12-21 12:10:07.753927883+01:00',NULL,31,'192.168.240.184/30',1,1,1);
INSERT INTO routes VALUES(26,'2024-08-08 20:54:05.186132539+02:00','2024-12-21 12:10:07.871905187+01:00',NULL,31,'172.19.162.160/27',1,1,1);
INSERT INTO routes VALUES(28,'2024-08-08 20:54:05.202442818+02:00','2024-12-21 12:10:07.972132539+01:00',NULL,31,'172.30.190.136/30',1,1,1);
INSERT INTO routes VALUES(31,'2024-08-08 20:54:05.246698925+02:00','2024-12-21 12:10:08.150358433+01:00',NULL,31,'10.241.118.90/31',1,1,1);
INSERT INTO routes VALUES(32,'2024-08-08 20:54:05.256984635+02:00','2024-12-21 12:10:08.349521909+01:00',NULL,31,'192.168.0.0/17',1,1,1);
INSERT INTO routes VALUES(37,'2024-08-08 20:54:05.300971626+02:00','2024-12-21 12:10:08.553265285+01:00',NULL,31,'192.168.192.0/19',1,1,1);
INSERT INTO routes VALUES(43,'2024-08-08 20:54:05.383430747+02:00','2024-12-21 12:10:08.66112581+01:00',NULL,31,'172.29.254.8/29',1,1,1);
INSERT INTO routes VALUES(47,'2024-08-08 20:54:05.443181025+02:00','2024-12-21 12:10:08.826993878+01:00',NULL,31,'172.18.8.0/22',1,1,1);
INSERT INTO routes VALUES(48,'2024-08-08 20:54:05.449778605+02:00','2024-12-21 12:10:09.237117302+01:00',NULL,31,'10.169.34.250/31',1,1,1);
INSERT INTO routes VALUES(49,'2024-09-03 06:43:34.875117755+02:00','2024-12-21 12:10:09.342259317+01:00',NULL,31,'172.24.0.0/16',1,1,1);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'24326224313224437447593364536a63344d6548427a3266435a6d7a4f6f3972575178476b616e703962563435326157387753476364753947454b75','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'24326224313224746474656e31394e30496e4f626952327a6f466f574f337749306d73684a453242455270723865557a483171747943436b4c333965','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'2432622431322450757377786d6145352e503449364f4c36767069394f7a3948783837494879723050457752397a684b49594b56434d5250384c7a53','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:6a9f06fccf0eff626075428e16c07c2e93464667a67c84dd0efadb1a74761d72','nodekey:d0d67c955181f1a9369a471496e1004678eebd93660394949848e61c7132ef9e','discokey:7667a90b1915f5cb3f725d159cd3f8bc3e46f6244df25f45d7fadc830a6d064e','web-05',1,'authKey',3,'2025-01-24 17:18:58.879117852+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["198.139.228.73:16016","[a5dd:542c:6998:997c:2d87:61b0:c760:ab6f]:56919","112.221.140.130:19743","[6520:763a:5fe2:8e88:5c8e:5b03:eeb1:5588]:20840","[7670:9084:a917:1173:70ce:2798:c805:66dc]:50297","[6f5b:219b:2f0b:cc08:a034:6936:d96b:11be]:28318","60.210.210.203:14631","66.181.120.138:15464"]','2022-02-26 18:11:55.92837512+01:00','2025-01-24 17:18:58.87921789+01:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(3,'mkey:ba9e14b963dd3a5953c9a32a58947ab98fa5ca44c492210b694a2a3fef2b06aa','nodekey:9d11ad4d2879c577b58cf0533f25b19eaa2d85f79f38becbc5a89c464df074af','discokey:6fce22b965a1d56764028a8e04abe388ea727db682c21c321e20f8900b0883ff','lt-38',7,'authKey',NULL,'2025-01-24 21:00:03.638659475+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["51.107.242.7:55191","[ce6f:3f5b:da2f:8382:f3a1:e2d4:1c47:fe5e]:25604"]','2022-03-01 19:26:46.242187887+01:00','2025-01-24 21:00:03.638914306+01:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:f67b11e9aff08b81a9d1e13ac991b7951575a60da19e32e89d0342f349aa6df5','nodekey:6fc38db24bf19fd60a01408ec2ad89add0a28013d1723540bd188e4c72cd006f','discokey:1f79ad4a4889d4333d6ac1c0c3879ffbe422d7d466e7532a17ab0974832f4f7e','laptop-41',1,'authKey',6,'2025-01-23 10:46:09.470903946+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c199:e8ca:c1bb:8364:dde8:bf3e:9467:c050]:61218","168.120.224.160:52272","184.61.212.248:29690","[32a5:51:afc3:d256:5b83:97cd:bb34:13c1]:63964"]','2022-03-04 08:27:19.383566031+01:00','2025-01-23 10:46:09.47099081+01:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(5,'mkey:a98f853b653cd80bb22b2610fa9fd575989eb00cf7d726e131f2f2b600752b20','nodekey:08816b57ddb7244a6893e67601caf0bbe341ab32e851d5e9272c265aff2dfa6d','discokey:fd250ccb73dab47b884d89d99263d1ee60f2901d9e9782357f5718a7b6b11b05','lt-42',8,'authKey',NULL,'2025-01-24 15:55:31.927025416+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[875:166d:8d6f:e053:bbe6:1c6d:843f:25b4]:11215","196.188.180.254:52309","180.187.196.169:52502"]','2022-03-05 13:54:23.660591381+01:00','2025-01-24 15:55:31.927258245+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(6,'mkey:5cb6e4bdb7176296568c0bc83af4b3731b3a59c18d985818e74c92bbbda4b1cd','nodekey:ccf1754b9a331d4f2dbb8dce7cab241a2613dff1ae489f468f4ba5f930c724fc','discokey:9a208d9bbd1b1fc35285a325e4b3c91a9151e812bdc8b49278a8d2271895b4ec','web-14',1,'authkey',NULL,'2025-01-22 13:52:30.302827092+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["166.111.217.41:13979","[cda1:789a:9f90:f1b0:df03:71a6:2bf8:b975]:20326","[ebe:748c:c594:2bd:9c6b:3518:a118:c54d]:30356"]','2022-03-21 15:52:20.739594362+01:00','2025-01-22 13:52:30.303085169+01:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(7,'mkey:bee1775fbab5753b808bfdd48d573fb328354515d0141ee3fcc18d49d13bc917','nodekey:6ad35a7f984fa1de838c163807b20ecc35cbbfe7ec2ec72880c5e50cad0a14a3','discokey:534f4aaa96a2f2f411d499c8d6867803c3462c25fdc5ca72b41c6634e84c1d8c','db-70',4,'authkey',10,'2025-01-24 23:11:36.767081207+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["3.26.132.25:924","[1293:e44:fa71:9ae2:ee7c:64ff:5bb2:705a]:8071","[2263:abdc:1461:efa1:8cca:7009:f84:3747]:3731","[ca4e:2134:74e7:8888:8b8:32ea:a7cd:e6fc]:53863","[f38c:fd3b:43da:7790:faf4:7da2:8df9:7bd1]:32916","147.168.107.56:35336"]','2022-04-01 22:43:27.318756043+02:00','2025-01-24 23:11:36.767680407+01:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(8,'mkey:e16c0484cd8458ffbd8ddf0ce4908e82ac5bd0ecf329cb1a5b618b89a4a72742','nodekey:5b9be700a2b1b5dca7c1b2953b8e06e0df8d6702f2aa0143ea9a674e0600e6c4','discokey:9eb34382a19dbf5e405bc3801acb7b1e0bc6f1b5c7c4632ea4c277b3241284eb','laptop-34',7,'authkey',NULL,'2025-01-24 10:53:08.967670007+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c901:4170:7a7:1a98:5474:f0a8:1722:830b]:48874","39.36.112.35:10587","68.226.133.92:29098","11.142.49.170:22792"]','2022-04-03 09:38:46.178224968+02:00','2025-01-24 10:53:08.967898387+01:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(9,'mkey:ab4157b902f026d4f8fd2180a463453049a7fab9488eff84c5e78cefaccb6e9b','nodekey:b848066a92746001cc9678f5b459f0849be0a00ac0126c95d4bb9ba25686f671','discokey:f52b49b12ffcd4ba40697f9f3367fc65db950348315d8da283a68181b2c0ab85','laptop-05',7,'cli',NULL,'2025-01-23 17:54:23.678930678+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["116.140.148.134:50513","[862d:91db:1faa:c25:4bb3:1882:ebe2:dc36]:34449","[d95c:d244:1457:ef8d:92a3:17f8:a38c:efed]:16770","215.159.49.214:32988","136.206.88.82:20612"]','2022-04-09 09:43:07.09027176+02:00','2025-01-23 17:54:23.679048069+01:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(10,'mkey:b6578985271145f84a1edd7bb3410551addc2b122cc3d3645916eecc612d287f','nodekey:5f327f104bc03d7a238a03a4f34b05c1c8a569215b25623f16a74c1afcbd49a6','discokey:df34ffd51349629e037e70c81280b8afc0dbeff254e8c0621033294998bee371','db-93',1,'authkey',NULL,'2025-01-18 10:08:12.942196784+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["215.10.187.249:19488","[bfe7:ebf6:e338:79a6:dba:4051:a7df:10]:31519"]','2022-06-26 13:57:07.40762063+02:00','2025-01-18 10:08:12.942403965+01:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(11,'mkey:1aee722e316e87b8ae056d72807d1ebb4338198e6ba62e36ec4e3b07873d218a','nodekey:99b698ecc210ced8962dd6862962c80c78301e5ecf598e011b1361c916db48f3','discokey:7f6ec7e95b93b35c02b66e1f28070998ddbf32d273252ef8500d7ab8c14a7d3f','email-44',1,'authkey',13,'2025-01-24 21:00:02.220787051+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["87.139.180.4:64685","[bae8:1f82:ff78:e8a8:235e:a50e:c131:2e8]:43129","[3486:5bc7:ada8:8da1:9df9:3cc6:d018:ee8b]:65112","43.182.159.11:27315"]','2022-06-26 15:19:50.566498735+02:00','2025-01-24 21:00:02.221354141+01:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(14,'mkey:4edbeff705459e7e5d0df80d42abce8d3db49137e013cbe38416aa2d0e77e4de','nodekey:149c771cccddad67f62a6cdf8ebc282692d3f8138e6749e3bcb8044209f30ea8','discokey:7773ea1a30faff0ef3d64186b00fc7f0d584c68eea4e3d75ad6dab5cfb54bee4','email-49',1,'authkey',NULL,'2025-01-23 06:42:37.593813869+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["61.59.238.85:46024","221.176.225.4:60304","[59f1:edd4:571:ac10:e700:fdbe:6084:e1eb]:43774","[88a8:d815:f927:150a:2c5b:9952:2587:818f]:33169"]','2022-09-26 16:07:54.206927686+02:00','2025-01-23 06:42:37.594039595+01:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(23,'mkey:ec475b374671562006704de6f1be902a3d75079e8c9a3b52e6c3d6dc37d3086a','nodekey:655232f4f4205ddc98661144bd7a05a975f44a3f01ed22e18927e6265329104a','discokey:b30f00fbda4b3a7ed66ff30ac8c41c0c1c04a775756543f27155e1b93f947eca','db-05',1,'authkey',23,'2025-01-21 14:51:26.001774373+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f2e:fd97:b513:b737:33f3:dd2b:df4:a90e]:41096","155.239.169.182:41163","[c908:b81c:b4c8:38d3:e311:b3f6:3067:227c]:11541","[f41f:b9e9:9205:210a:4ff9:ab34:57fd:3148]:21852"]','2023-05-05 10:08:17.301597525+02:00','2025-01-21 14:51:26.002382861+01:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(24,'mkey:cba1a93252cc66c9c35844b930b8177743e0ca3113b4a311c9ba3eecf98711d6','nodekey:7e3609ff22b18500773cdb42aa9a1c70de5a1b47f4fc5b85f8ec9620cc2d3a56','discokey:f3289ecda9660d9b664adef04a184e4c940003a0abf08c2a04bd46d87ab3c90c','db-91',1,'authkey',25,'2025-01-13 15:02:48.676721758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e9c0:d5fd:b25c:8cc7:4c58:b666:3fc1:2814]:11543","30.125.129.134:36303","[213c:e72:d34:c59c:d4fa:8bb5:f6d3:d691]:24926","83.92.114.14:38013","223.127.253.143:5148","[e946:63ba:5369:b6db:2d37:8922:57e5:faa8]:51269","39.143.235.96:56031"]','2023-08-14 18:15:34.292188686+02:00','2025-01-13 15:02:48.67679754+01:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(25,'mkey:94e59581d400e61de9be0f51fd13a3610f6110f7c43f8b361c5b53e5b1821d6e','nodekey:d6203177612c4aff07781f0286b7122009b77d10bda31f18a01a3acdc73608da','discokey:8ed1202f1da5d66b2a9603359e9812f357a0f584636fa05b9a0a575e57e530cb','email-69',1,'authkey',26,'2025-01-21 07:41:05.58787908+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["110.245.60.227:50528","33.141.84.140:39332","141.199.13.112:28607","94.8.65.228:34575","58.211.127.215:33647"]','2023-08-29 08:30:45.518580154+02:00','2025-01-21 07:41:05.58844064+01:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(26,'mkey:04be3f20a566914418fa6e299f6b40484b6855fb2440cc997f2d457ef6a627a3','nodekey:257eb51ebf3703ce03c5ee07794cbbb6f94b24fd06ca914dc910e7741d55fea5','discokey:2ab4bdebe4ffe03d3a66246b6bb8a8289cb73c0f07aa4484d1ef3fdd6e17dd23','desktop-14',1,'authkey',27,'2025-01-24 23:00:24.184727782+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3d31:7ec5:7635:7b6c:c7d0:cf70:bb45:6922]:16454","[80d6:f9fd:44f8:58b7:2049:70d4:721:139d]:31272","173.46.200.67:17932","62.215.78.119:52651"]','2023-11-03 18:53:48.108033118+01:00','2025-01-24 23:00:24.185295273+01:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(27,'mkey:b0c1eaf2df8d6cdc328d4cdde4ca8f8ee66fc736845c38b9fbb47df19e5137fe','nodekey:c20b516b77faec9611cb1644e7ac0578f7542751d78bcb9eefda307d610838d2','discokey:79580271b2031ba56f1616b7f8a491e7389cefb24e906d9bb99d3da5d045de9b','srv-56',7,'authkey',NULL,'2025-01-24 20:00:03.216855282+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["13.225.162.245:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862","[b9fe:3630:1807:826:a4a6:e5d2:532c:bdc8]:43617","[25b5:5b72:2ecc:193c:b61e:329:81c6:5af6]:39854","214.128.115.35:43726","[436d:61b:9834:b0e0:b2ed:b452:6330:34ee]:59171","[13a0:b8ff:bebb:d48:e16e:869d:b542:531b]:17201","44.157.88.255:43418"]','2023-12-29 19:18:10.814399482+01:00','2025-01-24 20:00:03.217108129+01:00',NULL,'node027','[]','100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(29,'mkey:6e0a32694e0a2bddbcc71d9489cbb76439f43ceffa40ab8bf070a695be120390','nodekey:0c36c35d4cba9e0b70a945ab88622097fa8659da6c7a20b0e4cbee1dea649075','discokey:ce88ad8d792775af9639e6295818cb416fb0ad24bfa6550f00722ee8095399c7','db-48',1,'authkey',NULL,'2025-01-24 20:00:05.821912941+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60b9:155d:3b4a:1ade:51ce:e1f3:a6b8:8e5e]:42022","[ce74:4042:3405:dbfb:8e1b:2f01:5a55:6f49]:20536","[37ed:24ee:1ca9:2cdf:be79:d10a:1247:263c]:27485","199.22.246.223:36955"]','2024-06-02 09:46:39.307697473+02:00','2025-01-24 20:00:05.822130692+01:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(30,'mkey:93318ff3d9920d6be01eb5166a608fd76c094851aa925e55a2725c6dc99bbb3f','nodekey:cab6cdb81dff8d8a9eccb84d2ff9561bea8840a090f3ea1ae27e94b02ccd6744','discokey:4b472fdd9a6ab4f56f46139d55d525e17dfedd61aa11a0c62a02ebd80aef354e','email-50',1,'authkey',30,'2025-01-17 00:08:28.17211431+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2f41:257d:dc1b:c709:ea6c:1ad2:ba8e:af48]:60708","[c7df:a6c9:ae51:6570:f6b6:7d2c:1803:50f0]:6218","62.26.91.22:45257","37.207.25.123:5981"]','2024-07-29 14:24:27.684620193+02:00','2025-01-17 00:08:28.17277623+01:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(31,'mkey:ac01d01cd1e709938d07f3585184eef337024d32e80ceeddcb943ff8ca54cdd4','nodekey:d5906ed493f8df3fddb09fed829736f1274cb8120d6bcd33846a90460215a40d','discokey:0d4fc211bccbaa9f89e9ac73a33f4f682afe9d6ba7f722f5373cb1254787f2ef','srv-37',1,'authkey',31,'2025-01-24 17:05:22.207236228+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["49.111.96.135:35528","[abc1:b7cd:f18:6ed2:4b5a:9dce:3f08:8c17]:333","206.118.184.48:48132","7.64.160.114:11101"]','2024-08-07 20:35:12.944541318+02:00','2025-01-24 17:05:22.207871517+01:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(32,'mkey:8010732f3bbb0f58f3002b645258dbbc7d6c5cfebf8a485685a84da9b30dcf00','nodekey:d34dac3b348cd2d100ba36a85b42542cfe1dc74d51197caf50b138fea1401168','discokey:e28e9f435da77357942130f3923bb584773e6812d8d27fdc6dce20cc0cc0f752','lt-44',1,'cli',NULL,'2025-01-24 23:20:53.282115214+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["85.212.234.244:43593","161.5.250.27:14020","[cd55:bf01:5540:c30:3981:7f71:a471:4993]:25285","24.16.62.70:35569","213.115.82.246:7596","195.216.27.246:54466","[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963","19.205.218.60:63516","116.228.193.194:44296","[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885"]','2024-10-26 07:18:04.947942936+02:00','2025-01-24 23:20:53.282346841+01:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2024-09-14 08:51:13.31135114+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2024-09-14 08:55:27.877614108+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2024-09-14 08:55:02.778476991+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2024-09-14 08:57:26.215082073+02:00',NULL,'user008','','',NULL,NULL,'');
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE UNIQUE INDEX idx_provider_identifier ON users (provider_identifier) WHERE provider_identifier IS NOT NULL;
CREATE UNIQUE INDEX idx_name_provider_identifier ON users (name,provider_identifier);
CREATE UNIQUE INDEX idx_name_no_provider_identifier ON users (name) WHERE provider_identifier IS NULL;
COMMIT;

View File

@ -0,0 +1,95 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'24326224313224626f6979756458356735466b4e316d795a44596f622e744441784835724a39306538436c7a4f51384e374f3153466479454c706261','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'243262243132247652305238364b30727533524b5735777658706f5275684d37727173306549352f585772656a32394e4472594a7339556f55493843','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'24326224313224676f6d4556557a2e45695a7354775663414c714252656f4e3572714d364643322f2f7466794652344d7a6c344f504953656845504b','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:6a9f06fccf0eff626075428e16c07c2e93464667a67c84dd0efadb1a74761d72','nodekey:d0d67c955181f1a9369a471496e1004678eebd93660394949848e61c7132ef9e','discokey:7667a90b1915f5cb3f725d159cd3f8bc3e46f6244df25f45d7fadc830a6d064e','web-05',1,'authKey',3,'2025-01-30 19:38:27.812993984+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["198.139.228.73:16016","[a5dd:542c:6998:997c:2d87:61b0:c760:ab6f]:56919","112.221.140.130:19743","[6520:763a:5fe2:8e88:5c8e:5b03:eeb1:5588]:20840","[7670:9084:a917:1173:70ce:2798:c805:66dc]:50297"]','2022-02-26 18:11:55.92837512+01:00','2025-01-30 19:38:27.813720595+01:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(3,'mkey:67287ef80f62664d68f3050e68ced4e8f78e173151801529551d42fd8e951b40','nodekey:6afc027970c1ddf9b3544b8c49223dcafe436a51384f80bb341a8f8322bef6d8','discokey:86693fc9f959f11015f3ff457b8d62381a6542e2eef097e2b6bdd679175c975b','srv-24',7,'authKey',NULL,'2025-01-29 12:28:39.61495602+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2cbd:607c:5e91:ea51:38ed:557:fd0:3405]:48307","[790b:6b18:8ac1:afa8:c2d3:f6b:37f6:623f]:41499"]','2022-03-01 19:26:46.242187887+01:00','2025-01-29 12:28:39.615036412+01:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:e0630dc6f407e6064c010dbef10b982c6e9d731706cc13b10993b542e81edf47','nodekey:44f96cda7202665271958eac8a3cfb120ea72209ee88d93fac3c23aeafa3a993','discokey:48b58784e2acdad30028ceed18bc9e7bd5fae3605dbef1a40f3f38a705adef9d','desktop-44',1,'authKey',6,'2025-01-30 17:44:08.255021526+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b53b:c286:a007:e851:dc6e:8152:82a5:22ca]:25604","[ff9b:6bbd:77bc:323d:12e4:22ba:b712:80c]:37729","[1e76:19af:e817:9a33:4f83:366e:b686:6362]:39521","57.71.157.166:9055","[c199:e8ca:c1bb:8364:dde8:bf3e:9467:c050]:61218"]','2022-03-04 08:27:19.383566031+01:00','2025-01-30 17:44:08.255111155+01:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(5,'mkey:4f7673e616b40b313ef69fd390e9c4bdb4c80f66840defb02c37d6f2fa152c5c','nodekey:91ee8b593bb0599e9583a692dabef9528423878f737f7bfdf339fc02bbe8ab47','discokey:fb3b2c151a0d277e77837dc2a5e96fe8f05bbefa770a84822689ec2c63dfe358','email-24',8,'authKey',NULL,'2025-01-30 07:11:28.440822489+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6add:4288:4372:c9ce:7cee:4852:e6d0:9d56]:44968","[884b:b2cc:e2f3:ab06:131b:e30c:69a2:363]:32943","49.81.27.127:23839"]','2022-03-05 13:54:23.660591381+01:00','2025-01-30 07:11:28.441136461+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(6,'mkey:e8a549e38c8301af3c044ff9ca1df86c814bc9c9a62bddd28ff47ebd9b113d07','nodekey:f0188064db0f31b49e1048044186d20700406a7a7b71b054507c90d5a79e7de4','discokey:30687e0c15fc480ef15f9d91011c9fa458c18370db11cdc8b72f36e814e9ece2','lt-01',1,'authkey',NULL,'2025-01-30 18:10:50.161868774+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[be53:e324:1587:4d86:d24c:8662:cd5c:a4c8]:58105","59.239.218.25:49807","[cfa4:ad2e:1410:3b78:ce03:b437:6749:ff3a]:39835"]','2022-03-21 15:52:20.739594362+01:00','2025-01-30 18:10:50.16216299+01:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(7,'mkey:45c951d703f782a16a6db8b4dc872952308f86883499d0613f03318d18f3e7fe','nodekey:70837c16d309644e71e6b251bdb66c4e6a5c9b9f6e23a3b803142b8f00d1017a','discokey:ebe6dd61b6b2bafccce9d01ba0d58ea2ee93a90ae6cafb4383453fb4a17441b4','desktop-61',4,'authkey',10,'2025-01-30 15:57:13.811124896+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e5e8:7d01:63fc:4220:3b4a:df5:ebe:748c]:47047","[7513:6321:b35:b633:b39e:41ed:10a1:3fdd]:462","[8dc0:10e:95b6:9954:2614:8dcc:6564:e167]:58499","[8e6d:95be:19a9:316a:d37e:bcb6:5e05:d7f0]:36162","[5bb2:705a:7f5c:3c9:db83:956a:1ce:5291]:9510"]','2022-04-01 22:43:27.318756043+02:00','2025-01-30 15:57:13.811810941+01:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(8,'mkey:3dff46782f13efbfe7b1a9d5d3275f48954a1abe29111b484fdb3c6edfb795bd','nodekey:080424852e9cbe3c2eaac52c1890cf485bbc2604615ec3c293b80322f17dbe63','discokey:2f6a05491ef99cafaf968c0c62b5c9d19083ef070991ee677d14b0ac9ce08377','db-70',7,'authkey',NULL,'2025-01-30 18:49:07.297878703+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["166.240.74.240:40259","[7311:ce3c:e8cf:c591:533:7132:4504:52ca]:48923","[4912:5cdb:3ed8:7c52:6b8b:2d37:59bf:cf98]:20693","[bad1:e653:831e:aa61:61e4:f824:996a:aac9]:11845","87.221.84.2:11620","71.36.112.35:10587"]','2022-04-03 09:38:46.178224968+02:00','2025-01-30 18:49:07.298161737+01:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(9,'mkey:90c42ae0cf8652f585ac27eb51f0890b9a101b20a834eefed6ea4bd503313550','nodekey:099ecaa8aae2e406befa1c6343b85d8e14ab4f3171835637762069ccda6065d5','discokey:de9ca6bbc281fca8ccffe16d3576385a1864854a0054e74c755c73c9e66d7610','lt-30',7,'cli',NULL,'2025-01-30 17:13:53.726978413+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["32.34.123.165:35870","[1daf:274c:55b2:7413:3c1:bd3d:acc5:4eb1]:33732","182.237.82.235:32290","6.93.152.196:16212","[a38c:efed:7c57:2d0f:4348:fbba:e351:9d7]:10415"]','2022-04-09 09:43:07.09027176+02:00','2025-01-30 17:13:53.72707237+01:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(10,'mkey:6df036352af9c6f03145a8a580466877042296ec2ce47f9cbb8d079baba8925e','nodekey:32934a036fc17e051dd08ca451cae3929e3636eb834771c350d2bffdda7e721c','discokey:0478a62f4092127fd4ca7f4fc35dcf40219bccc9ebf3a35ab77e3dc61269a55c','email-93',1,'authkey',NULL,'2025-01-26 10:25:51.849469454+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["70.180.67.60:48287","141.100.183.252:19523"]','2022-06-26 13:57:07.40762063+02:00','2025-01-26 10:25:51.849815197+01:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(11,'mkey:9d0a61f24aedbb4580224879acfb30b61cf10b3b293667ee110b1319ae4703ef','nodekey:d3b8ad82d1b771993c45ac10037fea8926693262b4f754b845545f3b9e6760d3','discokey:b5f97e790d1452ad4f7e27bcca9611e7d8bb080c4b2860e57c46a784b038f09f','web-33',1,'authkey',13,'2025-01-30 07:37:07.518404681+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["128.57.253.0:39500","25.178.136.37:18298","86.9.216.195:48221","[c131:2e8:80a6:4825:7e56:cc6f:9dcc:37d5]:18109"]','2022-06-26 15:19:50.566498735+02:00','2025-01-30 07:37:07.519108399+01:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(14,'mkey:a177d1fd989be953fd86bb5dc04c13feb917b019d5e0bfeda2715ea88abf7ff6','nodekey:8f6020fe3f16fb9da556b43079fb6885f53a8733318599b3b25706f6c7d99d9d','discokey:f2276c628270c0eaee429a55185611ebcb961bf07b02de854a0bc4382564eae4','email-37',1,'authkey',NULL,'2025-01-30 06:18:09.988928832+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ff2e:b9f0:9890:1aab:42e5:c2ac:a177:66d5]:11839","223.36.72.39:33254","[ec6b:fbd2:bbc3:162b:74ef:b955:514:2656]:46024","221.176.225.4:60304"]','2022-09-26 16:07:54.206927686+02:00','2025-01-30 06:18:09.989199262+01:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(23,'mkey:0bd4a2eac9b6f9b77ab9ee9ea42b36b74d73e0544a2c482526b2385e8bcb0c34','nodekey:1a5c66957c54314f72ea26fed12e48b9c4149c1f640300e39d6190226bc1aaf8','discokey:9f151fb1569ef5341c8f54eec62b82cb7e5f21540ebe9271ae6449a31250123a','laptop-22',1,'authkey',23,'2025-01-30 07:37:08.458181354+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["55.247.173.145:28477","197.123.99.18:53038","102.60.187.246:41096","155.239.169.182:41163"]','2023-05-05 10:08:17.301597525+02:00','2025-01-30 07:37:08.526403731+01:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(24,'mkey:972ef94d28e97680b5bb3ec45a8f7afff8d6988dc9685466fbba21ad96dd0d76','nodekey:a27328ce98ebfb68b59db23adcbd8f402f0ca88c656f8d8a37aafdd5226dd84a','discokey:2cec5f97c2c29ca3bafadbddddebdec872360cf725298c62bb824a6093c838df','db-54',1,'authkey',25,'2025-01-13 15:02:48.676721758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["172.58.255.148:13691","31.145.94.155:5734","[e9c0:d5fd:b25c:8cc7:4c58:b666:3fc1:2814]:11543","30.125.129.134:36303","[213c:e72:d34:c59c:d4fa:8bb5:f6d3:d691]:24926","83.92.114.14:38013","223.127.253.143:5148"]','2023-08-14 18:15:34.292188686+02:00','2025-01-13 15:02:48.67679754+01:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(25,'mkey:7c84b8eea26e6d6a14e08ee933806ca4fb854bd0a168ee576efc58a69523ea0f','nodekey:00cb375ac5580c5718d7879942eba4378d73bf4026ae583a72c6d72f9a2f5958','discokey:69afa6724b1c46f7947a232489f51bd458db562c1144d41ba1b6075395e62529','db-61',1,'authkey',26,'2025-01-30 07:37:08.558409068+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9599:6347:eeed:7573:eb34:676:69d5:954]:17338","87.151.18.221:6598","110.245.60.227:50528","33.141.84.140:39332"]','2023-08-29 08:30:45.518580154+02:00','2025-01-30 07:37:08.559668856+01:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(26,'mkey:5a1b0920cafe0a8b54af7194baceac2029c4b12afc0e542423637f47cc4e53e7','nodekey:927c5ab7c0b8288ca36897c5f371487e9dc2200f28507029e1864086d95b5b1e','discokey:260c9a090d46eef056c0d411d4097b41aa0e9902f15cfa59906ee85f526f52b6','srv-51',1,'authkey',27,'2025-01-30 19:34:43.188756627+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6676:38fc:5af9:3b60:41b7:e46e:bbe1:c8bf]:30898","[4aba:d70:c25d:5d4d:1bc0:d119:4749:9efc]:37269","[9320:382a:5779:2fa7:b46f:c4d5:f889:3155]:46058","[3d31:7ec5:7635:7b6c:c7d0:cf70:bb45:6922]:16454","[80d6:f9fd:44f8:58b7:2049:70d4:721:139d]:31272"]','2023-11-03 18:53:48.108033118+01:00','2025-01-30 19:34:43.189464994+01:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(27,'mkey:9776d9e03b05d823cd49eae6194bd35af003ab124abcb8665e51befcbb97f7dd','nodekey:66e111175598e5b35832a9cd18ffdf2661caad4eb206a432cbb7a2916e64a3d9','discokey:0abf0367186a9e7b1fba741a8f4020db8e21fe9091aa0726ad5ebf7cb8e5634f','email-21',7,'authkey',NULL,'2025-01-30 00:13:32.682147532+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60da:30ec:55bd:5ab3:3fe7:5492:1fc8:92f3]:36566","105.238.97.70:40193","[8c84:2d7e:5e1a:2f51:8754:aa54:b421:a19f]:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862","[b9fe:3630:1807:826:a4a6:e5d2:532c:bdc8]:43617","[25b5:5b72:2ecc:193c:b61e:329:81c6:5af6]:39854","214.128.115.35:43726","[436d:61b:9834:b0e0:b2ed:b452:6330:34ee]:59171","[13a0:b8ff:bebb:d48:e16e:869d:b542:531b]:17201","44.157.88.255:43418"]','2023-12-29 19:18:10.814399482+01:00','2025-01-30 00:13:32.682255545+01:00',NULL,'node027','[]','100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(29,'mkey:6e0a32694e0a2bddbcc71d9489cbb76439f43ceffa40ab8bf070a695be120390','nodekey:0c36c35d4cba9e0b70a945ab88622097fa8659da6c7a20b0e4cbee1dea649075','discokey:ce88ad8d792775af9639e6295818cb416fb0ad24bfa6550f00722ee8095399c7','db-48',1,'authkey',NULL,'2025-01-30 11:50:53.588423938+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60b9:155d:3b4a:1ade:51ce:e1f3:a6b8:8e5e]:42022","[ce74:4042:3405:dbfb:8e1b:2f01:5a55:6f49]:20536","[37ed:24ee:1ca9:2cdf:be79:d10a:1247:263c]:27485","199.22.246.223:36955"]','2024-06-02 09:46:39.307697473+02:00','2025-01-30 11:50:53.588974887+01:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(30,'mkey:93318ff3d9920d6be01eb5166a608fd76c094851aa925e55a2725c6dc99bbb3f','nodekey:cab6cdb81dff8d8a9eccb84d2ff9561bea8840a090f3ea1ae27e94b02ccd6744','discokey:4b472fdd9a6ab4f56f46139d55d525e17dfedd61aa11a0c62a02ebd80aef354e','email-50',1,'authkey',30,'2025-01-30 07:37:11.127249774+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2f41:257d:dc1b:c709:ea6c:1ad2:ba8e:af48]:60708","[c7df:a6c9:ae51:6570:f6b6:7d2c:1803:50f0]:6218","62.26.91.22:45257","37.207.25.123:5981"]','2024-07-29 14:24:27.684620193+02:00','2025-01-30 07:37:11.129269195+01:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(31,'mkey:ac01d01cd1e709938d07f3585184eef337024d32e80ceeddcb943ff8ca54cdd4','nodekey:d5906ed493f8df3fddb09fed829736f1274cb8120d6bcd33846a90460215a40d','discokey:0d4fc211bccbaa9f89e9ac73a33f4f682afe9d6ba7f722f5373cb1254787f2ef','srv-37',1,'authkey',31,'2025-01-30 19:36:44.453423774+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["49.111.96.135:35528","[abc1:b7cd:f18:6ed2:4b5a:9dce:3f08:8c17]:333","206.118.184.48:48132","7.64.160.114:11101","44.192.177.204:34267","192.170.230.144:10199"]','2024-08-07 20:35:12.944541318+02:00','2025-01-30 19:36:44.454213203+01:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(32,'mkey:f4cccb12f91a1b6c5a6dc5af6d307a821f701d5de57a17bc08f5599be53adf5f','nodekey:ed136fe41759c3e7be39bf15fdd6754769ce4cbb675540ece6fbf4a87b4ecfaf','discokey:f5c1095eb1350ff6a44d708bfe56d311f444d0f8e634b123230e6ce3ba854477','desktop-95',1,'cli',NULL,'2025-01-30 18:56:16.654079824+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["183.48.47.238:43648","200.130.212.85:63469","216.16.62.70:35569","213.115.82.246:7596","195.216.27.246:54466","[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963","19.205.218.60:63516","116.228.193.194:44296","[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885","25.167.184.15:1967","82.253.97.208:8684","[3a58:c14f:7b83:917b:d62:dbb9:7a9a:1e81]:49391","[b4c2:50f5:986b:a9e7:bc25:1cb2:ef17:3144]:38454","198.9.176.244:6032"]','2024-10-26 07:18:04.947942936+02:00','2025-01-30 18:56:16.654364791+01:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2024-09-14 08:51:13.31135114+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2024-09-14 08:55:27.877614108+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2024-09-14 08:55:02.778476991+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2024-09-14 08:57:26.215082073+02:00',NULL,'user008','','',NULL,NULL,'');
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(7,'2023-01-15 14:41:49.445054371+01:00','2023-01-29 10:12:11.959527554+01:00',NULL,14,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-01-15 14:41:49.452617331+01:00','2023-01-29 10:12:13.154311101+01:00',NULL,14,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-05-05 07:16:02.944084847+02:00','2024-05-05 13:25:02.977065366+02:00',NULL,3,'10.138.98.32/27',1,1,1);
INSERT INTO routes VALUES(10,'2024-05-05 07:16:02.95709561+02:00','2024-05-05 13:25:04.513930181+02:00',NULL,3,'192.168.208.0/20',1,1,1);
INSERT INTO routes VALUES(11,'2024-05-05 12:46:08.770263657+02:00','2024-05-05 12:46:39.012076195+02:00',NULL,27,'172.19.128.0/20',1,1,1);
INSERT INTO routes VALUES(12,'2024-05-05 12:46:08.779527998+02:00','2024-05-05 12:46:39.843489833+02:00',NULL,27,'10.68.0.0/14',1,1,1);
INSERT INTO routes VALUES(13,'2024-05-05 12:46:08.787239639+02:00','2024-05-05 12:46:40.983839193+02:00',NULL,27,'10.243.219.68/31',1,1,1);
INSERT INTO routes VALUES(14,'2024-05-05 12:46:08.794135892+02:00','2024-08-18 08:45:35.831813635+02:00',NULL,27,'10.30.155.128/25',1,1,1);
INSERT INTO routes VALUES(15,'2024-05-05 12:46:08.799975671+02:00','2024-05-05 12:46:44.333956126+02:00',NULL,27,'10.64.0.0/13',1,1,1);
INSERT INTO routes VALUES(16,'2024-05-05 12:46:08.806879988+02:00','2024-05-05 12:46:45.422824419+02:00',NULL,27,'192.168.0.0/16',1,1,1);
INSERT INTO routes VALUES(17,'2024-08-08 20:44:22.76306591+02:00','2024-12-21 12:10:07.339044415+01:00',NULL,31,'172.27.33.0/24',1,1,1);
INSERT INTO routes VALUES(18,'2024-08-08 20:47:33.469970726+02:00','2024-12-21 12:10:07.442783446+01:00',NULL,31,'10.151.196.0/23',1,1,1);
INSERT INTO routes VALUES(21,'2024-08-08 20:54:05.146666051+02:00','2024-12-21 12:10:07.538738125+01:00',NULL,31,'192.168.33.128/26',1,1,1);
INSERT INTO routes VALUES(23,'2024-08-08 20:54:05.162212208+02:00','2024-12-21 12:10:07.644714175+01:00',NULL,31,'10.69.87.96/27',1,1,1);
INSERT INTO routes VALUES(25,'2024-08-08 20:54:05.179419681+02:00','2024-12-21 12:10:07.753927883+01:00',NULL,31,'192.168.240.184/30',1,1,1);
INSERT INTO routes VALUES(26,'2024-08-08 20:54:05.186132539+02:00','2024-12-21 12:10:07.871905187+01:00',NULL,31,'172.19.162.160/27',1,1,1);
INSERT INTO routes VALUES(28,'2024-08-08 20:54:05.202442818+02:00','2024-12-21 12:10:07.972132539+01:00',NULL,31,'172.30.190.136/30',1,1,1);
INSERT INTO routes VALUES(31,'2024-08-08 20:54:05.246698925+02:00','2024-12-21 12:10:08.150358433+01:00',NULL,31,'10.241.118.90/31',1,1,1);
INSERT INTO routes VALUES(32,'2024-08-08 20:54:05.256984635+02:00','2024-12-21 12:10:08.349521909+01:00',NULL,31,'192.168.0.0/17',1,1,1);
INSERT INTO routes VALUES(37,'2024-08-08 20:54:05.300971626+02:00','2024-12-21 12:10:08.553265285+01:00',NULL,31,'192.168.192.0/19',1,1,1);
INSERT INTO routes VALUES(43,'2024-08-08 20:54:05.383430747+02:00','2024-12-21 12:10:08.66112581+01:00',NULL,31,'172.29.254.8/29',1,1,1);
INSERT INTO routes VALUES(47,'2024-08-08 20:54:05.443181025+02:00','2024-12-21 12:10:08.826993878+01:00',NULL,31,'172.18.8.0/22',1,1,1);
INSERT INTO routes VALUES(48,'2024-08-08 20:54:05.449778605+02:00','2024-12-21 12:10:09.237117302+01:00',NULL,31,'10.169.34.250/31',1,1,1);
INSERT INTO routes VALUES(49,'2024-09-03 06:43:34.875117755+02:00','2024-12-21 12:10:09.342259317+01:00',NULL,31,'172.24.0.0/16',1,1,1);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,95 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'243262243132247a447a433335436450323462305a332e77487845574f4837583374565134787030332f7046786e33726e69795a5336666762613569','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'2432622431322438673039635a2f41376a6b6e444e69523531684e564f4d573665423056366179484b726c304565586f6851674373786d612e4c414b','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'24326224313224764f6938636f6a677265624236424a33743559754e654742344d46674c427a4441314e38546166364578326151706b73305334544b','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:6a9f06fccf0eff626075428e16c07c2e93464667a67c84dd0efadb1a74761d72','nodekey:d0d67c955181f1a9369a471496e1004678eebd93660394949848e61c7132ef9e','discokey:7667a90b1915f5cb3f725d159cd3f8bc3e46f6244df25f45d7fadc830a6d064e','web-05',1,'authKey',3,'2025-02-03 20:14:56.533547475+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["198.139.228.73:16016","[a5dd:542c:6998:997c:2d87:61b0:c760:ab6f]:56919","112.221.140.130:19743","[6520:763a:5fe2:8e88:5c8e:5b03:eeb1:5588]:20840","[7670:9084:a917:1173:70ce:2798:c805:66dc]:50297"]','2022-02-26 18:11:55.92837512+01:00','2025-02-03 20:14:56.533664987+01:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(3,'mkey:67287ef80f62664d68f3050e68ced4e8f78e173151801529551d42fd8e951b40','nodekey:6afc027970c1ddf9b3544b8c49223dcafe436a51384f80bb341a8f8322bef6d8','discokey:86693fc9f959f11015f3ff457b8d62381a6542e2eef097e2b6bdd679175c975b','srv-24',7,'authKey',NULL,'2025-01-29 12:28:39.61495602+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2cbd:607c:5e91:ea51:38ed:557:fd0:3405]:48307","[790b:6b18:8ac1:afa8:c2d3:f6b:37f6:623f]:41499"]','2022-03-01 19:26:46.242187887+01:00','2025-01-29 12:28:39.615036412+01:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:e0630dc6f407e6064c010dbef10b982c6e9d731706cc13b10993b542e81edf47','nodekey:44f96cda7202665271958eac8a3cfb120ea72209ee88d93fac3c23aeafa3a993','discokey:48b58784e2acdad30028ceed18bc9e7bd5fae3605dbef1a40f3f38a705adef9d','desktop-44',1,'authKey',6,'2025-02-03 15:13:03.806943975+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b53b:c286:a007:e851:dc6e:8152:82a5:22ca]:25604","[ff9b:6bbd:77bc:323d:12e4:22ba:b712:80c]:37729","[1e76:19af:e817:9a33:4f83:366e:b686:6362]:39521","57.71.157.166:9055","[c199:e8ca:c1bb:8364:dde8:bf3e:9467:c050]:61218"]','2022-03-04 08:27:19.383566031+01:00','2025-02-03 15:13:03.807014419+01:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(5,'mkey:4f7673e616b40b313ef69fd390e9c4bdb4c80f66840defb02c37d6f2fa152c5c','nodekey:91ee8b593bb0599e9583a692dabef9528423878f737f7bfdf339fc02bbe8ab47','discokey:fb3b2c151a0d277e77837dc2a5e96fe8f05bbefa770a84822689ec2c63dfe358','email-24',8,'authKey',NULL,'2025-02-03 11:10:38.911072801+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6add:4288:4372:c9ce:7cee:4852:e6d0:9d56]:44968","[884b:b2cc:e2f3:ab06:131b:e30c:69a2:363]:32943","49.81.27.127:23839"]','2022-03-05 13:54:23.660591381+01:00','2025-02-03 11:10:38.911239065+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(6,'mkey:e8a549e38c8301af3c044ff9ca1df86c814bc9c9a62bddd28ff47ebd9b113d07','nodekey:f0188064db0f31b49e1048044186d20700406a7a7b71b054507c90d5a79e7de4','discokey:30687e0c15fc480ef15f9d91011c9fa458c18370db11cdc8b72f36e814e9ece2','lt-01',1,'authkey',NULL,'2025-01-31 17:38:20.368668048+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[be53:e324:1587:4d86:d24c:8662:cd5c:a4c8]:58105","59.239.218.25:49807","[cfa4:ad2e:1410:3b78:ce03:b437:6749:ff3a]:39835"]','2022-03-21 15:52:20.739594362+01:00','2025-01-31 17:38:20.369001909+01:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(7,'mkey:45c951d703f782a16a6db8b4dc872952308f86883499d0613f03318d18f3e7fe','nodekey:70837c16d309644e71e6b251bdb66c4e6a5c9b9f6e23a3b803142b8f00d1017a','discokey:ebe6dd61b6b2bafccce9d01ba0d58ea2ee93a90ae6cafb4383453fb4a17441b4','desktop-61',4,'authkey',10,'2025-02-03 22:34:14.985433991+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e5e8:7d01:63fc:4220:3b4a:df5:ebe:748c]:47047","[7513:6321:b35:b633:b39e:41ed:10a1:3fdd]:462","[8dc0:10e:95b6:9954:2614:8dcc:6564:e167]:58499","[8e6d:95be:19a9:316a:d37e:bcb6:5e05:d7f0]:36162","[5bb2:705a:7f5c:3c9:db83:956a:1ce:5291]:9510"]','2022-04-01 22:43:27.318756043+02:00','2025-02-03 22:34:14.986222409+01:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(8,'mkey:3dff46782f13efbfe7b1a9d5d3275f48954a1abe29111b484fdb3c6edfb795bd','nodekey:080424852e9cbe3c2eaac52c1890cf485bbc2604615ec3c293b80322f17dbe63','discokey:2f6a05491ef99cafaf968c0c62b5c9d19083ef070991ee677d14b0ac9ce08377','db-70',7,'authkey',NULL,'2025-02-03 18:06:33.350444688+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["166.240.74.240:40259","[7311:ce3c:e8cf:c591:533:7132:4504:52ca]:48923","[4912:5cdb:3ed8:7c52:6b8b:2d37:59bf:cf98]:20693","[bad1:e653:831e:aa61:61e4:f824:996a:aac9]:11845"]','2022-04-03 09:38:46.178224968+02:00','2025-02-03 18:06:33.350771325+01:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(9,'mkey:05d3833026a1ecd188cc6d2b9b7f9c8a0c51baefabf20a167c85c0c6ef722669','nodekey:d281e1bea5bb2e5d2d01bf476a5ea0df5578a663211c2281dc757024f6233f90','discokey:010f415b1e41652b3eabcebdbaa1e2e62fb1412f817304c125776ecd45621fba','desktop-21',7,'cli',NULL,'2025-02-02 07:50:20.222960357+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6102:58dc:7ffb:200a:53e:b50d:38d5:45a8]:29126","32.34.123.165:35870","[1daf:274c:55b2:7413:3c1:bd3d:acc5:4eb1]:33732","182.237.82.235:32290","6.93.152.196:16212"]','2022-04-09 09:43:07.09027176+02:00','2025-02-02 07:50:20.223029247+01:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(10,'mkey:521fa99ee8b613be5da1bc0fa53e3a11806db23487572f13ce3a99b5750f47d8','nodekey:c2fd5b20a911b8193b7bc8e2dfe68598422759afb0cae2a1f6faf8a975133f68','discokey:99030d8be2cf14592175083adec1a15fdadb1181db721c9ce4f9e5ed485e8422','db-82',1,'authkey',NULL,'2025-02-01 10:52:14.603941206+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b12:6f03:406e:1855:3cf9:8eb6:e610:adbf]:18034","70.180.67.60:48287"]','2022-06-26 13:57:07.40762063+02:00','2025-02-01 10:52:14.604222347+01:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(11,'mkey:ad3363557d233776dee0fa50f7091eaa3b6b14b8d3b0243f0cc0f61662a01769','nodekey:f7a297c8b1bde8fea7e03e10a583e168a37a5c72d9ba3c39129536d4d80e9e6d','discokey:c4af50cd6bb472f0bc2bc3ded6336fb76708a902ba0032cdd6cb90eb819d9db1','laptop-60',1,'authkey',13,'2025-02-04 01:00:03.417141337+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[dba:4050:a7df:10:aa7c:ee6b:2610:5a14]:31519","128.57.253.0:39500","25.178.136.37:18298","86.9.216.195:48221"]','2022-06-26 15:19:50.566498735+02:00','2025-02-04 01:00:03.417910968+01:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(14,'mkey:224a190ba40d8ebf84ac065a47d4e370d127151dc5b608d2f062855e67951a5d','nodekey:a81c40b004ca1a472f2d2240ea3b86f55d5f52252254d5fab7643ba0e059b684','discokey:31644ea51b89d09e6568b6f78b604a62ee7f4a5e7c0a56f194717cdcc43a6384','email-58',1,'authkey',NULL,'2025-02-01 06:18:54.156166977+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["178.84.150.172:60924","[171f:b843:ff2e:b9f0:9890:1aac:42e5:c2ab]:47842","174.7.154.174:51720"]','2022-09-26 16:07:54.206927686+02:00','2025-02-01 06:18:54.156467144+01:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(23,'mkey:bafb298852c932db46635dc6ff11a41910936907bbc6bcc5dd2d8c485c2e5b0c','nodekey:bb4a7ef9aa1a821da2f76215bcb534c3a6a7658432dafaf88a1aecff0e75f782','discokey:f0e92a4c7368ee694d70928c8c4e14b207fd7f69dfead643ce4f616cdd7a1c13','web-96',1,'authkey',23,'2025-02-01 06:44:19.76979225+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.139.115.42:33169","211.231.253.41:1096","171.127.122.217:28477","197.123.99.18:53038"]','2023-05-05 10:08:17.301597525+02:00','2025-02-01 06:44:19.770530333+01:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(24,'mkey:7f865473ff4681875a1b31d7160ef2f4ba3c59cb9cfd815a6085dd266e1027a6','nodekey:86b906c4f3540ec63474279bf542136b24fe741f7944ca88c3bd3cea132906b7','discokey:c2f69d5e677759839a7761f43eb250d4faa1873ddbc53f3e4f1bc4ef98ab2041','db-96',1,'authkey',25,'2025-01-13 15:02:48.676721758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f41f:b9e9:9205:210a:4ff9:ab34:57fd:3148]:21852","[3d49:412:9781:b399:f9a5:587e:bd2e:a579]:3775","[867:a7e:7e04:bfbb:6286:f95f:1abd:9b5a]:63765","147.22.45.153:11543","30.125.129.134:36303","[213c:e72:d34:c59c:d4fa:8bb5:f6d3:d691]:24926","83.92.114.14:38013"]','2023-08-14 18:15:34.292188686+02:00','2025-01-13 15:02:48.67679754+01:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(25,'mkey:1be02a7f57e51fa42c3af087a1464b33d33ad2802979d102c8b10ac146091537','nodekey:1fc37765c4fbcf068f0dd37f2b98d4d1fe35fc7c9e20ea8ed2be4b52b97481b4','discokey:9ea68ef044c00841bb6187dafedc8811caa4b12d123e00119eba0462b9dac6b2','db-52',1,'authkey',26,'2025-02-01 06:27:05.583933643+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f538:9546:a467:a160:1e3f:ad81:b5aa:f88d]:56031","14.178.248.81:54186","[dcb5:9eee:2075:acba:1a31:1669:21dd:744b]:48312","91.212.243.143:50528","33.141.84.140:39332"]','2023-08-29 08:30:45.518580154+02:00','2025-02-01 06:27:05.584696672+01:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(26,'mkey:5a1b0920cafe0a8b54af7194baceac2029c4b12afc0e542423637f47cc4e53e7','nodekey:927c5ab7c0b8288ca36897c5f371487e9dc2200f28507029e1864086d95b5b1e','discokey:260c9a090d46eef056c0d411d4097b41aa0e9902f15cfa59906ee85f526f52b6','srv-51',1,'authkey',27,'2025-02-03 23:37:12.671308191+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6676:38fc:5af9:3b60:41b7:e46e:bbe1:c8bf]:30898","[4aba:d70:c25d:5d4d:1bc0:d119:4749:9efc]:37269","[9320:382a:5779:2fa7:b46f:c4d5:f889:3155]:46058","[3d31:7ec5:7635:7b6c:c7d0:cf70:bb45:6922]:16454"]','2023-11-03 18:53:48.108033118+01:00','2025-02-03 23:37:12.672006599+01:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(27,'mkey:2ce8df9ae8623e48e779b951eab64134bf2806d747f1fb4d7669634fa48d9f22','nodekey:3e85d212d118f58a3a72de4d251ab9414dbe682ac3ebb36ff1283eb6fd438c7a','discokey:9e21249dc8a197f51dbd3916f74c977e222cb96639c4f17abb1856044c4593a1','srv-15',7,'authkey',NULL,'2025-02-02 21:00:46.231324685+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["169.217.181.115:16351","[60da:30ec:55bd:5ab3:3fe7:5492:1fc8:92f3]:36566","105.238.97.70:40193","[8c84:2d7e:5e1a:2f51:8754:aa54:b421:a19f]:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862","[b9fe:3630:1807:826:a4a6:e5d2:532c:bdc8]:43617","[25b5:5b72:2ecc:193c:b61e:329:81c6:5af6]:39854","214.128.115.35:43726","[436d:61b:9834:b0e0:b2ed:b452:6330:34ee]:59171"]','2023-12-29 19:18:10.814399482+01:00','2025-02-02 21:00:46.231636043+01:00',NULL,'node027','[]','100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(29,'mkey:2e4b2ebd78830b52e6d3bc2df58a4ae2e650aa2d45d05e556b6f412ec26797b3','nodekey:b12b04927b21983c33d4e6343dbc3ca854cdddea3d53f116c79d2029cb017a36','discokey:9cd971dee5320ec78268f1c672aeea1f7ab1e88d1d97a27d1f6fd08154f2dc9b','srv-55',1,'authkey',NULL,'2025-02-03 21:59:46.11595827+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c4c8:bd7a:122a:a5f6:664b:2744:fa5:2148]:38679","[1b3d:ef50:26cd:7cdc:d63b:eafd:a9d6:9432]:33036","[3b4a:1ade:51ce:e1f2:a6b8:8e5f:76d7:a0ac]:49522","141.1.118.254:20536"]','2024-06-02 09:46:39.307697473+02:00','2025-02-03 21:59:46.116259679+01:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(30,'mkey:a186e5e70f59e2fd804383e339a670ed2c312ec724ed0a389fe032921f697416','nodekey:2695f24b44d79bb02448dca69cd123fb5ff88dfccb27df9f9f57fb161ccb8697','discokey:726229d0e17c4a9253ae9c3fea0917aa2b5ace2d5b7bb6b17702502d9d22cae3','srv-45',1,'authkey',30,'2025-02-01 06:45:41.071375563+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[cec4:d571:6561:992:e89f:e420:6681:42b5]:43741","96.163.138.14:53535","[7692:18d5:2f41:257d:dc1b:c70a:ea6c:1ad1]:56437","203.8.194.84:16031","54.25.61.205:2000"]','2024-07-29 14:24:27.684620193+02:00','2025-02-01 06:45:41.072086485+01:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(31,'mkey:7b374d2331a08697dc07b40066b707444d63dc02ec83a683e3cfb75f507e7219','nodekey:972d7a74740a75e43160bfa760aebfc273f3cab325abf9fdaa05d188615af553','discokey:9eaa7700bbc80de6cf2a7e115ff486727bc0bf063ccb2df44350c1a3e360fe90','lt-91',1,'authkey',31,'2025-02-03 20:18:00.015726064+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c7b3:52c3:f5c3:87c:f5ed:213:85f4:44c5]:18304","49.111.96.135:35528","[abc1:b7cd:f18:6ed2:4b5a:9dce:3f08:8c17]:333","206.118.184.48:48132","7.64.160.114:11101"]','2024-08-07 20:35:12.944541318+02:00','2025-02-03 20:18:00.016420173+01:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(32,'mkey:8010732f3bbb0f58f3002b645258dbbc7d6c5cfebf8a485685a84da9b30dcf00','nodekey:d34dac3b348cd2d100ba36a85b42542cfe1dc74d51197caf50b138fea1401168','discokey:e28e9f435da77357942130f3923bb584773e6812d8d27fdc6dce20cc0cc0f752','lt-44',1,'cli',NULL,'2025-02-04 01:12:27.847003546+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["85.212.234.244:43593","161.5.250.27:14020","[cd55:bf01:5540:c30:3981:7f71:a471:4993]:25285","24.16.62.70:35569","213.115.82.246:7596","195.216.27.246:54466","[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963","19.205.218.60:63516","116.228.193.194:44296","[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885"]','2024-10-26 07:18:04.947942936+02:00','2025-02-04 01:12:27.847267263+01:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2024-09-14 08:51:13.31135114+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2024-09-14 08:55:27.877614108+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2024-09-14 08:55:02.778476991+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2024-09-14 08:57:26.215082073+02:00',NULL,'user008','','',NULL,NULL,'');
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(7,'2023-01-15 14:41:49.445054371+01:00','2023-01-29 10:12:11.959527554+01:00',NULL,14,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-01-15 14:41:49.452617331+01:00','2023-01-29 10:12:13.154311101+01:00',NULL,14,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-05-05 07:16:02.944084847+02:00','2024-05-05 13:25:02.977065366+02:00',NULL,3,'10.138.98.32/27',1,1,1);
INSERT INTO routes VALUES(10,'2024-05-05 07:16:02.95709561+02:00','2024-05-05 13:25:04.513930181+02:00',NULL,3,'192.168.208.0/20',1,1,1);
INSERT INTO routes VALUES(11,'2024-05-05 12:46:08.770263657+02:00','2024-05-05 12:46:39.012076195+02:00',NULL,27,'172.19.128.0/20',1,1,1);
INSERT INTO routes VALUES(12,'2024-05-05 12:46:08.779527998+02:00','2024-05-05 12:46:39.843489833+02:00',NULL,27,'10.68.0.0/14',1,1,1);
INSERT INTO routes VALUES(13,'2024-05-05 12:46:08.787239639+02:00','2024-05-05 12:46:40.983839193+02:00',NULL,27,'10.243.219.68/31',1,1,1);
INSERT INTO routes VALUES(14,'2024-05-05 12:46:08.794135892+02:00','2024-08-18 08:45:35.831813635+02:00',NULL,27,'10.30.155.128/25',1,1,1);
INSERT INTO routes VALUES(15,'2024-05-05 12:46:08.799975671+02:00','2024-05-05 12:46:44.333956126+02:00',NULL,27,'10.64.0.0/13',1,1,1);
INSERT INTO routes VALUES(16,'2024-05-05 12:46:08.806879988+02:00','2024-05-05 12:46:45.422824419+02:00',NULL,27,'192.168.0.0/16',1,1,1);
INSERT INTO routes VALUES(17,'2024-08-08 20:44:22.76306591+02:00','2024-12-21 12:10:07.339044415+01:00',NULL,31,'172.27.33.0/24',1,1,1);
INSERT INTO routes VALUES(18,'2024-08-08 20:47:33.469970726+02:00','2024-12-21 12:10:07.442783446+01:00',NULL,31,'10.151.196.0/23',1,1,1);
INSERT INTO routes VALUES(21,'2024-08-08 20:54:05.146666051+02:00','2024-12-21 12:10:07.538738125+01:00',NULL,31,'192.168.33.128/26',1,1,1);
INSERT INTO routes VALUES(23,'2024-08-08 20:54:05.162212208+02:00','2024-12-21 12:10:07.644714175+01:00',NULL,31,'10.69.87.96/27',1,1,1);
INSERT INTO routes VALUES(25,'2024-08-08 20:54:05.179419681+02:00','2024-12-21 12:10:07.753927883+01:00',NULL,31,'192.168.240.184/30',1,1,1);
INSERT INTO routes VALUES(26,'2024-08-08 20:54:05.186132539+02:00','2024-12-21 12:10:07.871905187+01:00',NULL,31,'172.19.162.160/27',1,1,1);
INSERT INTO routes VALUES(28,'2024-08-08 20:54:05.202442818+02:00','2024-12-21 12:10:07.972132539+01:00',NULL,31,'172.30.190.136/30',1,1,1);
INSERT INTO routes VALUES(31,'2024-08-08 20:54:05.246698925+02:00','2024-12-21 12:10:08.150358433+01:00',NULL,31,'10.241.118.90/31',1,1,1);
INSERT INTO routes VALUES(32,'2024-08-08 20:54:05.256984635+02:00','2024-12-21 12:10:08.349521909+01:00',NULL,31,'192.168.0.0/17',1,1,1);
INSERT INTO routes VALUES(37,'2024-08-08 20:54:05.300971626+02:00','2024-12-21 12:10:08.553265285+01:00',NULL,31,'192.168.192.0/19',1,1,1);
INSERT INTO routes VALUES(43,'2024-08-08 20:54:05.383430747+02:00','2024-12-21 12:10:08.66112581+01:00',NULL,31,'172.29.254.8/29',1,1,1);
INSERT INTO routes VALUES(47,'2024-08-08 20:54:05.443181025+02:00','2024-12-21 12:10:08.826993878+01:00',NULL,31,'172.18.8.0/22',1,1,1);
INSERT INTO routes VALUES(48,'2024-08-08 20:54:05.449778605+02:00','2024-12-21 12:10:09.237117302+01:00',NULL,31,'10.169.34.250/31',1,1,1);
INSERT INTO routes VALUES(49,'2024-09-03 06:43:34.875117755+02:00','2024-12-21 12:10:09.342259317+01:00',NULL,31,'172.24.0.0/16',1,1,1);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,98 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(32,'6a8fd483387734664f2a911545150a9bc0d9f12a744fe913',7,0,0,0,'2025-02-23 06:56:50.319087142+00:00','2025-02-23 07:56:50.31726796+00:00','[]');
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'2432622431322471797064584939764e3848783749615457324d53536534503451464b39573657556d417370354c396f38427037477538554d6d4d57','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'243262243132247055452f5068466c77784e7a69596443565139666d75416d426a614978717230764d5253613459455254674c336556795051367669','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'243262243132244838672e4c4b6330506c526266486e497868645779657737782f42334c433831335566634c4e627432497979556e4f76737179614f','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:13adef46b653fc9d24415b242714d08a92605cb2d53355a03cda8bae483cc93d','nodekey:aca177c7ceeadf615c5d28bd894ddad5133fe0e99e6c5f2a4af5403daf74aac6','discokey:83f177b585a16eab54768d0284553d62d3f46ef8a21417834039525dfd9ac7dd','desktop-00',1,'authKey',3,'2025-02-25 11:05:11.775075937+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ce6f:3f5b:da2f:8382:f3a1:e2d4:1c47:fe5e]:25604","[ff9b:6bbd:77bc:323d:12e4:22ba:b712:80c]:37729","[1e76:19af:e817:9a33:4f83:366e:b686:6362]:39521","57.71.157.166:9055","[c199:e8ca:c1bb:8364:dde8:bf3e:9467:c050]:61218"]','2022-02-26 18:11:55.92837512+01:00','2025-02-25 11:05:11.775803871+01:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(3,'mkey:4f7673e616b40b313ef69fd390e9c4bdb4c80f66840defb02c37d6f2fa152c5c','nodekey:91ee8b593bb0599e9583a692dabef9528423878f737f7bfdf339fc02bbe8ab47','discokey:fb3b2c151a0d277e77837dc2a5e96fe8f05bbefa770a84822689ec2c63dfe358','email-24',7,'authKey',NULL,'2025-02-17 20:00:56.633030391+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6add:4288:4372:c9ce:7cee:4852:e6d0:9d56]:44968","[884b:b2cc:e2f3:ab06:131b:e30c:69a2:363]:32943"]','2022-03-01 19:26:46.242187887+01:00','2025-02-17 20:00:56.633298676+01:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:3a04f3ec6375cf82c44ce30f04f10f753e2785864c35af3838883ed175e220df','nodekey:8d53294925a1cfb59b2bb60ca7846119a841c4dec2bd4dd1f47750815f8ba332','discokey:98216fd248ca55f2b099d83c9ff8f85dd3005b64b5b52a283604ede6ea587ad2','email-39',1,'authKey',6,'2025-02-24 06:38:04.606923061+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f906:29af:dabc:6ef0:a2b3:64a1:c36c:ac7a]:24154","[be53:e324:1587:4d86:d24c:8662:cd5c:a4c8]:58105","59.239.218.25:49807","[cfa4:ad2e:1410:3b78:ce03:b437:6749:ff3a]:39835"]','2022-03-04 08:27:19.383566031+01:00','2025-02-24 06:38:04.607016538+01:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(5,'mkey:45c951d703f782a16a6db8b4dc872952308f86883499d0613f03318d18f3e7fe','nodekey:70837c16d309644e71e6b251bdb66c4e6a5c9b9f6e23a3b803142b8f00d1017a','discokey:ebe6dd61b6b2bafccce9d01ba0d58ea2ee93a90ae6cafb4383453fb4a17441b4','desktop-61',8,'authKey',NULL,'2025-02-23 12:50:07.992065346+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e5e8:7d01:63fc:4220:3b4a:df5:ebe:748c]:47047","[7513:6321:b35:b633:b39e:41ed:10a1:3fdd]:462","[8dc0:10e:95b6:9954:2614:8dcc:6564:e167]:58499","[8e6d:95be:19a9:316a:d37e:bcb6:5e05:d7f0]:36162","[5bb2:705a:7f5c:3c9:db83:956a:1ce:5291]:9510","37.24.123.232:17607"]','2022-03-05 13:54:23.660591381+01:00','2025-02-23 12:50:07.99213101+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(6,'mkey:41996a93d33f8d668b8138c76f7f6ade6a105ea47d72342a14d470da88afd9f7','nodekey:3d3bd1e69adec0d7fa68d8a835bc25d381cf6b371077941e98362efd62aa38cd','discokey:70213a9865b98fb97c6dc05dff42b6260ecfb1b0b38e9de3fcf1199f36ea2ea0','laptop-78',1,'authkey',NULL,'2025-02-23 08:38:50.091332342+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[533:7131:4504:52ca:972e:c82:4ea1:ace2]:58915","58.226.203.77:32176","110.30.79.130:11845"]','2022-03-21 15:52:20.739594362+01:00','2025-02-23 08:38:50.091690948+01:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(7,'mkey:05d3833026a1ecd188cc6d2b9b7f9c8a0c51baefabf20a167c85c0c6ef722669','nodekey:d281e1bea5bb2e5d2d01bf476a5ea0df5578a663211c2281dc757024f6233f90','discokey:010f415b1e41652b3eabcebdbaa1e2e62fb1412f817304c125776ecd45621fba','desktop-21',4,'authkey',10,'2025-02-25 10:09:14.062758838+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6102:58dc:7ffb:200a:53e:b50d:38d5:45a8]:29126","32.34.123.165:35870","[1daf:274c:55b2:7413:3c1:bd3d:acc5:4eb1]:33732","182.237.82.235:32290","6.93.152.196:16212"]','2022-04-01 22:43:27.318756043+02:00','2025-02-25 10:09:14.063518972+01:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(8,'mkey:521fa99ee8b613be5da1bc0fa53e3a11806db23487572f13ce3a99b5750f47d8','nodekey:c2fd5b20a911b8193b7bc8e2dfe68598422759afb0cae2a1f6faf8a975133f68','discokey:99030d8be2cf14592175083adec1a15fdadb1181db721c9ce4f9e5ed485e8422','db-82',7,'authkey',NULL,'2025-02-24 18:51:08.679119377+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b12:6f03:406e:1855:3cf9:8eb6:e610:adbf]:18034","70.180.67.60:48287","141.100.183.252:19523","[e416:9931:8e9:6fcb:6d36:2e45:fe82:5ffe]:30261","215.10.187.249:19488","[bfe7:ebf6:e338:79a6:dba:4051:a7df:10]:31519","128.57.253.0:39500"]','2022-04-03 09:38:46.178224968+02:00','2025-02-24 18:51:08.679420095+01:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(9,'mkey:74ffa28c2f79c597df6d2584dc81317a09559002ef1c124d79c0961739f04628','nodekey:5df40a5c1b1c89b50f9c3a49445012ab5fe70691a639f09405cfabb7c4e57f62','discokey:40c0492a46b45647cec73ec454d030beb08e2efa406a1505937abc3cf3aa4886','web-41',7,'cli',NULL,'2025-02-24 19:06:53.63097265+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[235e:a50d:c131:2e8:80a6:4826:7e56:cc6e]:43129","[3486:5bc7:ada8:8da1:9df9:3cc6:d018:ee8b]:65112","43.182.159.11:27315","[12a4:b567:a06e:b675:a878:2f42:e5e1:429f]:60924","[171f:b843:ff2e:b9f0:9890:1aac:42e5:c2ab]:47842"]','2022-04-09 09:43:07.09027176+02:00','2025-02-24 19:06:53.631097606+01:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(10,'mkey:381acb630a8426dc0e69e99cb0fc8994f8df14864459adafb8c33c856481277c','nodekey:8ce541404b26c374b025803ff060a5752800114358b0520bb5370cfe4b7b7ab9','discokey:c531655c46cf50d2c752e28c7d52f1e20795936863cc4c9074f1c1eb7230cc75','laptop-07',1,'authkey',NULL,'2025-02-23 08:14:09.262507807+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[571:ac10:e700:fdbd:6084:e1ec:7273:7f9f]:46051","21.139.115.42:33169"]','2022-06-26 13:57:07.40762063+02:00','2025-02-23 08:14:09.26323988+01:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(11,'mkey:ec475b374671562006704de6f1be902a3d75079e8c9a3b52e6c3d6dc37d3086a','nodekey:655232f4f4205ddc98661144bd7a05a975f44a3f01ed22e18927e6265329104a','discokey:b30f00fbda4b3a7ed66ff30ac8c41c0c1c04a775756543f27155e1b93f947eca','db-05',1,'authkey',13,'2025-02-24 23:14:30.021124861+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f2e:fd97:b513:b737:33f3:dd2b:df4:a90e]:41096","155.239.169.182:41163","[c908:b81c:b4c8:38d3:e311:b3f6:3067:227c]:11541","[f41f:b9e9:9205:210a:4ff9:ab34:57fd:3148]:21852","[3d49:412:9781:b399:f9a5:587e:bd2e:a579]:3775"]','2022-06-26 15:19:50.566498735+02:00','2025-02-24 23:14:30.021972171+01:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(14,'mkey:624da83bf38200687af1e4771f9392a903d156e9b9495bafb84adb021e0fac4d','nodekey:13984780af686ba7da0433dd5c0dd04157b929f923291b809cca20e0fcf9de14','discokey:f9ebece3311c35c7efd854261a8505261d347db67e3bcb0f38bdb0631dca6d89','laptop-03',1,'authkey',NULL,'2025-02-23 08:19:10.390225858+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["30.125.129.134:36303","[213c:e72:d34:c59c:d4fa:8bb5:f6d3:d691]:24926","83.92.114.14:38013"]','2022-09-26 16:07:54.206927686+02:00','2025-02-23 08:19:10.39053916+01:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(23,'mkey:1be02a7f57e51fa42c3af087a1464b33d33ad2802979d102c8b10ac146091537','nodekey:1fc37765c4fbcf068f0dd37f2b98d4d1fe35fc7c9e20ea8ed2be4b52b97481b4','discokey:9ea68ef044c00841bb6187dafedc8811caa4b12d123e00119eba0462b9dac6b2','db-52',1,'authkey',23,'2025-02-10 07:17:23.651226796+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f538:9546:a467:a160:1e3f:ad81:b5aa:f88d]:56031","14.178.248.81:54186","[dcb5:9eee:2075:acba:1a31:1669:21dd:744b]:48312","91.212.243.143:50528"]','2023-05-05 10:08:17.301597525+02:00','2025-02-10 07:17:23.651369947+01:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(24,'mkey:a0099c574ba14cdf6db0a2591d2874960f00cb106129315d4e406b605c288353','nodekey:9cef74269ce1f9ee2648676a8298a169da6f5e2ef84ce0699559e4627279338c','discokey:dd188ff283fcda7d3e0fe5fd611b6e959fde88c50ecea39e06ba3b907e6fc39b','lt-44',1,'authkey',25,'2025-01-13 15:02:48.676721758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[48f9:df69:4387:ae57:b06c:1439:7821:792]:45333","12.27.126.70:46578","[8b32:e301:3c59:346b:8ee6:c646:97a6:99ec]:36499","185.25.84.152:44786","[c7d0:cf6f:bb45:6922:7fd7:adb7:59f5:499e]:60522","65.200.68.231:16530","11.209.67.55:8308"]','2023-08-14 18:15:34.292188686+02:00','2025-01-13 15:02:48.67679754+01:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(25,'mkey:54219375ce0ab01cd59b56ad984df668ae7cbe49b7b91e44877ae0d7012d6106','nodekey:2b0c163bc497f6214b25d6a333a37d273c260630dcc91782897f19a579f92a5b','discokey:4cf24a025241ad9a69c20d40513dfee5626f934d738e18f4a64fd9a1ace2cb24','srv-15',1,'authkey',26,'2025-02-15 09:38:06.967090699+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60da:30ec:55bd:5ab3:3fe7:5492:1fc8:92f3]:36566","105.238.97.70:40193","[8c84:2d7e:5e1a:2f51:8754:aa54:b421:a19f]:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862"]','2023-08-29 08:30:45.518580154+02:00','2025-02-15 09:38:06.967816068+01:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(26,'mkey:96e8e0e986089fe5d0f5418f7ccb0a701401def77b8c5e1c337e7c5b865aa20c','nodekey:0e01df602ea65f549245772540b04373a8f2ab64a781251598226e99a6fc341f','discokey:444d74201443318337b9c8118b6d62ab087049cd1258b1b670dd3d8b8b883bd0','lt-82',1,'authkey',27,'2025-02-25 11:26:22.780339791+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["12.54.208.97:59171","[13a0:b8ff:bebb:d48:e16e:869d:b542:531b]:17201","44.157.88.255:43418","8.250.82.20:52374"]','2023-11-03 18:53:48.108033118+01:00','2025-02-25 11:26:22.781062875+01:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(29,'mkey:8ba830e2027bf650dfb541fcecc1f2cd5e20da44d6b333434e06cc9b17b9d4d4','nodekey:c0f946e33505da4340c838ca01cd3c0c1dda4d73f42a5609709f48727841e316','discokey:d380435e5b89c56938fb4a1c71ce024df4a01e8d5cfeb95e21c4c5d2b9e3a395','web-21',1,'authkey',NULL,'2025-02-25 10:54:54.677120077+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["54.149.91.210:26635","210.72.228.199:14674","101.172.44.176:5878","[c018:a17d:2177:f7b8:482d:b68b:9b7a:c3f4]:52482"]','2024-06-02 09:46:39.307697473+02:00','2025-02-25 10:54:54.677452704+01:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(30,'mkey:bba58c946e9f67a39d4a8f0f36b64169c0baf421e280fb4ace27827385444ff8','nodekey:f1e7106cf01ac4b975fc1176b9ca93e8ed17b4f406a5e4c7dffa4d7f003b2ced','discokey:98979075a00ac5b3b0b193011ceca8608729166168eecbe99cb9bb8ff59df080','srv-98',1,'authkey',30,'2025-02-15 09:20:40.349716088+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c7df:a6c9:ae51:6570:f6b6:7d2c:1803:50f0]:6218","62.26.91.22:45257","37.207.25.123:5981","[5b20:30d9:10ce:eafd:90f2:bf34:b3e8:fedb]:18638"]','2024-07-29 14:24:27.684620193+02:00','2025-02-15 09:20:40.350483576+01:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(31,'mkey:8de33b4e277715f445a3530365044c55cc63c9b1abf4b586d017fbfdfa8a5b0e','nodekey:519bbb0b96ac86e86baf7dc5b9c92dd59eb3907c6e45f242aa0f3989b87f6c3e','discokey:65ff26a4a3d846c72e104d7cf5c22372c435f781ad1c0aeb99b40f046c3dfb67','lt-92',1,'authkey',31,'2025-02-25 10:56:26.138523564+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["183.225.17.130:38581","128.41.168.9:19215","39.206.106.178:64472","[a3b:5db7:67ad:9dfa:1b70:91c6:15ae:e5ad]:26117"]','2024-08-07 20:35:12.944541318+02:00','2025-02-25 10:56:26.139732495+01:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(32,'mkey:41c6942d339502595b451a83099f62811b65eb38dab6332b80dc801ee24a2b3e','nodekey:bfa1d578b0f89f1bf88249ef93aeaebd64e434ab28376e0f312694f979438ad7','discokey:f86c45ad30b7c20300756d34059a6e025ef9f7f477614544f2e433d36d546fd9','desktop-10',1,'cli',NULL,'2025-02-25 11:30:05.852369159+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9b41:6262:cbeb:cfa9:3f72:a287:5524:c052]:8383","[3981:7f70:a471:4993:c3a4:3173:1b62:544e]:43648","200.130.212.85:63469","216.16.62.70:35569","213.115.82.246:7596","195.216.27.246:54466","[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963","19.205.218.60:63516","116.228.193.194:44296","[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885"]','2024-10-26 07:18:04.947942936+02:00','2025-02-25 11:30:05.852688962+01:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(33,'mkey:448ecfac13b4affb86e121ffbff9da87acabac6c21dee28de2eb3371ea8276b5','nodekey:dd35ae383e1ae1af878c3c16cbd53f09e9ebaafc8787cb3d632954ed7ac9e277','discokey:beeb96403422394aa40bb619a3b582d50453e851815173c5b30d7163f4ed6ce0','lt-02',7,'cli',NULL,'2025-02-24 20:01:06.886972101+01:00',NULL,'{"fake":"data"}','["131.88.182.238:63239","146.198.220.228:37962","[bc8:3c85:dde1:8c19:4d87:a3ca:f9f4:3c6f]:20142","[785b:eebc:c3a6:bde6:f89:927:da7f:190b]:3639","68.183.1.227:6112","[9fd7:101c:db80:8423:7697:70:2c52:cbbc]:17162","67.6.72.132:32571","[524:9a03:6a60:cc60:d594:b98e:e32f:d883]:8390","86.91.139.227:63567"]','2025-02-23 07:59:15.141530181+01:00','2025-02-24 20:01:06.88755488+01:00',NULL,'node033',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(7,'2023-01-15 14:41:49.445054371+01:00','2023-01-29 10:12:11.959527554+01:00',NULL,14,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-01-15 14:41:49.452617331+01:00','2023-01-29 10:12:13.154311101+01:00',NULL,14,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-05-05 07:16:02.944084847+02:00','2024-05-05 13:25:02.977065366+02:00',NULL,3,'172.30.190.136/30',1,1,1);
INSERT INTO routes VALUES(10,'2024-05-05 07:16:02.95709561+02:00','2024-05-05 13:25:04.513930181+02:00',NULL,3,'10.241.118.90/31',1,1,1);
INSERT INTO routes VALUES(17,'2024-08-08 20:44:22.76306591+02:00','2024-12-21 12:10:07.339044415+01:00',NULL,31,'192.168.0.0/17',1,1,1);
INSERT INTO routes VALUES(18,'2024-08-08 20:47:33.469970726+02:00','2024-12-21 12:10:07.442783446+01:00',NULL,31,'192.168.192.0/19',1,1,1);
INSERT INTO routes VALUES(21,'2024-08-08 20:54:05.146666051+02:00','2024-12-21 12:10:07.538738125+01:00',NULL,31,'172.29.254.8/29',1,1,1);
INSERT INTO routes VALUES(23,'2024-08-08 20:54:05.162212208+02:00','2024-12-21 12:10:07.644714175+01:00',NULL,31,'172.18.8.0/22',1,1,1);
INSERT INTO routes VALUES(25,'2024-08-08 20:54:05.179419681+02:00','2024-12-21 12:10:07.753927883+01:00',NULL,31,'10.169.34.250/31',1,1,1);
INSERT INTO routes VALUES(26,'2024-08-08 20:54:05.186132539+02:00','2024-12-21 12:10:07.871905187+01:00',NULL,31,'172.24.0.0/16',1,1,1);
INSERT INTO routes VALUES(28,'2024-08-08 20:54:05.202442818+02:00','2024-12-21 12:10:07.972132539+01:00',NULL,31,'10.149.80.0/20',1,1,1);
INSERT INTO routes VALUES(31,'2024-08-08 20:54:05.246698925+02:00','2024-12-21 12:10:08.150358433+01:00',NULL,31,'10.232.0.0/13',1,1,1);
INSERT INTO routes VALUES(32,'2024-08-08 20:54:05.256984635+02:00','2024-12-21 12:10:08.349521909+01:00',NULL,31,'172.23.0.0/21',1,1,1);
INSERT INTO routes VALUES(37,'2024-08-08 20:54:05.300971626+02:00','2024-12-21 12:10:08.553265285+01:00',NULL,31,'172.17.124.137/32',1,1,1);
INSERT INTO routes VALUES(43,'2024-08-08 20:54:05.383430747+02:00','2024-12-21 12:10:08.66112581+01:00',NULL,31,'10.91.8.0/21',1,1,1);
INSERT INTO routes VALUES(47,'2024-08-08 20:54:05.443181025+02:00','2024-12-21 12:10:08.826993878+01:00',NULL,31,'192.168.222.64/27',1,1,1);
INSERT INTO routes VALUES(48,'2024-08-08 20:54:05.449778605+02:00','2024-12-21 12:10:09.237117302+01:00',NULL,31,'10.16.0.0/12',1,1,1);
INSERT INTO routes VALUES(49,'2024-09-03 06:43:34.875117755+02:00','2024-12-21 12:10:09.342259317+01:00',NULL,31,'192.168.191.192/28',1,1,1);
INSERT INTO routes VALUES(50,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.225.156.72/29',1,1,1);
INSERT INTO routes VALUES(51,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'172.28.71.145/32',1,1,1);
INSERT INTO routes VALUES(52,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.104.0.0/13',1,1,1);
INSERT INTO routes VALUES(53,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'172.16.0.0/13',1,1,1);
INSERT INTO routes VALUES(54,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.60.104.0/24',1,1,1);
INSERT INTO routes VALUES(55,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.89.96.0/19',1,1,1);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2024-09-14 08:51:13.31135114+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2024-09-14 08:55:27.877614108+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2024-09-14 08:55:02.778476991+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2024-09-14 08:57:26.215082073+02:00',NULL,'user008','','',NULL,NULL,'');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,101 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(32,'6a8fd483387734664f2a911545150a9bc0d9f12a744fe913',7,0,0,0,'2025-02-23 06:56:50.319087142+00:00','2025-02-23 07:56:50.31726796+00:00','[]');
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'2432622431322457713675666f5379396247466672516155317132374f58734e5033627671436470436c447073757979456f4a4a71626b6a434e6236','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'2432622431322435797935525374656e525a4e67735365316837455965376872366e4e6563445a4e45666d72334d5273612e4b5151334f675a302e71','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'24326224313224737956314430636d615a6e546531705370346a7a72654566327565367a587a737264694c336c7147644977424f7348794644624e79','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:13adef46b653fc9d24415b242714d08a92605cb2d53355a03cda8bae483cc93d','nodekey:aca177c7ceeadf615c5d28bd894ddad5133fe0e99e6c5f2a4af5403daf74aac6','discokey:83f177b585a16eab54768d0284553d62d3f46ef8a21417834039525dfd9ac7dd','desktop-00',1,'authKey',3,'2025-04-04 16:01:46.440493034+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ce6f:3f5b:da2f:8382:f3a1:e2d4:1c47:fe5e]:25604","[ff9b:6bbd:77bc:323d:12e4:22ba:b712:80c]:37729","[1e76:19af:e817:9a33:4f83:366e:b686:6362]:39521"]','2022-02-26 18:11:55.92837512+01:00','2025-04-04 16:01:46.441299466+02:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(3,'mkey:202076169f1eee6bcbaebd7d5c314341b9aca69fadda7286fe49f45ed81b6de0','nodekey:b02b4522c79164bb4dc5ba6ff8115cc7dac03417a9385fa9b3fe12e4c3d14ccc','discokey:e5b11353b9ee94a90963eb4318514b17ad8304b4b80d4e178b3e3485376f3c88','email-16',7,'authKey',NULL,'2025-04-03 21:00:54.6832508+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b886:a57b:2070:84fd:6618:6c8:3c70:5077]:17679","117.184.57.124:25930"]','2022-03-01 19:26:46.242187887+01:00','2025-04-03 21:00:54.683607994+02:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:56ad8dcc120738372c03052898bcdaf06a4b7e92adfa4e260f3ab33bbec7d560','nodekey:b197bf018c11a550972b6fe5841e99660bd70eb64faa26f334466181c6a0c23b','discokey:af3613f6dc6ef1559bb6a35ef0c74ebb42b49e75a7a07d6385a9d5e0acacaf17','web-61',1,'authKey',6,'2025-04-03 18:23:56.187297547+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["76.70.66.173:4330","164.82.63.27:24154","[be53:e324:1587:4d86:d24c:8662:cd5c:a4c8]:58105","59.239.218.25:49807","[cfa4:ad2e:1410:3b78:ce03:b437:6749:ff3a]:39835","179.46.219.166:38167","166.111.217.41:13979"]','2022-03-04 08:27:19.383566031+01:00','2025-04-03 18:23:56.1873891+02:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(5,'mkey:e87e820508bd86c183ebe4ffb80637130b6d7480c3db5b94fbe4be097ca31d6b','nodekey:36d6615362a2367b323e53348e7b300b5d3180954f6c73d619738b6b416f8b29','discokey:31bde1fc825d42faaefc6baeb19205176d325a0c385b3d5c42020fac5828baf7','srv-79',8,'authKey',NULL,'2025-02-23 12:50:07.992065346+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["157.68.216.200:462","[8dc0:10e:95b6:9954:2614:8dcc:6564:e167]:58499","[8e6d:95be:19a9:316a:d37e:bcb6:5e05:d7f0]:36162","[5bb2:705a:7f5c:3c9:db83:956a:1ce:5291]:9510","37.24.123.232:17607","17.23.6.93:59855"]','2022-03-05 13:54:23.660591381+01:00','2025-02-23 12:50:07.99213101+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(6,'mkey:afca3664dd99d4f692e6188b11e356803b3b88af6aea8c64f44c691c5ef0dd75','nodekey:56c0b70b513c1332dc6e96e23f9b31ce5e7d2f67bf2ce913788f6f8f4309a286','discokey:84388aee7f9b67ca6f494710d339cebe2570c109bffd46b866a3ce6bdfab0a7e','desktop-69',1,'authkey',NULL,'2025-04-04 06:54:04.865503636+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["58.226.203.77:32176","110.30.79.130:11845","87.221.84.2:11620"]','2022-03-21 15:52:20.739594362+01:00','2025-04-04 06:54:04.865830042+02:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(7,'mkey:cf245d2ed1c596c90501a51b0a7bb2bf72a77bd8aaa25be1798ba88ca4840de1','nodekey:b48c4f58b478be290e6f1fbdd74b54487f66e3efd00f1c90a46c413ccec88b3b','discokey:2df61e4dd58f94db5f7e51caacbb30da03e1efa2892c18ea63d00b9a0b59bd09','db-01',4,'authkey',10,'2025-04-04 11:27:17.576257983+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2c84:7686:38e3:1aa5:db0c:29e4:c685:6059]:38764","4.4.79.116:35870","[1daf:274c:55b2:7413:3c1:bd3d:acc5:4eb1]:33732","182.237.82.235:32290"]','2022-04-01 22:43:27.318756043+02:00','2025-04-04 11:27:17.576974245+02:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(8,'mkey:cedaee7ced43e8b6eab7807f2e0b6a65351950be008d086dda73ca1176dcb4b0','nodekey:97377594f32ffa436df6cb935fe998011700cbd94d0b7b9f1878e796e47595eb','discokey:7abe7a09338db86ecffe306c78b69a84b7a3615922a6dd580f87e25ac5065843','email-41',7,'authkey',NULL,'2025-04-04 09:43:37.714947898+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["79.62.99.173:32988","136.206.88.82:20612","151.147.230.32:10729","[2621:a1d2:a66d:a6cf:3592:dff2:93dc:5b32]:62817","[e1e8:e93f:ab91:4027:e416:9932:8e9:6fcb]:30261"]','2022-04-03 09:38:46.178224968+02:00','2025-04-04 09:43:37.715260959+02:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(9,'mkey:94d71f734657c61ac8dd2f7d1ed06787361c1b43bdc3a3c9a541890afa676ddb','nodekey:7bb55439c507f6a11d866f44fdea7912cc4ad8791528438b5d598f001971936e','discokey:1b0a846e57e2ebb966bae5507a41991dde493eb17c61161146056f1d4065817c','lt-20',7,'cli',NULL,'2025-04-04 16:02:13.701628939+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[45cc:7c5b:4d26:7aa1:ae7e:d9bb:ea07:456]:65311","48.237.159.121:13531","55.139.180.4:64685","[bae8:1f82:ff78:e8a8:235e:a50e:c131:2e8]:43129","[3486:5bc7:ada8:8da1:9df9:3cc6:d018:ee8b]:65112","43.182.159.11:27315"]','2022-04-09 09:43:07.09027176+02:00','2025-04-04 16:02:13.701896564+02:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(10,'mkey:4edbeff705459e7e5d0df80d42abce8d3db49137e013cbe38416aa2d0e77e4de','nodekey:149c771cccddad67f62a6cdf8ebc282692d3f8138e6749e3bcb8044209f30ea8','discokey:7773ea1a30faff0ef3d64186b00fc7f0d584c68eea4e3d75ad6dab5cfb54bee4','email-49',1,'authkey',NULL,'2025-03-22 18:28:09.173419272+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["61.59.238.85:46024","221.176.225.4:60304"]','2022-06-26 13:57:07.40762063+02:00','2025-03-22 18:28:09.173773792+01:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(11,'mkey:0bd4a2eac9b6f9b77ab9ee9ea42b36b74d73e0544a2c482526b2385e8bcb0c34','nodekey:1a5c66957c54314f72ea26fed12e48b9c4149c1f640300e39d6190226bc1aaf8','discokey:9f151fb1569ef5341c8f54eec62b82cb7e5f21540ebe9271ae6449a31250123a','laptop-22',1,'authkey',13,'2025-04-03 22:06:46.872430113+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["55.247.173.145:28477","197.123.99.18:53038","102.60.187.246:41096","155.239.169.182:41163","[c908:b81c:b4c8:38d3:e311:b3f6:3067:227c]:11541"]','2022-06-26 15:19:50.566498735+02:00','2025-04-03 22:06:46.873132509+02:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(14,'mkey:c7d3e8e40cafce614b65f150e345fefab60dd5b8108bc47e5159e8d3464496f8','nodekey:06d9c1b8455e39baee27729233638fd793e38376a0caafd76cfb3f1fe929b331','discokey:93ec10f68b6950a9a842c6e2cf186d86334705cf174d50985a3f4c8561246e9f','lt-29',1,'authkey',NULL,'2025-03-30 11:38:07.287941738+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["34.25.194.159:63765","147.22.45.153:11543","30.125.129.134:36303"]','2022-09-26 16:07:54.206927686+02:00','2025-03-30 11:38:07.288217849+02:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(23,'mkey:2cc72bee6bf01caeb26a1d00ad6653d7a2f06252afe9f7e9cbb4e1701d3d7da4','nodekey:7edccf09f05dd46626c2981cc69c74c593d314aced7de30423142ba090521d72','discokey:98629534198740b432a58b75cee1c37bd3bdc0d85e85d7fe514af16881fc420b','srv-12',1,'authkey',23,'2025-04-03 21:18:57.701368882+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ec95:2e1e:2d50:967c:c90f:9d1e:4a3e:cac6]:63487","[57e5:faa8:aee0:9b66:a0e:6a4f:f715:631]:23151","209.114.161.143:52706","[6d6f:fcc8:f538:9546:a467:a161:1e3f:ad80]:45335","[d8b4:ed81:6b2f:8517:c171:871:7319:6abb]:54186","[dcb5:9eee:2075:acba:1a31:1669:21dd:744b]:48312"]','2023-05-05 10:08:17.301597525+02:00','2025-04-03 21:18:57.701435228+02:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(24,'mkey:cdd2725a2eec500da5a278444f3f3f82351e3df4b38c73781a8c04bdcdf469f3','nodekey:badffb3b36094dcff5902db9b857c436f2aa91b3a0fc2fc8f0b7e0a6cfce842d','discokey:68d8447103b317e2a41dccf0dc60017b8554f55639de9b13ffc9f07366e0dffa','desktop-58',1,'authkey',25,'2025-01-13 15:02:48.676721758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["62.8.65.228:34575","58.211.127.215:33647","47.22.77.26:36499","185.25.84.152:44786","[c7d0:cf6f:bb45:6922:7fd7:adb7:59f5:499e]:60522","65.200.68.231:16530","11.209.67.55:8308"]','2023-08-14 18:15:34.292188686+02:00','2025-01-13 15:02:48.67679754+01:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(25,'mkey:54219375ce0ab01cd59b56ad984df668ae7cbe49b7b91e44877ae0d7012d6106','nodekey:2b0c163bc497f6214b25d6a333a37d273c260630dcc91782897f19a579f92a5b','discokey:4cf24a025241ad9a69c20d40513dfee5626f934d738e18f4a64fd9a1ace2cb24','srv-15',1,'authkey',26,'2025-03-31 23:15:14.255680838+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60da:30ec:55bd:5ab3:3fe7:5492:1fc8:92f3]:36566","105.238.97.70:40193","[8c84:2d7e:5e1a:2f51:8754:aa54:b421:a19f]:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862"]','2023-08-29 08:30:45.518580154+02:00','2025-03-31 23:15:14.25655063+02:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(26,'mkey:96e8e0e986089fe5d0f5418f7ccb0a701401def77b8c5e1c337e7c5b865aa20c','nodekey:0e01df602ea65f549245772540b04373a8f2ab64a781251598226e99a6fc341f','discokey:444d74201443318337b9c8118b6d62ab087049cd1258b1b670dd3d8b8b883bd0','lt-82',1,'authkey',27,'2025-04-04 15:59:56.081157956+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["12.54.208.97:59171","[13a0:b8ff:bebb:d48:e16e:869d:b542:531b]:17201","44.157.88.255:43418","8.250.82.20:52374","180.217.175.155:13947","[76d7:a0ac:7cf2:9237:df96:42d2:4086:5b93]:41885"]','2023-11-03 18:53:48.108033118+01:00','2025-04-04 15:59:56.081857808+02:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(29,'mkey:ef670d35dba3168a251ce7230dfd073594f7e8454c55d2eea392b11b7eb2c58d','nodekey:c4fe657c9168dd2d798452d1c411faa57d7f2866808cf7fee5e5251eba58cfed','discokey:f47bc0695fd2db95519a8fc51ecc628c4b869dea953b34b88095c765ac4c8b2e','srv-21',1,'authkey',NULL,'2025-04-04 10:13:54.951364016+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c018:a17d:2177:f7b8:482d:b68b:9b7a:c3f4]:52482","[99d:8ae6:556e:9e4a:b721:e12f:cec4:d571]:25093","[688f:e843:1471:41c0:868f:f77c:e787:8d13]:24194","[ae51:6570:f6b6:7d2b:1803:50f1:6e3a:faa4]:6218","62.26.91.22:45257"]','2024-06-02 09:46:39.307697473+02:00','2025-04-04 10:13:54.951675714+02:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(30,'mkey:a50ccd27d81ae5fa4e8cf617b9a923d18b818d5903d1aa008044cf4a2145f5b4','nodekey:eb0607968c785075216b01d5e11a67124f7ab9bd8d11498aa29cd68ca7355d8b','discokey:beffe8994e5a4baf7553267e7df7da7460552b3ec1b8b0b2d12f467a07810dea','db-89',1,'authkey',30,'2025-03-31 23:15:17.070924864+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c7b3:52c3:f5c3:87c:f5ed:213:85f4:44c5]:18304","49.111.96.135:35528","[abc1:b7cd:f18:6ed2:4b5a:9dce:3f08:8c17]:333","206.118.184.48:48132"]','2024-07-29 14:24:27.684620193+02:00','2025-03-31 23:15:17.071471786+02:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(31,'mkey:e76b247ac8acd857970abf462c8c954f670d78fe190ca537ef68983de00806e0','nodekey:bf2c0b7e9271cb7addf94f7ee4b5c2bfab9f279fb124c76f0d1fed4b4125e422','discokey:af105f27a8a9c750ba54da2defc49dbf001891b96e6a1bb1b96ee39056e1ff5f','laptop-03',1,'authkey',31,'2025-04-04 15:57:02.028544413+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["187.133.234.227:17532","143.220.168.161:8383","[3981:7f70:a471:4993:c3a4:3173:1b62:544e]:43648","200.130.212.85:63469"]','2024-08-07 20:35:12.944541318+02:00','2025-04-04 15:57:02.03016371+02:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(32,'mkey:e66714b599a0fcd24e7e87019cfbfc3b9d6d1c9c3b0bb70912d6e7bc7398f8fa','nodekey:0dba1091e5ff8fbf639f490eabaa0fa5188cc076cb8922eb6889b023fc4384bc','discokey:a05e361212ffc667037a9997a178a9d0a50453bded8dfe3772fed2b711092c58','db-20',1,'cli',NULL,'2025-04-04 15:55:20.925507947+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963","19.205.218.60:63516","116.228.193.194:44296","[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885","25.167.184.15:1967","82.253.97.208:8684"]','2024-10-26 07:18:04.947942936+02:00','2025-04-04 15:55:20.925847076+02:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(33,'mkey:e885828fffb844493b9ac09514500e4832d588586274d7ab134def4758aec8b4','nodekey:69ecbf0eda9c36c6a5a3a5bbdaebcbe87843112ccb5004acdaa3273557cca09e','discokey:3076854f388bce0a53ce84c6a01f0ce677f641bc2429b10206c6c2de7ac75a7f','laptop-99',7,'cli',NULL,'2025-04-03 22:00:57.883174604+02:00',NULL,'{"fake":"data"}','["104.248.144.146:61623","[a05:c6f9:3d44:8c37:71b:94bc:c915:47aa]:9656","15.105.112.6:17162","67.6.72.132:32571","[524:9a03:6a60:cc60:d594:b98e:e32f:d883]:8390","86.91.139.227:63567","206.126.50.249:22311","[a1f9:9745:a2ed:1bb7:9405:91f9:1c52:8c28]:14465","155.71.33.111:62332","[fd76:427:7ce5:c2b2:183a:1281:d6bb:8633]:47777","[2133:a7d0:99d5:fcce:44dd:8de3:dffe:61f5]:30756"]','2025-02-23 07:59:15.141530181+01:00','2025-04-03 22:00:57.883491572+02:00',NULL,'node033',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(34,'mkey:bc9632988599109f50c950f4069c6a38f9e04d22f81f5bbd4edfdf271ea3b772','nodekey:a9be3965ba99bf7ef5ca7eee6f1ea50043fab7e40a2da3b8ea45e5c5c859d0e7','discokey:f9c9d5de5033f54236970fa4c12fe4f475be4c2a00f57418f396057142aea9f3','srv-85',9,'cli',NULL,'2025-04-04 00:05:39.390959034+02:00',NULL,'{"fake":"data"}','["[1b72:b6ce:5ad1:81e3:bc01:6516:f696:e19e]:15160","[fc:3ed4:df18:5664:71f1:6c7b:652a:7fcd]:27806","[417a:9260:6c16:5a4c:911d:eaec:7e3b:cf47]:58735","190.241.43.139:19489","[9b36:5bd4:a077:9b75:65ac:ccd0:170f:69b9]:41358"]','2025-03-09 11:42:30.627548688+01:00','2025-04-04 00:05:39.391044635+02:00',NULL,'node034',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(35,'mkey:0a58d0ca3bac65adeddc621d1355a3801b088c393a93bc83a55c198e7ef1858e','nodekey:f25a54c9ec984566a1a245aee7f85f92ffccc090be0d4d9fdab081e23a5bd2c5','discokey:2d95fd862eb2087d1345f2825e8b3013ca9037cc44f595fc1374850ecce93c9f','desktop-75',9,'cli',NULL,'2025-04-04 12:24:50.896091765+02:00',NULL,'{"fake":"data"}','["115.214.18.115:26087","209.46.195.111:48055","[2030:c7ae:bde5:536c:7748:3ac:9eea:2468]:45768","[1ec6:10e:5a64:942e:cb28:7d65:97cc:8e89]:14623"]','2025-03-09 12:06:19.756893731+01:00','2025-04-04 12:24:50.896434652+02:00',NULL,'node035',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(7,'2023-01-15 14:41:49.445054371+01:00','2023-01-29 10:12:11.959527554+01:00',NULL,14,'0.0.0.0/0',1,1,0);
INSERT INTO routes VALUES(8,'2023-01-15 14:41:49.452617331+01:00','2023-01-29 10:12:13.154311101+01:00',NULL,14,'::/0',1,1,0);
INSERT INTO routes VALUES(9,'2024-05-05 07:16:02.944084847+02:00','2024-05-05 13:25:02.977065366+02:00',NULL,3,'172.30.190.136/30',1,1,1);
INSERT INTO routes VALUES(10,'2024-05-05 07:16:02.95709561+02:00','2024-05-05 13:25:04.513930181+02:00',NULL,3,'10.241.118.90/31',1,1,1);
INSERT INTO routes VALUES(17,'2024-08-08 20:44:22.76306591+02:00','2024-12-21 12:10:07.339044415+01:00',NULL,31,'192.168.0.0/17',1,1,1);
INSERT INTO routes VALUES(18,'2024-08-08 20:47:33.469970726+02:00','2024-12-21 12:10:07.442783446+01:00',NULL,31,'192.168.192.0/19',1,1,1);
INSERT INTO routes VALUES(21,'2024-08-08 20:54:05.146666051+02:00','2024-12-21 12:10:07.538738125+01:00',NULL,31,'172.29.254.8/29',1,1,1);
INSERT INTO routes VALUES(23,'2024-08-08 20:54:05.162212208+02:00','2024-12-21 12:10:07.644714175+01:00',NULL,31,'172.18.8.0/22',1,1,1);
INSERT INTO routes VALUES(25,'2024-08-08 20:54:05.179419681+02:00','2024-12-21 12:10:07.753927883+01:00',NULL,31,'10.169.34.250/31',1,1,1);
INSERT INTO routes VALUES(26,'2024-08-08 20:54:05.186132539+02:00','2024-12-21 12:10:07.871905187+01:00',NULL,31,'172.24.0.0/16',1,1,1);
INSERT INTO routes VALUES(28,'2024-08-08 20:54:05.202442818+02:00','2024-12-21 12:10:07.972132539+01:00',NULL,31,'10.149.80.0/20',1,1,1);
INSERT INTO routes VALUES(31,'2024-08-08 20:54:05.246698925+02:00','2024-12-21 12:10:08.150358433+01:00',NULL,31,'10.232.0.0/13',1,1,1);
INSERT INTO routes VALUES(32,'2024-08-08 20:54:05.256984635+02:00','2024-12-21 12:10:08.349521909+01:00',NULL,31,'172.23.0.0/21',1,1,1);
INSERT INTO routes VALUES(37,'2024-08-08 20:54:05.300971626+02:00','2024-12-21 12:10:08.553265285+01:00',NULL,31,'172.17.124.137/32',1,1,1);
INSERT INTO routes VALUES(43,'2024-08-08 20:54:05.383430747+02:00','2024-12-21 12:10:08.66112581+01:00',NULL,31,'10.91.8.0/21',1,1,1);
INSERT INTO routes VALUES(47,'2024-08-08 20:54:05.443181025+02:00','2024-12-21 12:10:08.826993878+01:00',NULL,31,'192.168.222.64/27',1,1,1);
INSERT INTO routes VALUES(48,'2024-08-08 20:54:05.449778605+02:00','2024-12-21 12:10:09.237117302+01:00',NULL,31,'10.16.0.0/12',1,1,1);
INSERT INTO routes VALUES(49,'2024-09-03 06:43:34.875117755+02:00','2024-12-21 12:10:09.342259317+01:00',NULL,31,'192.168.191.192/28',1,1,1);
INSERT INTO routes VALUES(50,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.225.156.72/29',1,1,1);
INSERT INTO routes VALUES(51,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'172.28.71.145/32',1,1,1);
INSERT INTO routes VALUES(52,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.104.0.0/13',1,1,1);
INSERT INTO routes VALUES(53,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'172.16.0.0/13',1,1,1);
INSERT INTO routes VALUES(54,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.60.104.0/24',1,1,1);
INSERT INTO routes VALUES(55,'2025-02-23 06:43:34.875117755+02:00','2025-02-23 06:43:34.875117755+02:00',NULL,33,'10.89.96.0/19',1,1,1);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2024-09-14 08:51:13.31135114+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2024-09-14 08:55:27.877614108+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2024-09-14 08:55:02.778476991+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2024-09-14 08:57:26.215082073+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2025-03-09 11:22:20.790371056+01:00','2025-03-09 11:22:20.790371056+01:00',NULL,'user009','','',NULL,'','');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,81 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
INSERT INTO migrations VALUES('202502131714');
INSERT INTO migrations VALUES('202502171819');
INSERT INTO migrations VALUES('202505091439');
INSERT INTO migrations VALUES('202505141324');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,"user_id" integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'c0e73b52c1706fcceea368ae07c19c0e91fbe1f78eff2f7b',1,0,1,0,'2022-02-26 17:02:32.568878371+00:00','2022-02-26 18:11:15.388354971+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'ad293159f9506a02d6de4730e5a2ddb74f9fd4033919ecc5',1,0,1,1,'2022-02-26 17:08:07.828690446+00:00','2022-02-26 18:11:18.890985216+01:00',NULL);
INSERT INTO pre_auth_keys VALUES(3,'66c7e0fbf74010ea2e153d35ffa0f3c48380ef38960d1fd1',1,0,0,1,'2022-02-26 17:11:54.149663776+00:00','2022-02-26 17:16:54.147175388+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(4,'cdbb69c88fabdc2609050c7f99e8ebdea6fcf81a50d802fc',1,0,0,1,'2022-02-26 17:15:34.160746962+00:00','2022-02-26 17:20:34.15935255+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(6,'0a99889a217a2f9cdd20082faadd5c90e72c83a47093a63a',1,0,0,1,'2022-03-04 07:27:17.535172209+00:00','2022-03-04 07:32:17.531871524+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(10,'6e88409e3883c1a47249e428030afd4a46bdaf3adb3b74c1',4,0,0,1,'2022-04-01 20:43:21.757703546+00:00','2022-04-01 20:48:21.756458144+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(13,'9d3c2bde9fcef181a3141dfe59d449bf03f6779dad3580e0',1,0,0,1,'2022-06-26 13:19:48.533865696+00:00','2022-06-26 13:24:48.532164552+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(16,'00b123d52ea8f58379b740fdc5c898b02330ab9b366cb1b4',1,0,0,1,'2023-02-12 06:21:30.15120385+00:00','2023-02-12 06:26:30.140082454+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(17,'c471ce93392c0d3040af0cf6166f4f578c3c66dd180b6e0b',1,0,0,1,'2023-02-12 06:26:55.829311638+00:00','2023-02-12 06:31:55.824701077+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(18,'fe0a438e67687540efcbbbc28c8e6c1b8ac1216f99de33d4',1,0,0,1,'2023-02-12 06:31:13.245185592+00:00','2023-02-12 06:36:13.241695106+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(19,'5a469043f1fa43ff11e54ea242dd882a81aea68f168b9a34',1,0,0,1,'2023-02-12 06:31:13.622545545+00:00','2023-02-12 06:36:13.560890824+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(20,'8b31d9a38282dfe07ffcebdfbd40db6b9e49997c93bed570',1,0,0,1,'2023-02-28 12:45:48.518939706+00:00','2023-02-28 12:50:48.445951259+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(21,'47a4216f2b4e5885d4e53a3de2ffe95521d8a708ca26d31e',1,0,0,1,'2023-02-28 12:45:48.53865321+00:00','2023-02-28 12:50:48.439132728+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(22,'1b7be83871f396e4544c8445acfc8d308dbfe29c7f0197f0',1,0,0,1,'2023-02-28 12:45:48.538806791+00:00','2023-02-28 12:50:48.445073692+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(23,'c9f364adba95c6c46c162eaa3786702805595841c0150927',1,0,0,1,'2023-05-05 08:08:16.73107293+00:00','2023-05-05 08:13:16.722921676+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(24,'a90c87e30fa22ffee39e5ce157dd22c909f2026295e3bce4',1,0,0,1,'2023-08-14 14:36:52.042138928+00:00','2023-08-14 14:41:52.038644473+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(25,'bb059cde5663619a8918bde19b9f8236085725554d9d78c2',1,0,0,1,'2023-08-14 16:15:33.722630834+00:00','2023-08-14 16:20:33.719604033+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(26,'0733b8fc67adc82644c87a95947b24c5d368c633cff92eb4',1,0,0,1,'2023-08-29 06:30:44.934900329+00:00','2023-08-29 06:35:44.931280114+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(27,'567f3a39066fd99c567d14bcc374b25cee0ad71af08b9054',1,0,0,1,'2023-11-03 17:53:45.857200883+00:00','2023-11-03 17:58:45.853742836+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(30,'8aa13c93cbef46d36c8159da51fb41a469ae04f932980890',1,0,0,1,'2024-07-29 12:24:27.140614087+00:00','2024-07-29 12:29:27.136525982+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(31,'9314b171abc433d73b8db297c1c5c65dae0be53d39a71520',1,0,0,1,'2024-08-07 18:35:12.375119763+00:00','2024-08-07 18:40:12.371590392+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(32,'6a8fd483387734664f2a911545150a9bc0d9f12a744fe913',7,0,0,0,'2025-02-23 06:56:50.319087142+00:00','2025-02-23 07:56:50.31726796+00:00','[]');
INSERT INTO pre_auth_keys VALUES(33,'f9e6f7c415c3dada62a7ddaaa84089c1ae5a79799135ddb7',1,0,0,0,'2025-05-20 12:42:38.359223624+00:00','2025-05-20 12:47:38.357400723+00:00','[]');
INSERT INTO pre_auth_keys VALUES(34,'14bbc5eec5d659e311d1317b5b6fa100989d362e9c9391ca',1,0,0,1,'2025-05-20 12:45:13.242066722+00:00','2025-05-20 12:50:13.240121832+00:00','[]');
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
INSERT INTO api_keys VALUES(1,'S2nn85NliD',X'24326224313224454b717078586e6e7a35566461394c6a744b435a454f6c3539636351513630693035355052625772664b2f776f37467a586d592f57','2022-12-25 21:35:28.644697962+01:00','2023-03-22 06:22:18.724817647+01:00',NULL);
INSERT INTO api_keys VALUES(2,'1KZkpEyiMH',X'243262243132244854744d444b68744567707a2f4b4c4468316658742e6679415a445651546e3270787032334243315547366f4a2f3758326f30422e','2023-03-22 06:22:18.339101298+01:00','2023-04-13 09:32:24.318715268+02:00',NULL);
INSERT INTO api_keys VALUES(3,'6yBMrqvEDX',X'24326224313224714d6e6b52514a773661742f546f69356b45795a744f5077726c76393467713741442f7a344d726e59457032542e5a797162345043','2023-04-13 09:32:23.864995051+02:00','2023-07-12 07:32:23.45+00:00',NULL);
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2022-02-26 18:00:56.104436744+01:00','2025-05-14 18:46:33.171927603+02:00',NULL,'user001','','',NULL,'','');
INSERT INTO users VALUES(4,'2022-04-01 22:30:02.657653341+02:00','2025-05-14 18:46:33.172257847+02:00',NULL,'user004','','',NULL,'','');
INSERT INTO users VALUES(7,'2024-05-05 07:08:47.915309504+02:00','2025-05-14 18:46:33.17253525+02:00',NULL,'user007','','',NULL,'','');
INSERT INTO users VALUES(8,'2024-09-14 08:57:26.215082073+02:00','2025-05-14 18:46:33.172790221+02:00',NULL,'user008','','',NULL,'','');
INSERT INTO users VALUES(9,'2025-03-09 11:22:20.790371056+01:00','2025-05-14 18:46:33.173008092+02:00',NULL,'user009','','',NULL,'','');
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,"hostname" text,"user_id" integer,`register_method` text,`auth_key_id` integer,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`given_name` varchar(63),`forced_tags` text,`ipv4` text,`ipv6` text,`approved_routes` text, `last_seen` datetime,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:474325234da7eb017709065b11310982f2d27f555982cd1d244eed609b8915f8','nodekey:39346ddf789f4b8e0b75640ddb6c68345d9558a05da328ff7aba3f32e0d532ac','discokey:a3339402132a7e9270202a62006a6bf2c7bb878ba42b3d32dd041f48c4106756','laptop-97',1,'authKey',3,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["184.61.212.248:29690","[32a5:51:afc3:d256:5b83:97cd:bb34:13c1]:63964","58.104.128.216:9783","[2893:715c:4057:d56b:ec9b:b0b1:f551:dda2]:53876","124.44.86.49:25138"]','2022-02-26 18:11:55.92837512+01:00','2025-06-28 12:31:23.433667354+02:00',NULL,'node001',NULL,'100.64.0.1','fd7a:115c:a1e0::1',NULL,'2025-06-28 12:31:23.433017377+02:00');
INSERT INTO nodes VALUES(3,'mkey:5b5f43f22e7a71c5fd565e80430c0e6dac71a5cdb6ba74b1bb54baa0c9ffdc03','nodekey:db60b0b5f7fad865e516f069068d809f23b89b787824398150083f8a556841f9','discokey:456266be182c7d6e5da46744ed79fd2478a8680682b9e4994f88a58fb8977b64','web-42',7,'authKey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["59.239.218.25:49807","[cfa4:ad2e:1410:3b78:ce03:b437:6749:ff3a]:39835"]','2022-03-01 19:26:46.242187887+01:00','2025-05-05 10:20:11.253224494+02:00',NULL,'node003',NULL,'100.64.0.3','fd7a:115c:a1e0::3','["172.19.40.0/21","172.28.0.0/15"]',NULL);
INSERT INTO nodes VALUES(4,'mkey:e87e820508bd86c183ebe4ffb80637130b6d7480c3db5b94fbe4be097ca31d6b','nodekey:36d6615362a2367b323e53348e7b300b5d3180954f6c73d619738b6b416f8b29','discokey:31bde1fc825d42faaefc6baeb19205176d325a0c385b3d5c42020fac5828baf7','srv-79',1,'authKey',6,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["157.68.216.200:462","[8dc0:10e:95b6:9954:2614:8dcc:6564:e167]:58499","[8e6d:95be:19a9:316a:d37e:bcb6:5e05:d7f0]:36162","[5bb2:705a:7f5c:3c9:db83:956a:1ce:5291]:9510","37.24.123.232:17607","17.23.6.93:59855","[43da:7790:faf4:7da1:8df9:7bd2:7edd:86cb]:32916"]','2022-03-04 08:27:19.383566031+01:00','2025-06-28 09:41:55.764039354+02:00',NULL,'node004',NULL,'100.64.0.2','fd7a:115c:a1e0::2',NULL,'2025-06-28 09:41:55.763896815+02:00');
INSERT INTO nodes VALUES(5,'mkey:1390cccca2383b00ee50269c3f66a3282d6ac74d510da12d0ff6d06dfa585d6d','nodekey:10bc9579231e8407d16e1145240057b151187c0f713751369fee9d784a0396f1','discokey:bbaae038137272e4ffe36cfa61b5754de21be50116ac18ba68993ac3fef0bc86','desktop-07',8,'authKey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["7.15.39.193:11845","87.221.84.2:11620","71.36.112.35:10587","68.226.133.92:29098","11.142.49.170:22792","32.34.123.165:35870"]','2022-03-05 13:54:23.660591381+01:00','2025-02-23 12:50:07.99213101+01:00',NULL,'node005',NULL,'100.64.0.4','fd7a:115c:a1e0::4',NULL,NULL);
INSERT INTO nodes VALUES(6,'mkey:bbc0e9d7c02e59a66359201518e7c194d0767a35c8ebf01160df46c99e2a4fb4','nodekey:c03fe802222407ea830f88ac6bffc3b151402e6a9bf51329f252a6235c3e9edb','discokey:f8a7aa10dc7ca161f31103ea4f240f04e4f1eabaecd4cef7ca7e8c06cdf8f7f8','desktop-29',1,'authkey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["146.236.198.32:16212","[a38c:efed:7c57:2d0f:4348:fbba:e351:9d7]:10415","[8c73:5e49:de7d:6494:c1e:7525:20c1:4e51]:31219"]','2022-03-21 15:52:20.739594362+01:00','2025-06-27 06:44:54.03512388+02:00',NULL,'node006',NULL,'100.64.0.5','fd7a:115c:a1e0::5',NULL,'2025-06-27 06:44:53.041866553+02:00');
INSERT INTO nodes VALUES(7,'mkey:273845dc25d0db5a03a825317314a99e4ba47c754b48e864032dd9dbdd780069','nodekey:db16750752e4236f2db3adb3dc87b779a99dbca4454d680e80b1db68485de119','discokey:c9739f2584f4f04352e167e14b9b2a7f849a7e174cf7ed057988de85284ff98b','srv-19',4,'authkey',10,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2621:a1d2:a66d:a6cf:3592:dff2:93dc:5b32]:62817","[e1e8:e93f:ab91:4027:e416:9932:8e9:6fcb]:30261","215.10.187.249:19488","[bfe7:ebf6:e338:79a6:dba:4051:a7df:10]:31519","128.57.253.0:39500","25.178.136.37:18298"]','2022-04-01 22:43:27.318756043+02:00','2025-06-28 03:32:29.065962525+02:00',NULL,'node007',NULL,'100.64.0.6','fd7a:115c:a1e0::6',NULL,'2025-06-28 03:32:29.065314923+02:00');
INSERT INTO nodes VALUES(8,'mkey:de3d486a2491db953838ba8645073e4bd830d5a73d3cc4d2de21f5c89440acaa','nodekey:e90305687f5829ee9dd005d56dda139f7821635a8cc78f9632ee95c2e9a77a1f','discokey:a6aef9c5cc375914e419eb3d1d20d0a7c22829589dd831ae3fb389b6928d84de','desktop-58',7,'authkey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3486:5bc7:ada8:8da1:9df9:3cc6:d018:ee8b]:65112","43.182.159.11:27315","[12a4:b567:a06e:b675:a878:2f42:e5e1:429f]:60924","[171f:b843:ff2e:b9f0:9890:1aac:42e5:c2ab]:47842","174.7.154.174:51720","27.60.143.54:24292","[75c8:63d5:d781:ffb6:6d87:822:dc90:8e21]:58598","219.62.61.186:43774"]','2022-04-03 09:38:46.178224968+02:00','2025-06-28 08:41:48.401988354+02:00',NULL,'node008',NULL,'100.64.0.7','fd7a:115c:a1e0::7',NULL,'2025-06-28 08:41:48.401718826+02:00');
INSERT INTO nodes VALUES(9,'mkey:b611d5e2fc1ab1d3170a28fc8b95533488d8b60037899c23b3a92c90df0a4184','nodekey:365a5cd793fb1bebd177654e622112f431f472d89d3f4c410c8dfad67da69b67','discokey:d5963ebed732aa08dbef53f02a882074fec07b6dd734ea960879ff3a277d2b22','web-21',7,'cli',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["83.54.151.81:48561","[b513:b737:33f3:dd2a:df4:a90f:6797:6b1e]:7773","166.251.234.109:41163","[c908:b81c:b4c8:38d3:e311:b3f6:3067:227c]:11541","[f41f:b9e9:9205:210a:4ff9:ab34:57fd:3148]:21852","[3d49:412:9781:b399:f9a5:587e:bd2e:a579]:3775","[867:a7e:7e04:bfbb:6286:f95f:1abd:9b5a]:63765","147.22.45.153:11543"]','2022-04-09 09:43:07.09027176+02:00','2025-06-27 18:34:44.020047301+02:00',NULL,'node009',NULL,'100.64.0.8','fd7a:115c:a1e0::8',NULL,'2025-06-27 18:34:44.019955758+02:00');
INSERT INTO nodes VALUES(10,'mkey:6741c4c82ad84e841fcfbf08ef6f04eff5d2f9b0ba84d5ee461fb33b2ca5cd29','nodekey:e25cf4bd0f6a2b4b124de9ceb3ee35b9dd7c5fea804de904d3654d662f4d17ee','discokey:ac9ede38c3ba09f2a29106a1e7d51fffb8254a291094f959417f172d3d59714f','web-40',1,'authkey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["147.92.114.14:38013","223.127.253.143:5148"]','2022-06-26 13:57:07.40762063+02:00','2025-06-27 14:19:25.551023302+02:00',NULL,'node010',NULL,'100.64.0.9','fd7a:115c:a1e0::9',NULL,'2025-06-27 14:19:25.550738565+02:00');
INSERT INTO nodes VALUES(11,'mkey:7c84b8eea26e6d6a14e08ee933806ca4fb854bd0a168ee576efc58a69523ea0f','nodekey:00cb375ac5580c5718d7879942eba4378d73bf4026ae583a72c6d72f9a2f5958','discokey:69afa6724b1c46f7947a232489f51bd458db562c1144d41ba1b6075395e62529','db-61',1,'authkey',13,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9599:6347:eeed:7573:eb34:676:69d5:954]:17338","87.151.18.221:6598","110.245.60.227:50528","33.141.84.140:39332","141.199.13.112:28607"]','2022-06-26 15:19:50.566498735+02:00','2025-06-27 22:13:31.905300414+02:00',NULL,'node011',NULL,'100.64.0.10','fd7a:115c:a1e0::a',NULL,'2025-06-27 22:13:31.904659225+02:00');
INSERT INTO nodes VALUES(14,'mkey:4924fd3356d306df5387fd14994f605fefb34228482555a798ac35fa7a62c5f0','nodekey:541fea598d1b043201c43a983820265ec347c42c2716733737ff7c2e7be9398e','discokey:d6cccc631dc105d670b2533c3de0bd6f22eb54cc0a6ccea85d891d5ff2b2c81e','desktop-54',1,'authkey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["4.222.6.136:38260","[b46f:c4d4:f889:3155:aafc:d69a:48ca:a4c1]:44786","[c7d0:cf6f:bb45:6922:7fd7:adb7:59f5:499e]:60522"]','2022-09-26 16:07:54.206927686+02:00','2025-06-27 06:44:53.567922585+02:00',NULL,'node014',NULL,'100.64.0.13','fd7a:115c:a1e0::d','["10.0.0.0/12","172.20.0.0/14"]','2025-06-27 06:44:53.042608133+02:00');
INSERT INTO nodes VALUES(23,'mkey:54219375ce0ab01cd59b56ad984df668ae7cbe49b7b91e44877ae0d7012d6106','nodekey:2b0c163bc497f6214b25d6a333a37d273c260630dcc91782897f19a579f92a5b','discokey:4cf24a025241ad9a69c20d40513dfee5626f934d738e18f4a64fd9a1ace2cb24','srv-15',1,'authkey',23,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[60da:30ec:55bd:5ab3:3fe7:5492:1fc8:92f3]:36566","105.238.97.70:40193","[8c84:2d7e:5e1a:2f51:8754:aa54:b421:a19f]:60672","[5101:751a:5e00:cf46:8b50:8ba9:3c8e:4c7c]:33862","[b9fe:3630:1807:826:a4a6:e5d2:532c:bdc8]:43617","[25b5:5b72:2ecc:193c:b61e:329:81c6:5af6]:39854"]','2023-05-05 10:08:17.301597525+02:00','2025-04-03 21:18:57.701435228+02:00',NULL,'node023','[]','100.64.0.14','fd7a:115c:a1e0::e',NULL,NULL);
INSERT INTO nodes VALUES(24,'mkey:1109db54ebd9d9434856deacc7bd48e4b6398bc20bee5848a03961570d0612c3','nodekey:091f831b4c85c72746639611f5048ea7c522cd65a8e8babb00b8d67914a1db0c','discokey:29c076af146813259e9dd97c1771cf6d47e6e4968d92b521fcc9305790025084','laptop-94',1,'authkey',25,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["219.227.129.151:59871","44.14.163.233:8010","[dc07:21d7:4b8b:9784:c4c8:bd7b:122a:a5f6]:19866"]','2023-08-14 18:15:34.292188686+02:00','2025-05-13 13:12:57.458459972+02:00',NULL,'node024','[]','100.64.0.15','fd7a:115c:a1e0::f',NULL,'2025-05-13 13:12:57.458382646+02:00');
INSERT INTO nodes VALUES(25,'mkey:8d6fa35951ea76da6a6d85bb63eebf72dbf8e803aecb33a7cc8fada2206ba28c','nodekey:1606dda0995e7b12da0367027e8e1af41c2bc9a086151de09ada9ac833540022','discokey:5d66a541c0458f9178ed892cc57435f8e456722ab5c5b387887c7b3dbffde867','email-53',1,'authkey',26,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["210.72.228.199:14674","101.172.44.176:5878","[c018:a17d:2177:f7b8:482d:b68b:9b7a:c3f4]:52482","[99d:8ae6:556e:9e4a:b721:e12f:cec4:d571]:25093"]','2023-08-29 08:30:45.518580154+02:00','2025-06-27 06:44:54.325931948+02:00',NULL,'node025','[]','100.64.0.16','fd7a:115c:a1e0::10',NULL,'2025-06-27 06:44:53.144614504+02:00');
INSERT INTO nodes VALUES(26,'mkey:94b81dd1a9a0e1d42764099b075c4efa024bd0fbc0a9fc0c3cde7025c4d5a9a5','nodekey:b357796714da554353fc1db9d93898f6767d1f90908c3010c1743f15459d008f','discokey:c03304b111c7a01896bf3a8726a618d33981f8accf52b92d18b5e45f5896fadc','web-27',1,'authkey',27,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["62.26.91.22:45257","37.207.25.123:5981","[5b20:30d9:10ce:eafd:90f2:bf34:b3e8:fedb]:18638","20.120.13.221:18287"]','2023-11-03 18:53:48.108033118+01:00','2025-06-28 12:21:15.876418767+02:00',NULL,'node026','[]','100.64.0.17','fd7a:115c:a1e0::11',NULL,'2025-06-28 12:21:15.875770984+02:00');
INSERT INTO nodes VALUES(29,'mkey:5a805e2dceef2becc9d1fa1f2ae9854fd6e773570d808956b7eb8df88acf2795','nodekey:9eabd54bb541ec1ed45c2baa516d0a15011636079d750f3d36f6e570d9f0f6b3','discokey:132c6950659404dc4c4583ef60d6a5809486b0d47a2828c093a6d12c7ea61b1d','web-93',1,'authkey',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["39.206.106.178:64472","[a3b:5db7:67ad:9dfa:1b70:91c6:15ae:e5ad]:26117","[fac8:c08b:4b48:8273:42ed:d152:8301:66c4]:15174","67.172.102.32:57252","85.212.234.244:43593"]','2024-06-02 09:46:39.307697473+02:00','2025-06-28 05:47:36.860000326+02:00',NULL,'node029','[]','100.64.0.19','fd7a:115c:a1e0::13',NULL,'2025-06-28 05:47:36.859751546+02:00');
INSERT INTO nodes VALUES(30,'mkey:1e4d9c9b335bc18582f57648b44139b4c263b22ca46e4bb7b6d95745e17d9c4d','nodekey:334930dbc0b41f2ad56ffaaa7fb320379f97deddd1b6395fce9033b64446eb63','discokey:d28e8e4fda1139832bb9203d623ab9accab1bb64690a495c1cdf96b6fe822f62','web-35',1,'authkey',30,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["216.16.62.70:35569","213.115.82.246:7596","195.216.27.246:54466","[c47f:35c9:41fe:6f5:a40d:3e8b:6679:411e]:12963"]','2024-07-29 14:24:27.684620193+02:00','2025-06-27 06:44:54.03534083+02:00',NULL,'node030','[]','100.64.0.12','fd7a:115c:a1e0::c',NULL,'2025-06-27 06:44:53.247773264+02:00');
INSERT INTO nodes VALUES(31,'mkey:6ddb2155e63e4641d21add6e086675e22c209566578f70866c7de59006859ece','nodekey:85fe5b9f1f6cac554c527a85dad9a490a2962eaec8e4727537769433a5a01c14','discokey:d3bb4ec681d8d0230a71e2e01cf871c67c814a8125a4c6247ad6885de3980ee8','db-75',1,'authkey',31,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ee98:8de3:1f5b:731c:751b:ba46:a4a7:8760]:23245","[6eb3:8c34:e6c9:4c6a:25c9:89ca:c165:354e]:65112","[7003:63bb:6429:d463:96a6:990:2bdc:217d]:4300","[d820:584e:2b46:6915:6420:3056:f76:9e33]:48885"]','2024-08-07 20:35:12.944541318+02:00','2025-06-28 12:22:15.988053559+02:00',NULL,'node031','[]','100.64.0.20','fd7a:115c:a1e0::14','["10.154.123.128/25","10.128.0.0/10","192.168.246.0/23","192.168.150.0/25","172.16.0.0/13","172.16.224.0/19","10.23.224.0/24","10.0.0.0/8","10.127.59.140/30","172.24.0.0/13","172.31.132.0/22","192.168.64.0/19","192.168.56.0/24","192.168.224.0/19"]','2025-06-28 12:22:15.98744456+02:00');
INSERT INTO nodes VALUES(32,'mkey:ce4d4da08c077577b78b78a4e914507d2026e96b8584921850ea3e7dd8c0084f','nodekey:9a20472651960cee39c0f528022860269ef1cd53eab071f4aecce54f80fa874a','discokey:91cca1b79300d8ffe78e37aa02e31673d08cccdeb52aab242207efa3d75d6af0','web-49',1,'cli',NULL,'0001-01-01 00:00:00+00:00','{"fake":"data"}','["[aa0f:320b:3c12:4808:b5c7:510:c4d9:2009]:16605","[f87a:6765:f859:7291:198d:f454:4d4:8f6e]:23352","[5ddf:114:328:db55:fa05:4192:5d30:acc]:9087","86.180.96.120:14053","156.124.91.30:504","189.130.203.73:33525","[9470:53d:a212:874c:c627:32d9:5f15:39a]:61202","188.181.153.153:41358","208.6.130.2:5757","[a47e:177b:a793:d8c4:7191:f01a:4819:fe98]:47998","[9561:5615:b7c5:b2bc:4f65:b1f:a9da:5e0a]:2120"]','2024-10-26 07:18:04.947942936+02:00','2025-06-28 12:27:59.883807194+02:00',NULL,'node032',NULL,'100.64.0.21','fd7a:115c:a1e0::15',NULL,'2025-06-28 12:27:59.883542043+02:00');
INSERT INTO nodes VALUES(33,'mkey:307000af9e5b5c7efee75c3ed7d23090866a9e43955e23aac2dae50b46073c1e','nodekey:b18bd32bbd3bd77d274dea94361272cf171f407989ea6553b40acbd1fb571706','discokey:73e11d3631b882516e5fcd41d6a95f44e15c7322c8428215bc19aff366574a35','desktop-05',7,'cli',NULL,NULL,'{"fake":"data"}','["81.68.14.120:23633","39.210.11.46:40333","96.70.183.102:16729","[b2ef:7817:aea4:73a1:6391:d75b:b4ce:f0b3]:36420","[747d:f46b:96f0:f467:e625:3462:a216:ad48]:4718","124.57.193.30:26578","[e11c:edd3:59b3:c56b:a8b8:ccb9:1716:ceda]:61482","[ef1b:9f1d:9db1:6734:ba55:756d:3d3b:80a6]:30155"]','2025-02-23 07:59:15.141530181+01:00','2025-06-27 22:01:05.602056574+02:00',NULL,'node033',NULL,'100.64.0.11','fd7a:115c:a1e0::b','["172.19.0.0/16","192.168.18.48/31","10.192.0.0/13","172.20.0.0/16","172.28.162.48/29","10.175.189.32/27"]','2025-06-27 22:01:05.601785141+02:00');
INSERT INTO nodes VALUES(34,'mkey:bdd5a76f6d7f946c4bb9454abe28e7d2d212df3c451c9d068c2985649d193f83','nodekey:f8ed0148a1314428adef803acb6eaf864d1513e3388eaaeb92b7e6a2cd7bdc12','discokey:634d6b49a81f9443ce9a97b04b64c962c6707c182d85c9cdc59abd4a16c6de19','db-92',9,'cli',NULL,NULL,'{"fake":"data"}','["111.62.89.28:35728","150.196.197.67:64757","114.51.87.168:47070","[a4ce:7387:d7b4:514e:c1be:706c:1812:f866]:48356","[167f:1873:3939:734:49cc:5627:6f93:e1c7]:31097","192.35.174.224:36261","137.15.122.25:55742","[c9cc:ff0f:fbb6:e583:c69:78fa:a307:4bd2]:3181","185.20.86.11:20604","[e220:9785:d01f:28d5:1e97:4df0:2443:cc0e]:46902","[6152:ea90:3c89:e905:5201:32df:a4d3:b4bc]:41319","[20e3:1e48:26a7:5c2a:8eaf:1f7c:f36d:6a38]:22275","[73a6:792f:7678:4806:c617:d54e:2e74:862e]:25300","[f626:b8e5:f3c8:9d1d:3f91:a752:5cd5:57c4]:35608"]','2025-03-09 11:42:30.627548688+01:00','2025-05-05 10:22:29.0194247+02:00',NULL,'node034',NULL,'100.64.0.18','fd7a:115c:a1e0::12',NULL,NULL);
INSERT INTO nodes VALUES(35,'mkey:bee84dff5b07ea34d3ca9d7bc3824a4226f725e7f7fe33f879f11af907e73670','nodekey:f022dec5a44c0f09e359106d9f7ffebcfa21bb74103f16c7072e994e8a3094a8','discokey:b24e98fb8f6951bb8c4c081bb7fa326b8bf7f43181b160c0b8555deeeb55924f','lt-42',9,'cli',NULL,NULL,'{"fake":"data"}','["150.171.114.186:31321","147.156.202.29:42507","[b262:bff9:607:762e:cf05:3029:1988:9095]:14244","[8083:6d41:4186:7a48:2933:1fb1:3285:8dcf]:42595"]','2025-03-09 12:06:19.756893731+01:00','2025-04-07 13:08:46.652035521+02:00',NULL,'node035',NULL,'100.64.0.22','fd7a:115c:a1e0::16',NULL,NULL);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,98 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,"node_id" integer,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli','null',NULL,'2025-01-16 10:47:40.213920406+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376","86.84.184.63:26062","[c187:a8:1181:8321:28ab:fe72:b0b8:8ec6]:41236","[9089:461f:ad5b:68d4:f7a8:618a:a52a:56ac]:63162"]','2023-05-17 19:38:13.531518257+02:00','2025-01-16 10:47:40.214263246+01:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:348464565f0009e9205c9a78f381e12b9cf63ee2006b8e95d720a274347c4847','nodekey:bff28b3734e3343ded434f23bbffe562bab527165158c992e1126c94f39ea877','discokey:9c077cf7719204300ecc1ab64fb6bd3cc0cd398a4a208e37ed79e4500db3f86c','db-91','node002',1,'cli',NULL,NULL,'2025-01-26 08:14:11.090449666+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["165.5.239.20:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680"]','2023-05-18 10:09:21.757289398+02:00','2025-01-26 08:14:11.091108158+01:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:e44e45bd1656b97e8b328dc927ccab6cbce6c869992f70fb9c6031b980a1bf2b','nodekey:1497e461383f07b4f7cd7c76036b6fcabf23f46ac9f3651e22fd1f67eee22804','discokey:d84cef5408f6a40a7d789abbfdabd99edcd794e066894632f3cbb20d0e90a100','lt-24','node003',3,'authkey','[]',1,'2025-01-22 11:01:10.431892865+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["219.238.10.240:64443","[5e3d:ce1d:284e:9f89:155c:bff2:a65:d667]:51808"]','2023-05-19 07:09:21.399903526+02:00','2025-01-22 11:01:10.432002736+01:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:a2be538ff79403d577686c0ff675e1ec1b0da10902211d25ccf8adb58deaa6be','nodekey:69977d7f034a8ca09f0f08dc2d6410eb2b6f5fd343b6c88124ec37d6bcddb4d9','discokey:2a3fadbffba90bd0d74d432626a92d1ce1cf0297d4ad51cfd2011c4de7e198fa','db-36','node004',4,'cli',NULL,NULL,'2025-01-26 08:13:58.345329896+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8a81:30b8:5d50:73d7:9039:f2ce:c1be:a099]:43373","76.78.238.163:55069"]','2023-06-10 09:31:51.940506933+02:00','2025-01-26 08:13:58.345780429+01:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:d1533206380a3d91fe09ba9aca808b8caada2cb469e9065acdebab13f22a215f','nodekey:961c8e15bdb7e261c0d359f72256c218447c9c007032f102a418d07b0b829b1b','discokey:d6e4dec2b26039771350ddf132dadf1a5d8615608bd99461d267271e7b53269c','srv-09','node005',4,'cli',NULL,NULL,'2025-01-26 08:13:52.985209632+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b12e:af88:3c55:41f8:5fba:2aa3:3248:15c1]:23643","186.84.191.82:2621","[c9d0:4e15:513a:171b:9911:f9a0:cccf:cd83]:24151","66.84.158.199:63451","47.94.115.240:6677"]','2023-06-11 13:56:42.694329408+02:00','2025-01-26 08:13:52.985552336+01:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:4cf09b5d948c6492d0706b7972a9f46f03261dc73244cbd098653461c1426dab','nodekey:dd207345a8cdda46d50803658ab26c0fc7f28283217c6aa616a945885e92fca3','discokey:a0e6dfe46d6380aa0d131816dc0ea3287aad89196690b9bd91224f904816aa06','email-01','node006',4,'cli',NULL,NULL,'2025-01-26 08:14:07.254903549+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f739:43a6:4363:817e:34d9:3cc:1272:dba1]:26597","220.204.45.94:59135","187.96.173.136:34092","[fece:76ed:4c23:1e89:f225:97a1:94be:b5c4]:33472","[e1e6:a14:535a:668b:698:f125:543f:b5b7]:31740"]','2023-06-11 13:57:44.975695604+02:00','2025-01-26 08:14:07.255223389+01:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:5bbbd75488079eda04771e44ddf21c5866640024a947e66cfd3c3bafb19d3e11','nodekey:022306df92cac976efdd1dd5d4454d0e20eb46ac6f7b847dbcc382a399d1c97e','discokey:4980d19a6814405d26c40dee31a93a5f43e18b41f6f6f4908ee59066e04f8179','lt-67','node007',4,'cli',NULL,NULL,'2025-01-26 08:12:22.511406544+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8ddd:4aae:2b94:4c1a:d05f:65d2:2bdb:b400]:42839","[c493:a941:58b6:7634:6221:70ba:20e6:40c4]:35486","[9b54:61a6:c678:edac:956f:741e:5e2c:9ec9]:17930","[cd3f:af1c:fcb4:bcb3:806e:adf4:3f3f:ab36]:58513","[7a83:6a84:9f15:ba1a:9671:3d54:2e31:d5e9]:64893","167.223.65.194:6907"]','2023-06-11 14:16:56.951313537+02:00','2025-01-26 08:12:22.511838306+01:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:1abadbff7c8bdbe7a3104396c70068fa0a7aa30e405ef7d088738a8510877b39','nodekey:1251afbe69b3212ef1137c4bf2ef842409b8440d9ce32470ce4e8fb245480ccb','discokey:4a7b4155015d4cc2418ccb4005d3408b610c37b9f7bffdc625e2823f3e44514b','srv-71','node008',5,'cli',NULL,NULL,'2025-01-26 08:14:08.383652695+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["107.117.104.69:47662","[adea:86d3:b312:f445:d835:6023:f1f:f928]:27483","124.104.237.237:47957"]','2023-06-11 19:59:30.401970393+02:00','2025-01-26 08:14:08.384047921+01:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:9ced3abf3a281d71b6f361a75769c571c4aff9e4cbab5b317f6cf18918f66bbc','nodekey:e533ead6c5b810764db07631d7b9b14434bf66549837d33a6187daac1ab1d7a9','discokey:571a7ba01a8a0fff2af21d0f135caf8ae2ee0e15fd5ab996d2e490cf968d7217','email-22','node009',6,'cli',NULL,NULL,'2025-01-22 11:01:12.033798488+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b29:3bfe:7aa9:2767:900a:8142:1ae:eb94]:59942","165.200.68.0:39862"]','2023-06-17 19:40:45.468789461+02:00','2025-01-22 11:01:12.034166898+01:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:6cb022f8457bd430cd8ca6e88f1d4e3678965fd0af659ef29c956fbaa81c870c','nodekey:b4dc05758407f598a2cb77f98d5c4fca9dc3820e31976887942b54a4d44e43bf','discokey:fb9dba09bf8b64d2ef3b35d917d41d5208aafb2b013a53da0d2196a152a3cf9f','desktop-07','node010',6,'cli',NULL,NULL,'2025-01-25 22:09:32.216704757+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["2.116.83.236:33635","41.172.94.101:32111","223.204.123.230:38090","[9394:b33d:67e:fde5:21f8:77e8:97a8:bbb7]:47884","14.155.207.231:4806"]','2023-06-20 11:18:35.905417341+02:00','2025-01-25 22:09:32.216953236+01:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:e76a4d43284c0d19fbcf84b38d4bbdc5f978f8922f2ef6dcbe15170a3860a7d8','nodekey:85652faac3a65cb620073e7402506930daa194a7a3555c335741ee65a920530b','discokey:3a6aac7afdc916c9bc84b77b90c521c0e08f3fbf06ce89cfb2281271ec070b1a','lt-86','node011',7,'cli',NULL,NULL,'2025-01-25 21:58:31.767301396+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["22.207.212.228:27547","[2c3e:2260:8c34:275:2287:b721:1bdb:d462]:59540","70.115.64.117:6906","147.25.71.84:48460","[7137:65e3:83f9:ae56:6e7e:cc0c:9d64:64fd]:52919"]','2023-06-20 11:35:15.063855316+02:00','2025-01-25 21:58:31.767562461+01:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:80b6649b616453e50d516e4890706ec7327a137f8051a4e17fa0f50e69408e84','nodekey:ead1339d471cd9067122e4f39e0e0f4655c1bffce99f7edfcba80812fc7a2db2','discokey:f05ebdaf81717f2a41c4985b47698a319c787056efb5412600ebd8a793147687','web-89','node012',5,'cli',NULL,NULL,'2025-01-26 08:14:25.345334172+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e758:c726:ced4:43ea:60fd:3ad8:1b8b:b514]:15200","[314c:5aba:d6ac:63d3:4de3:2c46:5e60:903b]:30789","[6883:e8c2:287f:71c8:9417:824b:b3cd:29d4]:51083"]','2023-06-20 18:22:35.061914624+02:00','2025-01-26 08:14:25.345710569+01:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:70c9e841ef7964d5d754bad3f78d29b99f19f84475ac2bb72c3b38110978a195','nodekey:046c467dfce392942dbd84c1346611d3bf8634ffd51e4de6a8249d6555d28a03','discokey:38e293f7476b6c04489ff6a8e8664b8b5cdd4e93f4c39b8f065ba8e251744af4','web-67','node018',9,'cli',NULL,NULL,'2025-01-26 01:15:31.831355377+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["33.51.84.119:46756","[c844:704e:c3c0:e709:8f94:3564:1b4d:d2d9]:8357","[169:f098:49e9:99af:27bb:802f:fc22:bd59]:63749","[2acf:3f32:1763:5d21:88a:4af:8779:1b1d]:36283"]','2023-06-22 08:30:54.08720463+02:00','2025-01-26 01:15:31.831742232+01:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(19,'mkey:338d7e5ca6c5a8c65d7174eb1af312107408a16b7769b7088c8acf64134d9722','nodekey:440bd6fd6eea65489be99a6a95f4b6315ea55fa31fa1d6905a53ba4c046e0817','discokey:80890f521819e60c3778df342a98a9adfe2f46c15b0f55aa14f17df002aaa398','desktop-48','node019',10,'cli','null',NULL,'2024-08-07 09:35:12.220368767+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["191.156.96.176:5489","[166e:c30:4d73:440f:456a:22be:71e1:142b]:33036"]','2023-07-03 15:18:03.829428454+02:00','2024-09-18 16:15:14.037990869+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(20,'mkey:99e6d97451e391c261c72abf2e5d452754d7526a1d4563307259c88343c8a2cf','nodekey:581017de468a3dab721afad32b6d549e031026e4ff4a43a80ef50b035c5f60b6','discokey:af34366f05ce93952843ebba11ad2ede1fc68ca4016f5cd8569a4d057bfe3a59','srv-39','node020',11,'cli',NULL,NULL,'2025-01-24 21:43:10.483328442+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["17.32.175.58:63234","81.17.18.155:10091","171.238.29.81:53035","[cfa5:e342:a85f:891c:cff3:24ef:4692:f8a0]:31064","207.187.74.99:12216"]','2023-07-10 12:40:34.838579199+02:00','2025-01-24 21:43:10.483531762+01:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:0d7504dc98ef6995e1f14cb39cd28a340b08b05debe9ec639658e6849aa3c1ca','nodekey:811ced3ca0a2ecf6076f7fc549402e4021300609338990634e648bc620a3914d','discokey:542283ed990035a314aeb44a01d428aeb9baff09786dc18463f085d98900f762','laptop-07','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["1.118.111.70:57112","9.144.234.157:13194","[86df:346:dfa1:bd79:e59e:3d3f:b98a:63d6]:59098","[4b06:6a05:94bd:4bca:676:93a4:2e20:b923]:23713"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:3bc73d052a1fc1b031e300db9022a617c04a055225bca5a3f3efb931b2a216ce','nodekey:3527fc46bb993bf23c7866696d860b29b5a54314c62e4d35ab44213278bc821e','discokey:db9ba442b211d4cb5b4db8f96d8f71c8bdd7e3501310d3cf5685ff821af58ca6','web-70','node022',6,'cli',NULL,NULL,'2025-01-19 14:04:19.025822598+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["218.87.248.142:13273","222.154.224.82:48446","9.237.225.227:64622","[46a1:e1e6:6b82:6599:acc7:2273:afea:f09f]:38018"]','2023-08-05 12:08:48.132161695+02:00','2025-01-19 14:04:19.032514264+01:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:0799589ca5f3434d831c8401f52a58017a21139fd1bffe1ea482df70f4490a5c','nodekey:56ae1d35eb872ad470997fb776347e21ad052fd0715c7a5e8b80d9502ec71a40','discokey:23fe8efc052f59d556a6d8314a2757b07df13305d74143f7171de11aafcea455','email-11','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4c65:a6f:293f:8d48:f136:8b6a:185a:7ec7]:43854","43.114.58.145:47143","[758f:df49:401f:abcb:57ff:c04b:79e6:8519]:62313","[2458:76c5:7d48:c26f:34e:1663:6911:ff6e]:22202","66.66.46.14:16686"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:4c4c4036f9b8b19936757b1a5c582a4d5fd016de083063aac974d6a487775946','nodekey:e524384415f37298c43007df3c13da08a5b1156441f62e606378a5eb96a80f0a','discokey:7b9dfad48b0225f02fd0b196b2ef964b538c43795539c30fbd08e5f930bccd6e','desktop-97','node024',12,'cli',NULL,NULL,'2025-01-26 00:04:55.348199222+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e79c:8c65:bff5:d873:2599:3f53:d49b:617a]:59079","137.167.193.123:34677","159.52.2.200:7205","[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152"]','2023-12-15 11:14:36.765183054+01:00','2025-01-26 00:04:55.34833514+01:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:da46f6615ae2ebf0b10dd6941ea821cb7e2c64a3e46427013351d19fa9281e33','nodekey:e3a9a5473a28bc56917aa154d2bf3198bd5a226ea85693422d74a235ebc09192','discokey:2d7124caaadcf3ae57163efed0cb5e9d04ef0525e8e9d7d8e436f24ace9217b2','email-08','node025',6,'cli',NULL,NULL,'2025-01-26 08:14:57.87480236+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[74f:3ce5:744d:cd4c:eba2:4e83:2f25:8e32]:35248","[769:97e6:7060:f428:ee55:f77:43a7:8d18]:61446","[630f:7c1f:d48b:ea66:23d7:1ab9:8bd1:10f3]:25600","160.27.109.39:47606"]','2024-01-05 17:32:40.940566279+01:00','2025-01-26 08:14:57.875128359+01:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:26740462ad2cf89190b15cfee7c25600065050b832b780cd845359ec0c715d71','nodekey:6d55d55e354e8a983a485dc1fbac690b5386d97b9ce3d373c89e92a68a1bc411','discokey:3fb9d7bf3b7588b6882a1c4442dd7ad2447ad3f5ae8a6e9974f3f7cabca00ee2','desktop-87','node026',6,'cli',NULL,NULL,'2025-01-26 08:11:54.580017267+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[1e45:fbc:2c6d:d1c2:a4dc:9086:f55b:6e96]:54073","[be93:4c8a:facf:a4fa:29d:ed91:91f1:12b2]:57075","[2c67:a9f3:3163:c675:3386:2447:1cc:ed3a]:42590","64.137.67.1:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245","32.31.195.128:7039","[c50a:ec:e2e:e109:3a08:f56b:2928:4921]:61265","221.147.144.138:44737","136.208.142.64:41091"]','2024-01-05 17:34:19.811670479+01:00','2025-01-26 08:11:54.58066838+01:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:73868242348c7d709b77f52963c32eb4b95c8b6f89abb5db76bd95cdaaa538b7','nodekey:2de3f421f78de3f5cfd824ffaa80cf3fde3060bc42f51c2ee2f55b49fd5fbe20','discokey:5ff3b0ad430ee5530c972ecf0d3e69f25eecdadf6ef8a309b3841d7aaa6f70d4','web-56','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a2b8:ea55:f9e3:2c00:f423:8c56:7fec:c617]:53793","[ed88:2277:3c9a:4f64:a25e:5b41:a3ca:e904]:27852","[d203:40a2:5efc:4a42:8910:81f8:59c6:4d8d]:23389","187.126.162.12:25054","[5d8b:9391:47f1:1bbc:e01:92de:4a90:7614]:42410","172.81.188.131:23453"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:300a566a21fcaab2665dc091300e2c5110dcaee25e2fcc4cc23b011fdae471e6','nodekey:8e36531b406e0b7b9c1b9abadc00626ccc8c6e7a0c37f70f42ccf06cd2dd03fa','discokey:a4134738054f6fc0c57b6eb47913e68a3f47ffb81af8a3496754921c2fcb02f8','laptop-98','node028',7,'cli',NULL,NULL,'2025-01-24 15:11:59.137108429+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["113.143.9.36:55432","[e266:66fe:4929:3831:7830:6f10:1572:20df]:9977","[afe5:7d57:fac5:a1c5:78d4:ee33:d474:1e56]:52223","7.208.95.117:299"]','2024-01-15 09:34:54.847632697+01:00','2025-01-24 15:11:59.137302845+01:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:6d3edcfd40971c25174fa55eeddf76d05447d7d28f216c6118d8d6e35aa1ae89','nodekey:4b7d7ef564535f114a410c384aa3eb95103b5895cfd74962c7d37d3a8b0bb6ed','discokey:569e08cefcaec4d1312b70c41c12d82b26712965cbab41ac3ca5db857274ba46','web-76','node029',7,'cli',NULL,NULL,'2025-01-24 14:00:44.067705144+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[24c5:f1ec:38a5:5a2d:7224:b76b:cd04:e6d2]:63943","162.176.178.140:46577","[4f52:1708:c0a:7991:9c16:bd7d:4045:195d]:50362"]','2024-01-15 15:18:12.2871978+01:00','2025-01-24 14:00:44.067944989+01:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:a81a1bea534e858e4f2f78cc1b6ebbbb1c15f6045ed63d403bdcfe2f0ebe9c6f','nodekey:bccf984b4408b961eb80fa63a1d5dff73c46bfe0bdf5e903b9d1e90d6cdc037f','discokey:7fc2f8726fc62046cc8ac9cc78d91a53b4baab2874981807e038ca1161c5addd','laptop-86','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[acfe:eccd:ac4c:8d39:dc9b:840c:c97a:dbc5]:56981","[c204:d59b:29a8:ac18:75bc:1a4a:755e:a8f2]:26579","35.41.214.64:38835","143.202.189.84:43171","[8679:8c46:1c66:cd1e:95f8:2b0a:503c:819b]:57389"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:b5ef2204ec90b7f3c80be32de06bc6008c678e060e21d802de3c4d6b6ab3175b','nodekey:3a5706b432df2c448b307981345f4586433fde926401c667aabc84666e77e0b5','discokey:31b8429f3d4c130f05b42f36699bc3c6ba8018d48fac1ffb98eaea9b5e77a0a7','srv-51','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7f3b:f876:2230:c8ee:99c0:d76a:2f38:10e9]:33365","[c7af:10d6:9f3d:9dd2:3423:afc0:aa2:e156]:5125","11.55.50.90:25074","[c7aa:b53:8762:dc6e:5d4a:a2f3:16c7:3d3a]:5279"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:805d05918a94047740c914235c3c614042b05d18458f331ba0a46ee22d2187e6','nodekey:ebc009009bc015bc45f6499b04b7af9ff2ceff22c0f9676749b10c92f422a8ad','discokey:b6d83e1f6f0e86c3808cffb227cb6649bffcf5d4ba1596f6fd58f41b8b727133','db-70','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a1ed:3568:9b48:6735:e553:a273:ea02:7271]:46613","90.225.231.207:5490"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:d5d48a3961081cf65a57a8593db00b32779c3fe44e5c410a3b763a24153543aa','nodekey:b6b5f4dc6ec205b068bbbbd3d72632d9c9bcf48812c6f444b31c4165573f9a78','discokey:3a3b06d462ae33b40900eb11fa7b58e0e16a66dab9921534fa3f77e77b28f7ce','web-02','node033',13,'cli',NULL,NULL,'2025-01-23 21:19:25.034740145+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fc74:9d:e278:2d3d:8d46:7e4f:ce11:39b5]:6716","[bc29:715c:cdce:f1f6:8630:4929:ea1e:5c03]:10918","[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624","71.151.27.31:51063"]','2024-02-03 16:33:26.706408143+01:00','2025-01-23 21:19:25.035093942+01:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:88bd1bb4cbdbe175ea0e76e22d7a03fdedf1e1b53584f8d71861afba431765fd','nodekey:584aa8327097f88b7236e4d9b7594de8a971302ad5569a2b73ba28192d7d81ff','discokey:699c13c9c5277f160fea25002df68205cebc7dde6cec4e5e6bc2a20702a4f774','laptop-79','node034',13,'cli',NULL,NULL,'2025-01-26 08:11:55.430892992+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["14.172.203.164:46293","[c:e6fc:18ea:2e45:6bef:c1c1:f84e:b1e2]:62296","71.155.69.236:8707"]','2024-02-03 16:42:32.683785672+01:00','2025-01-26 08:11:55.431204644+01:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:627bb55986f4c5331926e5cf3db2aa5aff2cc66d63665e114f7b3d7185772264','nodekey:e52da64771618b76ec6ec975cc00d96d8da9dddeff5d91797c70fcf8d5dd0788','discokey:9380df456003f1dbff764e8f2819e914a7b0ae285b53dbf5db34a7be37b849b6','srv-65','node035',5,'cli',NULL,NULL,'2025-01-21 17:41:56.706838249+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["139.180.210.231:32286","171.29.58.211:2336","200.47.65.115:32030"]','2024-02-03 16:51:52.010016072+01:00','2025-01-21 17:41:56.707118547+01:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:291af9833f3d5afbdff138bc4dd1b6c2fd418c12362d1daf8eb65f2d59ae290c','nodekey:f4a5894e008543c73d42c157efef4a3afb66e4247ba2876c245a498e54b43563','discokey:2ff5debb97003182af5b76792c5061d232e755bb9e22fc36a60ee01905319f5c','srv-75','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["122.50.5.12:7674","[a641:3f06:63bf:b716:4658:1e5b:ac6f:e14]:13490","197.206.147.31:58506","[b1e8:68a0:4017:a243:61d0:b303:7860:18e]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121","38.137.88.247:35801","[eec2:61c0:e20a:2fa0:5e4d:56a4:5071:881b]:36628"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:a414d52df11b0409ce8f8160ee3390e346b511398c40e9def61fee76c0ba2edd','nodekey:1d023daf8f56db9c71b9e075a63c9cce5b74bb94dc77df6f98542ec85b2f6ec6','discokey:21c22f87ee8f10643c49baf10db4833c6a975d5122762bbd693ee70488e6766a','db-61','node037',5,'cli',NULL,NULL,'2025-01-26 08:12:35.773797291+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3a31:6dd2:cc04:d20:e5d1:8664:3ec9:71d2]:21117","27.214.20.185:57647","[8c40:dd59:c31d:dd18:321:58a:11fa:d85a]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846","8.137.133.59:22781","[cb5c:f8d4:ccb0:8333:8ec:170c:a2b0:941d]:26248","[5802:df5c:8853:4851:6dcf:cb83:8208:d143]:24568"]','2024-02-27 12:14:40.452601042+01:00','2025-01-26 08:12:35.774174083+01:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:465de79eadf29db3136d0b230c481876edbe7e05a803281a523618c586fd3c01','nodekey:01614d4aa1bb0be1f6b41e10aa9ea1c7af206ef9a2571bb68c24e85bea697216','discokey:d3eea5725d8408db2ffc560d74c70da0a70c3f3dc40a0d6a6fad9afaaadee9f2','srv-59','node038',6,'cli',NULL,NULL,'2025-01-25 21:52:13.380610729+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8125:ebe4:83e1:4806:f061:5bd9:a08a:8ccc]:6467","114.199.17.195:52817","[de36:fc02:8cf4:c60d:824a:9963:2440:5b5d]:39343"]','2024-05-22 08:08:16.045350656+02:00','2025-01-25 21:52:13.381028865+01:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:ff2ce8eb04d99e45d7babacacc758ec8e031474fcf494b4c0349c7084cc62365','nodekey:660bae997d6da1efccc0135ed712176a379f59ec9ca7a02eddea607a8855cebe','discokey:66ca4169c6be68079a1244ec506d8c922af4133187e0117a1800ed4791ed9a67','web-21','node042',14,'cli',NULL,NULL,'2025-01-22 12:09:19.893938069+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3a3f:717c:1ea3:7c82:81e4:5d9d:765f:7da4]:6540","[bc95:459c:aab:499d:4354:d239:ef14:dcb]:14429","[f673:7912:6d5e:7244:62ca:9500:78f5:31c0]:27677"]','2024-07-03 11:12:29.418355657+02:00','2025-01-22 12:09:19.89470831+01:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:df2afe1643d44e7b5d2b4fe1b78e8b0c8c7871b50b1b580048cf6b184cc99143','nodekey:4512e240f89db2671db1ad974c151afad41491d7d11486b644aa2cf66bc3410e','discokey:f4b10325d44499f510cf0bd61d7c9d116b10c14434b8fab4559f0797f033936a','lt-12','node043',14,'cli',NULL,NULL,'2025-01-22 04:20:37.032313126+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c91c:4366:d3bd:a993:b5e:75c7:ef8e:8166]:46974","191.185.253.85:37427","17.31.200.70:26794","[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440"]','2024-07-03 14:48:50.263910778+02:00','2025-01-22 04:20:37.032585258+01:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:38b6d221092d1ca7bc7a6bded2156ea0cad76eeb937d2fbf8b5c519a6e655096','nodekey:68d1f2817719a56a0a6d482869a443e60b317da298d6e07940c3475a6ce76ff3','discokey:1027b93e5031cec5525f02ff625e869e89a050796b2d19ed3a3574f3817bd4e7','web-74','node044',14,'cli',NULL,NULL,'2025-01-22 12:43:56.696054645+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9e5b:f6da:727b:9014:ca72:1f2c:87a8:8e81]:62466","39.179.118.209:64932","[cc06:5e56:fb0d:b760:b501:efab:c73b:b492]:26172","162.210.141.106:52036","[84ef:a164:d1c:d20d:797c:753e:f8fb:3108]:5767"]','2024-07-03 15:23:48.066044194+02:00','2025-01-22 12:43:56.732053672+01:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:877372ef6f845443379ee2d2c9d0538937dd1b3d4e13fc6c204b04a86b4daff9','nodekey:97c037de3c80309adc59c894999d4993a451c2762b936748a34025cb26e5e3f8','discokey:aee8faedda0c97f6483e11ed745a1e387605e09132b2c55170dbad0696d5f126','web-77','node045',14,'cli',NULL,NULL,'2025-01-22 04:20:27.07284339+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4c0c:1e2f:95d7:9d1f:b068:c776:ee11:ea3b]:46940","[7526:4960:73a9:911a:1fbf:92bf:1219:a6bf]:25440","[360:d312:e59c:79e0:a7e4:2295:caa0:946e]:17493","26.61.8.198:45861"]','2024-07-03 15:54:01.706018896+02:00','2025-01-22 04:20:27.073044637+01:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:39dc02019f24bdb0b2b66f9d32d44fb95a3a71de52fccf6aebeed5fec709bb12','nodekey:041c60aa08b42defc979d1a4606096540df4a4dd10191818d54ddbfab89816b8','discokey:5b1253f35e01f1e97ebb34884ede4d1bcb46446c1c5eed456dfc6638e08a8dad','laptop-06','node046',14,'cli',NULL,NULL,'2025-01-22 04:20:43.53444835+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["98.122.93.117:34230","[2077:6b7:927e:5e5c:a0f0:3352:1490:e1e1]:47997"]','2024-07-03 19:38:07.783745318+02:00','2025-01-22 04:20:43.534962909+01:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:fcbeeeafcfa6f96917f0beefe78ede5a3ec327664fed68dee26757dc6e6896af','nodekey:216b84282abd69521955b0a8df7136a33b496a0152bea4928ed426893594f569','discokey:0fdf92e9def6d70c2161eaa1cea4d6a032bd6bddc47ecfce29cb962c2c6ad2d2','srv-99','node047',14,'cli',NULL,NULL,'2025-01-22 04:20:25.918857828+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["125.19.14.225:12660","[d722:f972:c192:4cff:3916:e1e7:6d02:236b]:55695"]','2024-07-04 10:38:08.344092869+02:00','2025-01-22 04:20:25.919209254+01:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:570c6df03e928e23665040f909113b7f753ced52db4050f3f918562c930c4ea5','nodekey:7becf5cc7f3471e35f59f844ff8d2c41a580b9f548dba24f5e98896403b0da30','discokey:3ea933912fe815a3a4d6c69aba1da031d24d78003b4bad7cad131c8e599a300a','lt-30','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["97.124.255.12:40587","166.176.60.55:23674","[33c0:859c:4a78:8bdb:359e:31e4:1e71:7e39]:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486","22.83.180.41:14147","26.126.135.206:7777"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:4d5f9a38fce205b2dfb62f42464172a1408e00221317b01332714a4db55e6ebb','nodekey:415009b46e40247f7a60d9e0f53c938b6a032fd4c11ae70d824e2d95cf170957','discokey:280e5896d458bd63044265484d38ad711ef52a68981f83281ff693e837421a13','web-11','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[475b:3641:5abe:b0a8:8a68:dd51:8e80:3efa]:574","153.151.233.195:41734","[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:a35a00c69e2fa10d442ae03a4d9312ee61e56caaa030d1303a4ebab2b26c27eb','nodekey:39bf208ba118345630aecd3c6ed042d40b1e6b4897c9548a21a473c28352ba95','discokey:437f4dda6cfd2d269543f32dfaac1333b8660cec03b279728e296f6cbc67ca69','db-28','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["150.170.146.70:3311","139.117.239.209:33788","[2eac:ffa0:99fd:d109:c120:a35d:ed48:eea3]:51544","[7644:c348:2969:b90:e84f:94d4:b629:f266]:49336","169.247.3.239:36225","[5b4c:bb2:d43f:6ff4:d494:8616:a66a:d059]:50360","203.180.122.83:13344","63.162.234.32:11653"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:38d8adcfb8f6217b6dce62c89e816da260f1b0747a9a980e0ede5de9412aab4b','nodekey:98cb6a87bfa7cd614051008583e5f0904552b44d98854a0fb5d8e0e3c3115949','discokey:104eda6ea8f8fbeae20617662e601bd0acf102511d17ffc829c08db6a7f78872','laptop-32','node051',14,'cli',NULL,NULL,'2025-01-22 04:20:18.310186164+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["33.182.22.166:13283","181.10.243.176:14596"]','2024-08-07 14:19:31.156780417+02:00','2025-01-22 04:20:18.312102891+01:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:3a83699597e3bee8b15df3733dfb54b1d7af3ff9ccc7a4b65df4b0feb4a3f25c','nodekey:86cf80f0bd8bef4888116f2bab1b5ac4b11bd6fa637f7ef0886cd0aa265b2bec','discokey:28e2d745a5216bdaaeb83b4483b19d1c2ae0c149b97c08c06a4b90ca2c742a00','srv-53','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["72.183.239.155:49891","167.46.143.131:51781","[9e9f:93d:a8cf:c86f:17e3:9e2b:dc42:efa6]:3616"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:d1fda0c437a79b121817c1c24e88bce18fdab566d5e74678b8730cb48c1dd574','nodekey:1463eab453b78867448baaae38b88547334df5070c30e77a08cd3410bd721d8a','discokey:4688405d194600e9c1a783e71e274c3e42976a5021d81db4ba4a0506a768cbca','srv-86','node053',17,'cli',NULL,NULL,'2025-01-26 08:11:05.595652839+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["69.219.0.37:43476","[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694","[156b:e934:d171:2693:8db4:f193:a58c:17b6]:24190","79.255.179.99:56057","[6369:4412:8cfc:2a5e:7cfb:8b45:e2ac:f98a]:16090","23.0.29.75:24889","[ab0:1193:7bb7:4a4a:c036:b911:994f:3aa4]:5116","[9491:7bd5:3979:414a:d198:a8b:f2e7:29b4]:62795","140.73.225.124:1710"]','2024-10-28 10:04:50.084492941+01:00','2025-01-26 08:11:05.596582615+01:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:e47e8ca8e89ebf89a399a8206916ac7a55f855b449acf80c7d27b6b225aac678','nodekey:377793cdc9eb6f2279806b2b70d0fea24c4f4c1dfdf92771eecd9199f67d80e9','discokey:299a45d53358f6a43234df87ceff28e642433aa06e8341862e8557d1d499ddae','email-83','node054',14,'cli',NULL,NULL,'2025-01-22 12:00:41.056079317+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7d2a:9d5:1fbb:54a7:fe7a:bc40:5ea2:ca20]:3534","[f630:8bb5:a4ff:95b1:6d95:decb:a5d2:373b]:42456","[6cc8:4fca:c46e:ed25:e9ef:43e:f0ea:121a]:60965","122.41.198.69:28824"]','2024-12-09 17:10:55.363593066+01:00','2025-01-22 12:00:41.056216357+01:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:59c5aaa1eca0e9109bf2b9ec602e9d844936dd3d632543489fe5e66f4cc31e8a','nodekey:815c97157312040cb667db75315dfe58933335496ab31a98f351728872da07ab','discokey:bf3097a60b972dc98275e07c31df2ac05dc540280d7ff9006ee5c70ee8d5962d','laptop-61','node055',18,'cli',NULL,NULL,'2025-01-19 14:04:25.389314117+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["182.195.110.58:14598","155.200.222.111:64410","[b554:3604:41e8:60a4:229:a09c:efd3:c73e]:39533"]','2024-12-10 13:56:39.287449662+01:00','2025-01-19 14:04:25.410288998+01:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:1025548b29dc9733e1099fbb6516778e9d8f07eeaa214cd1ef33438e731333eb','nodekey:3f21adc328130ab468ac28ee25b4002974610ddd7b11f586752dec5a151114b2','discokey:605115f1238609b148dff010ca6e04d7b337df4e2b88de7a1f900a2f1de7db42','laptop-79','node056',19,'cli',NULL,NULL,'2025-01-26 08:09:46.709773709+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a329:52fe:45d1:996e:4767:d50c:6513:92ac]:54604","80.29.45.84:8223"]','2024-12-17 14:58:39.429211911+01:00','2025-01-26 08:09:46.710363543+01:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:f8394e6be895b3c2261fab8cd62d1f28124d377df6b4b17dac4b9f18c54a3e00','nodekey:a8302c7783050d61484d3d6e4abbf256b7062303e01bdfcc6371046a468fdfb0','discokey:3e9447d6b8e10da3215899328df484415e4fc8e6e301e232ca51721f93a50b53','email-71','node057',20,'cli',NULL,NULL,'2025-01-25 14:06:07.21327404+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["158.184.132.83:56087","[1129:e066:9c34:190d:7bf0:c941:18d6:f96b]:48892","7.227.92.62:26101","[86a5:23f7:afd9:863e:e7f5:63bb:ed61:9d51]:17106","110.235.245.179:61572","[57a6:fde1:814:36cd:f8de:668c:f5fb:4f60]:39714","[f08d:aeaa:107:fc17:5c30:ab9a:e31e:3147]:55879"]','2024-12-17 15:17:14.26936913+01:00','2025-01-25 14:06:07.213397766+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:13565579616a60409e411d5406b743f5dcf878da4aa82031350537d41038e09f','nodekey:788fe7ffbb2b564852b1b9ec170a4267449c98b17ed51dcdce65942de712918b','discokey:8027b59df9ab90efb6d63898d60362cc3583c20b52aa4694083ef2201404fb27','lt-15','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c493:2a8f:6625:98c3:4f4a:db04:19cb:c7df]:41081","96.25.93.176:21890","219.197.124.83:46550"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE UNIQUE INDEX idx_provider_identifier ON users (provider_identifier) WHERE provider_identifier IS NOT NULL;
CREATE UNIQUE INDEX idx_name_provider_identifier ON users (name,provider_identifier);
CREATE UNIQUE INDEX idx_name_no_provider_identifier ON users (name) WHERE provider_identifier IS NULL;
COMMIT;

View File

@ -0,0 +1,104 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli','null',NULL,'2025-01-16 10:47:40.213920406+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376","86.84.184.63:26062","[c187:a8:1181:8321:28ab:fe72:b0b8:8ec6]:41236","[9089:461f:ad5b:68d4:f7a8:618a:a52a:56ac]:63162"]','2023-05-17 19:38:13.531518257+02:00','2025-01-16 10:47:40.214263246+01:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:348464565f0009e9205c9a78f381e12b9cf63ee2006b8e95d720a274347c4847','nodekey:bff28b3734e3343ded434f23bbffe562bab527165158c992e1126c94f39ea877','discokey:9c077cf7719204300ecc1ab64fb6bd3cc0cd398a4a208e37ed79e4500db3f86c','db-91','node002',1,'cli',NULL,NULL,'2025-01-30 19:01:13.901141508+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["165.5.239.20:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680","86.50.30.30:18216","[fdbe:7908:805e:6c8f:47c2:2c87:b1c4:44]:48470","188.237.187.170:7622","[c032:e70d:dbd3:27de:85a3:28b4:8a64:155a]:48864"]','2023-05-18 10:09:21.757289398+02:00','2025-01-30 19:01:13.901463969+01:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:cd435d043e3dba7c0cd2f089c57c46abd59f84c1d05d5b9ea03d344a6dd7e61c','nodekey:5a558233f8e076e1f3a78e95e274265332c984372e8bfa91c62e748707e3d9c8','discokey:d2dbd001168ca99d38dd2b56270201056955f5d05a97934278b7a8311d809e37','laptop-91','node003',3,'authkey','[]',1,'2025-01-26 12:49:44.580858758+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d40d:59d:b450:8ad7:bc04:9836:f16d:d538]:10080","87.84.28.245:43373"]','2023-05-19 07:09:21.399903526+02:00','2025-01-26 12:49:44.582326495+01:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:4b507fc1f103042642d3c619b0cdc77a6dadb4415ccd78b5b3880f4fcacacef6','nodekey:259a4b5de585a90421714fe40040c339a26a660b1fa0511f6323e51926b88c5c','discokey:36b7d0cbd65c02c741958c3e793960fcf2b93f7d907fc4483f548043864bdbae','laptop-59','node004',4,'cli',NULL,NULL,'2025-01-30 19:08:13.209119931+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["1.79.159.39:34092","[b12e:af88:3c55:41f8:5fba:2aa3:3248:15c1]:23643"]','2023-06-10 09:31:51.940506933+02:00','2025-01-30 19:08:13.209865565+01:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:4937d77921b93317ae3fb1fb406ffd3fa2d9154afa78c3ed00a5a685ede9aaae','nodekey:3c38f956817733cb7dfb474be1a8289f90ae0cb4df5dfd42ad8fc57e3a35b702','discokey:9abee320c0000a4f325c4aaf75173a715bbd1dc88f93699df10e7bf06ba0097f','email-95','node005',4,'cli',NULL,NULL,'2025-01-30 19:08:24.678660839+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[cd19:68e0:693d:5e6:659d:9f7e:277e:21cf]:31475","86.42.90.60:13473","[14af:1283:fc98:5791:282:5e8:a450:315f]:22243","201.199.139.78:9445","121.159.150.133:23963"]','2023-06-11 13:56:42.694329408+02:00','2025-01-30 19:08:24.679099806+01:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:33535c582e158d27acdafdda3edd3777fd581ddc2adad52eaee607a82a0f9d9c','nodekey:144ba4b580e0d6d9add9a482c5f893deba28ec44622ccd056a06a9ddf80af32c','discokey:62d0e22d743d8096882b23d1bc5f5810863dc39876bbec1253ff2a4c445f423b','db-15','node006',4,'cli',NULL,NULL,'2025-01-30 19:08:06.034183297+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[698:f124:543f:b5b7:644e:5b79:4160:6e0b]:42676","165.236.227.226:53522","[e65d:59b5:f599:8596:2bc9:56b7:820a:8c12]:12277","[8ddd:4aae:2b94:4c1a:d05f:65d2:2bdb:b400]:42839","[c493:a941:58b6:7634:6221:70ba:20e6:40c4]:35486"]','2023-06-11 13:57:44.975695604+02:00','2025-01-30 19:08:06.034942035+01:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:26d1a98dc9d16df9ce9692bd330c25b5d021d11ff35b15a79f282b51c7f13888','nodekey:dd3d71574aa1270acb5176b071f1e99f512a4436ac20050df6d617865d2e47f9','discokey:def83e0a3c95bb379b8af036680ce07aa7725d1d2c4b7feb656c5a441f51fef7','laptop-38','node007',4,'cli',NULL,NULL,'2025-01-30 19:07:54.580925698+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[cef3:87e9:7ebe:e5a3:a6a0:5dc2:7a83:6a84]:43421","177.175.178.171:24266","[489b:6c59:1877:6215:ddc8:57f8:78dc:321c]:3025","77.213.161.20:47662","[adea:86d3:b312:f445:d835:6023:f1f:f928]:27483","124.104.237.237:47957"]','2023-06-11 14:16:56.951313537+02:00','2025-01-30 19:07:54.581710417+01:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:9ced3abf3a281d71b6f361a75769c571c4aff9e4cbab5b317f6cf18918f66bbc','nodekey:e533ead6c5b810764db07631d7b9b14434bf66549837d33a6187daac1ab1d7a9','discokey:571a7ba01a8a0fff2af21d0f135caf8ae2ee0e15fd5ab996d2e490cf968d7217','email-22','node008',5,'cli',NULL,NULL,'2025-01-30 19:08:26.01751405+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b29:3bfe:7aa9:2767:900a:8142:1ae:eb94]:59942","165.200.68.0:39862","187.166.20.165:11208"]','2023-06-11 19:59:30.401970393+02:00','2025-01-30 19:08:26.017863321+01:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:4115777754bb14ec2d04345ee2ffb97968692a59f0f66fc4aec9737616903f41','nodekey:5a0133001bc6b02d996ea2e2cae3abcfcb073d69a25aefd4077f36c564af0075','discokey:91ec1c63e9572a6742c8bf8796ce7f5ffc3d42a03ad53070a3ee56a2523317a9','lt-39','node009',6,'cli',NULL,NULL,'2025-01-26 12:49:38.323826827+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["192.120.123.140:19810","63.152.247.204:38090"]','2023-06-17 19:40:45.468789461+02:00','2025-01-26 12:49:38.324187836+01:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:94da5084f8fc1cfe7671b94a0d7ef767719bd0fed89f16bc2726728db4cd9d25','nodekey:e6527563ef7a2647b6c719e0c9c95c1ab2a2eeef7fbb3f46a108ee0fbca026f0','discokey:f76230afd20bfcce74fd0d689b35e82cab5bfdf4cd1530073e87b1acae513c2b','web-50','node010',6,'cli',NULL,NULL,'2025-01-30 05:10:56.348559998+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[bed5:a4c2:8547:c044:9956:2566:d794:c918]:56801","113.147.88.203:61138","22.207.212.228:27547","[2c3e:2260:8c34:275:2287:b721:1bdb:d462]:59540","70.115.64.117:6906"]','2023-06-20 11:18:35.905417341+02:00','2025-01-30 05:10:56.349025961+01:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:4b59a62af15d9350f16c9a2e03aa6174692418948d6a5ad5c272f5bb88feb061','nodekey:5004a6cb840ab527bcf897c17761fd30338b1250b3a9e0ac3e3c60a422ee09d0','discokey:e191e0039edbf786f88ab163173eb3c297e060f51cb90249f36e4867d5d89928','email-58','node011',7,'cli',NULL,NULL,'2025-01-30 16:14:19.573081099+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f99c:24c3:b1b5:8b96:abe2:3ddc:c21e:87dc]:65141","[dfe7:6f6b:a382:4fc:a3f6:eb9:9ebc:5798]:1474","56.63.78.181:15200","[314c:5aba:d6ac:63d3:4de3:2c46:5e60:903b]:30789"]','2023-06-20 11:35:15.063855316+02:00','2025-01-30 16:14:19.573230274+01:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:88ef4bda4139c7c09e33bbc866b88e069c51187346d8095238179c82502dffcc','nodekey:7ad274415b296099222e0ca334eb849e0e6595ffa54dbcc94a0fc9ffa69d1747','discokey:388c1077bdd17ce1f86b92936609756ecd3e8b21ab3f4b8a84da7727dd2b2552','web-70','node012',5,'cli',NULL,NULL,'2025-01-30 19:07:30.410870761+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["33.51.84.119:46756","[c844:704e:c3c0:e709:8f94:3564:1b4d:d2d9]:8357","[169:f098:49e9:99af:27bb:802f:fc22:bd59]:63749"]','2023-06-20 18:22:35.061914624+02:00','2025-01-30 19:07:30.411307945+01:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:c2e0286f5c59bc66c9a7c950ffc72f8241916be6e9f16861fe3680cb3cd2c172','nodekey:2c67affcede5c938b2b0aa8a0a42753fecc147bcad5f3df411aa999751a3482d','discokey:7f4e89781a7a169060fdedb120b316e88a2c66f40c41118bdc1759ff818a28bc','srv-41','node018',9,'cli',NULL,NULL,'2025-01-30 09:35:22.409611504+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["204.36.161.195:61712","[bfe5:7c2f:e9:71b:749a:5176:3138:83c6]:63942","24.173.68.87:39654","216.16.204.79:19720"]','2023-06-22 08:30:54.08720463+02:00','2025-01-30 09:35:22.410235858+01:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(19,'mkey:28aaec5617646c94f895ba9449d924469be2345700d80131bd72c449b02346bb','nodekey:419dd05380491ade058b139b43fda78a99d52b00cb1984180c3f251c19c7bac1','discokey:0f0490d46f8794af22a08c1d6e874ee8303df7ba39095fdd78db9522849ed427','web-93','node019',10,'cli','null',NULL,'2024-08-07 09:35:12.220368767+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7b81:52eb:f4e9:e74d:905:79d4:67b1:d359]:13795","81.17.18.155:10091"]','2023-07-03 15:18:03.829428454+02:00','2024-09-18 16:15:14.037990869+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(20,'mkey:8bc474d6d0d812ab011b7748675802bd9d4af70c2edab0da6c682a0cf1ca34f8','nodekey:2cb4a0ab98e83dafb20621dcfec33cd5fa7fa99b97998546cb6796249bdba88a','discokey:e341e99f352acb61779807aea844516d7e9e220c58699f09232bcee105e88797','lt-43','node020',11,'cli',NULL,NULL,'2025-01-30 18:17:53.075807086+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["63.3.67.150:22907","[77ac:562:7c4c:438a:6ec:be48:743d:47b1]:11349","[33cd:731c:f110:9b45:66b5:de81:1daa:757f]:5997","[d618:5830:8a37:fbe4:3b37:a35c:fad9:11d1]:57112","9.144.234.157:13194"]','2023-07-10 12:40:34.838579199+02:00','2025-01-30 18:17:53.076540774+01:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:84000655b74a39e42877c1941d84a4e5b94db841c5440f19950813a5c25e1204','nodekey:bf71cc04a7b081255d32ce73fa666db0090b20af8e6e6115d279edead8b15227','discokey:b37d86213f6b344b4b24c73541b9c65e5aebcfa8d5c25114d10ef57761da6c09','lt-77','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[68:80fa:7b30:3a0:d1fb:3e89:2c73:256b]:30308","[ad42:3917:5edb:3e85:732:1c71:a19e:9fe0]:11799","25.63.36.137:903","179.61.150.131:36912"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:5f7118e434c174dbac710b1d088db6213ca894ca3912a92688110ed5f96eb37d','nodekey:eb2dc8689a32bb671c62e8744f2c968b9ecf3a0e1e50775de39a0f2a4f4011aa','discokey:bc1e75ccfe1c7c282df689d559cc5ef08659f1ee198456bc82df99e13371dd1c','desktop-81','node022',6,'cli',NULL,NULL,'2025-01-26 12:49:36.385301301+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["146.144.83.178:46323","1.236.14.11:13477","184.41.32.72:1026","[f136:8b69:185a:7ec7:94a1:ca58:5d95:ba9f]:21119"]','2023-08-05 12:08:48.132161695+02:00','2025-01-26 12:49:36.385653182+01:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:94d0eadf801d88022019f9353b7c29cafdd060a269a0245396e01f1293953cb0','nodekey:1db769d2ca42bc0f8b4e18b5c89a31fb4595edf0592ce1a534b713ba503f07e9','discokey:912056b78049017764c78a047b65feb3c3b934fa26ac62b44f8d7d561711321a','srv-85','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.107.170.69:30767","212.18.227.41:50735","[f774:e89b:980f:975d:fd3e:93f:a9b5:2034]:46054","[7225:d0ce:d29a:59d8:f596:b945:9a02:29ed]:43419","[5a76:d5b0:b51d:6b56:afaa:3968:277b:192c]:19250"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:247cad9ffd7d108f553e7658db14bbad992332458abb9b4bc5a0c0d3a13ead9f','nodekey:bbfb569ac8a34cf4d59d2bc13d0f03660d24aedf22c61b56510a65d20bdf0812','discokey:61f92520602549b9bc684eeed3186f608a38e13794d06d4b8d165c4efbb69a24','laptop-29','node024',12,'cli',NULL,NULL,'2025-01-29 22:13:40.47247515+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597","[320d:6314:eaa2:a098:8594:977d:27b:8442]:12827","163.235.127.125:61230","208.233.231.156:35248"]','2023-12-15 11:14:36.765183054+01:00','2025-01-29 22:13:40.472698887+01:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:232be2297acbce00785cbdff20dad9faf2b2147e15eeab1a5282fd2a48e7fb6a','nodekey:87b7b1f5e238a246897514dc0b57eca6403f8483bed626a9400c6ebc54161544','discokey:d87d208ca22717686d41e21c9adba999965a5cbcd4336b3dc3876b10f58bfaff','web-78','node025',6,'cli',NULL,NULL,'2025-01-30 19:05:56.81412934+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["160.27.109.39:47606","[62f5:b64d:d2e4:9015:b03a:c64e:656:8c59]:5020","3.166.190.93:19852","[243b:de9c:b8c:ea69:b66d:b3ce:14a5:9671]:22747"]','2024-01-05 17:32:40.940566279+01:00','2025-01-30 19:05:56.814546683+01:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:0fe76a3827debaf6af306bc25af56334fa1e02f73245aa70c508bc3e253c84cb','nodekey:0926a8072f34e14c1131b1e3c92402a4b8cf0dca5cd36a6dcf90887ec2890d41','discokey:69cd5153481aad99ea93df0e335d8aa7d8fd36171e49e1c6d11ef5830af2f7c5','email-86','node026',6,'cli',NULL,NULL,'2025-01-30 19:00:06.767381943+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["64.137.67.1:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245","32.31.195.128:7039","[c50a:ec:e2e:e109:3a08:f56b:2928:4921]:61265","221.147.144.138:44737","136.208.142.64:41091","[537d:7a83:c891:ac8:9460:e49:e769:988b]:55062","50.23.199.223:4814","[a2b8:ea55:f9e3:2c00:f423:8c56:7fec:c617]:53793"]','2024-01-05 17:34:19.811670479+01:00','2025-01-30 19:00:06.767773381+01:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:95e3d9972a77bda2f7b243091fbd9286ebbc415c108cd984c15b419b82867a59','nodekey:4c7e3c311374ae8f7b4983bfde91b950234915f4fef2da3445702f1d474f21da','discokey:4b5e41432c037af086249f5b0f7552da9cd523ba84092ed303f09e27d294859e','web-93','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e56d:6121:30ef:4870:5bf5:1066:8aa7:dffc]:56225","87.98.228.228:42410","172.81.188.131:23453","[cbf3:dde3:47ec:2c76:49ea:93f1:f43c:d8d4]:39412","[7267:209d:7e:6a59:8e21:b285:91d8:fc9f]:1315","217.68.74.145:28707"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:4a6e46330ccd4b3026337cdef37485c27592babda329107565c2a19d97253dcc','nodekey:17de47da1955a8a034788ae671c34fb10083568bf9e2f7494276cb2636065246','discokey:449f5f35a3507974cf03e3ac5c055d890de5122f57a7c2d84a0d3b324998607e','desktop-17','node028',7,'cli',NULL,NULL,'2025-01-30 17:08:57.494420371+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c2f1:82ab:922a:9b9d:f53d:a0b3:bccd:f6af]:299","[d28b:7b33:1f88:7583:7ed7:a923:4c90:9ee0]:62318","[68e3:a070:f02c:708c:a057:b579:aee9:4d25]:11747","[7224:b76a:cd04:e6d2:67fd:fec0:2f14:1837]:29002"]','2024-01-15 09:34:54.847632697+01:00','2025-01-30 17:08:57.494670314+01:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:6472928030d718e6e2802fb3bceba7c14b4716d994be1b3562a1d03104fd37a9','nodekey:78bd59aba83429486e0ed2d50873211974650b2e2ad8f79dbc07c5d13d00c5a5','discokey:86ead449e1be5a300287e690fb9522ba4da3e5bdeb593d6261e4117708fe3ade','lt-82','node029',7,'cli',NULL,NULL,'2025-01-30 16:03:46.587400142+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fd0d:f112:f642:c343:ac14:8ede:dc04:e2d9]:58412","[8a1a:5c17:bb81:bb69:c7db:3513:f14c:ca2d]:52077","123.235.220.59:59925","155.210.184.45:60093"]','2024-01-15 15:18:12.2871978+01:00','2025-01-30 16:03:46.587530619+01:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:947247ecfc46c57c6806008c2edac71e9e88b87903b4814f1d4f2b3ae3b4824a','nodekey:d19005205b9e8a43b2727bc1f9bc44acb0ced560304f2aad60b335de457603a9','discokey:882d6a41700c79c95d228db394d4a59244a1c2f39493b658400d95bd162b957a','lt-04','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e868:f68f:cceb:8d29:5451:c716:bdca:437d]:41081","[7016:b48d:8bcf:4ccd:8679:8c47:1c66:cd1e]:41980","22.231.20.85:41616","129.130.98.189:47833","[99c0:d769:2f38:10e9:c01a:e3d:898e:afc]:17505"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:c4853fdd63bed5a98baaf74df437eff743f8a968fda613fdf1f2a111e7c1b100','nodekey:9fc3f32ce92ab7f8ab987f16258b11265037a47cd9a1a68ac0e07bd3c279c183','discokey:e52f22aa8e170b6a031e682b5ed6e5f790f2d6ae1eecb752de1b362a1cce7bd4','web-89','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["133.177.207.78:47765","[d1b1:653:cd17:f39c:8a89:85d0:c7aa:b53]:5279","107.140.203.49:9365","[1660:741a:160:67c9:7972:5f9d:14bd:ee53]:21178"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:8c468799222af319e17ec309dbbf3a87fb6d924a1cb17e5a0bd7e027fe3bfe5e','nodekey:3c7d82f4a44cfa1469b957ac911e8506a68962fb2583d2afaf3e8a621c0c4aca','discokey:ba179b51f3540e619eaac9a6d4bc67403daa7c3cf28a6b579087cd6d284501b4','lt-53','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d21f:d7bc:f690:e3ba:82fe:8122:c33d:5a86]:227","10.67.113.92:45634"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:be7f190677fd0cd1c5e78b4ae5b02a1738dd60be7d9a41017000b22ae9636af4','nodekey:a404e578d3edd3e3d879e9f1946c859b5982c59f5e528bf6b987bd55de00b25b','discokey:ad3013f116c370866fc9134b66999bb05e2dc10a8e2944230c3d9893c0a94c67','lt-80','node033',13,'cli',NULL,NULL,'2025-01-27 21:29:56.078640865+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624","71.151.27.31:51063","[f0d6:21dc:48f5:63f4:daff:a3c4:7d60:51ea]:17286","[38c5:9551:f6ed:b087:91ba:bef1:771c:273d]:62171"]','2024-02-03 16:33:26.706408143+01:00','2025-01-27 21:29:56.079623854+01:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:7784df3aabe1ca1edab5270028fb3cae8b66cee2384790d06969d1e6e298520f','nodekey:fd8e939fd6db8caf6623ac3d73c12ade4da110d8c1f29e3a3ee0d2be0c526915','discokey:59aff4582e00d92260e6a90d6d0da3d818fe8f52c081c8b65e18006ef8269ebe','lt-65','node034',13,'cli',NULL,NULL,'2025-01-30 19:07:28.343976513+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["71.155.69.236:8707","125.2.67.155:50785","32.6.80.181:17295"]','2024-02-03 16:42:32.683785672+01:00','2025-01-30 19:07:28.344657417+01:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:ad3838fa63fb120ae8d3e47d4bb6bb4009e7fc5d91483d1ba7417d0681fd7162','nodekey:b10ddbdcf826d79049d74a7d4ad036b499c86f7daf786bb1a9b295366b57afe8','discokey:618ef629d3bd261964c613ad3bc45e6278fa274d734c8cd2d3396cf8c9742d88','web-33','node035',5,'cli',NULL,NULL,'2025-01-26 12:49:34.225736739+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["169.159.71.157:18240","[bbb7:5b4d:218d:55ff:ac9b:1fb6:c933:9a55]:63943","18.156.132.228:63356"]','2024-02-03 16:51:52.010016072+01:00','2025-01-26 12:49:34.238493375+01:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:c536a3efc460fb2da4c4775e2b51d0c84f001dc46a4d902429e74e97b2d3c6d4','nodekey:91da2acfa3d7f7c7b0c1a2d952ee527514504fddc504809423762203a16145ab','discokey:989ff5f21d485dcb6312fade38c9047bbde1fbce46bc29ac5f6afe00610ad215','laptop-46','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4017:a243:61d0:b302:7860:18f:7d4d:f605]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121","38.137.88.247:35801","[eec2:61c0:e20a:2fa0:5e4d:56a4:5071:881b]:36628","[b8c2:c792:3329:2c93:f94b:a948:7d11:b9f2]:908","[5925:353c:bd9a:f42e:1916:45b4:c170:e515]:18400","[c2a5:cc2f:e2e8:573f:7b01:4aa:8a1a:fd71]:32146"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:142e67963c9045164df7b33af6d2149d72f59527df44fd75221647281444cbe7','nodekey:a3a2cd2bd0c3a1f783d0391ea1951c5c9226ddca0f18130b77fccff8b874d694','discokey:bdb788f8825b9bd816f37dcea882920382c7feb143edf0a6baefc9015774d8aa','lt-24','node037',5,'cli',NULL,NULL,'2025-01-30 18:52:12.369500276+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c31d:dd18:321:589:11fa:d85b:695f:1fca]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846","8.137.133.59:22781","[cb5c:f8d4:ccb0:8333:8ec:170c:a2b0:941d]:26248","[5802:df5c:8853:4851:6dcf:cb83:8208:d143]:24568","48.38.104.41:43702","139.100.200.227:62546"]','2024-02-27 12:14:40.452601042+01:00','2025-01-30 18:52:12.369790328+01:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:6829f2d5523aba7a27c31e59e2341f3feb5a5a72a0268ef10d23c39811ea3b53','nodekey:10e4ff66fdd37fb54f6dcb0e42f483a15b6340610acc3a4517c24f0f350b5a9a','discokey:f20786f9c7edc967d0b415bbcce39468441af3b531ff15656c0683d3f328720a','lt-88','node038',6,'cli',NULL,NULL,'2025-01-30 16:09:13.024420431+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a393:f17f:6728:82e4:c1e7:2367:82d0:daaf]:18560","[d192:9897:4cd7:bfb5:de36:fc03:8cf4:c60d]:25096","212.199.67.213:11150"]','2024-05-22 08:08:16.045350656+02:00','2025-01-30 16:09:13.20760575+01:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:33e764ae40265089c5e7dbfc8571aa23bb390fc7e1e8bd2f3e0cd6891c308214','nodekey:c444c9ff652ba29181a5f7fdf991f91f704e6698237ee18b0649c81879ec932f','discokey:2e1db3a1eea266673acf7826aa44b5aa6fdd23c6ba41330562b37c5a523ba358','laptop-81','node042',14,'cli',NULL,NULL,'2025-01-29 16:46:30.352621883+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["190.179.215.222:61930","45.131.187.230:22916","[510f:af99:ed4d:f53a:fc21:8640:9ad9:4930]:16050"]','2024-07-03 11:12:29.418355657+02:00','2025-01-29 16:46:30.353292973+01:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:353844c4b332bdbf7f39796c522ee89d7f64fde342d3e566878f456df0d57a54','nodekey:c9f47cb50fd2b9075cda9d68018659491ac29dbbe7a04e8405039fd385966fa7','discokey:ec43638237bc43ab6a9839b3a4d54c2593e11a2ebd13bd491f08f68d7cf93ac0','desktop-90','node043',14,'cli',NULL,NULL,'2025-01-29 16:39:14.757499741+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e071:3cd7:878c:ae2d:7dcf:eab0:d0d1:decf]:37427","17.31.200.70:26794","[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274","[e5df:1889:6ac5:7d21:4dfd:614b:7eb9:d93c]:792"]','2024-07-03 14:48:50.263910778+02:00','2025-01-29 16:39:14.757996869+01:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:6d3e50168ff6e672ed7650abc5a1de7fec7150c6f84932c705c84964824d1d39','nodekey:ad70f51f99efeefdf0c8e0a9e818db1e5de474e67b2b0a1609a53190339938ef','discokey:c4d4ad19814f9312b454cadb85b333f80cccca1b4a42f30780f7a0f4ccfe1bff','laptop-97','node044',14,'cli',NULL,NULL,'2025-01-29 16:27:57.81216036+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b501:efaa:c73b:b492:c3cf:865:d55b:9557]:26172","162.210.141.106:52036","[84ef:a164:d1c:d20d:797c:753e:f8fb:3108]:5767","[c15a:e322:a721:c9a7:a662:ccb8:26b8:e1c4]:63192","[87c4:c36b:d96f:525b:fa4c:c5f6:7bc8:d6bb]:35894"]','2024-07-03 15:23:48.066044194+02:00','2025-01-29 16:27:57.81269748+01:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:e1772e6b138211afff6aa8fee08438c311b1d9d32576075c980d39591b13ae77','nodekey:92b8cc28bff0c53f95fbdd8c1363040100ae849e78aea04a3755e9a1fd03fe4e','discokey:7b368b5d64b6e4fb4f0ba9e5809bee8b769949ecdc69ec6ee6c9f12c2321fced','email-94','node045',14,'cli',NULL,NULL,'2025-01-29 16:48:59.640158179+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[caa0:946e:b130:39aa:31b0:8f9:7526:4960]:1729","120.102.247.255:41936","28.177.95.32:7841","[fb23:5998:c63d:b6c4:e86a:96b2:61c:e110]:51902","[89d4:f6c6:ccf6:b19d:3b76:642e:7a36:d229]:930"]','2024-07-03 15:54:01.706018896+02:00','2025-01-29 16:48:59.64070889+01:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:af6c1d228b675ff04d2584e2c23d6288ec312a6b44c5c0eed213423a11711787','nodekey:f5b21f25bb22b5cf0cedb1b643d50c3a6512ef300cc971eccccbcc500cc23408','discokey:72843a1b2564c177d8556eb0d76dda7cbe0d9f1408bd250fcc6149518eb6d5c0','desktop-41','node046',14,'cli',NULL,NULL,'2025-01-26 18:40:46.403363149+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[37a8:9998:e94e:e297:940e:5414:5549:87c7]:37130","27.138.122.133:37304","98.38.29.194:12660"]','2024-07-03 19:38:07.783745318+02:00','2025-01-26 18:40:46.403759275+01:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:5bbb77092f21b4835b0ae1af3871fc48445819c9b6e5ff9c46ad4a623b662ae8','nodekey:191c7cc089ee160c07b63e2b6b5ef0701d76d914009420baddad9bfce13e3f2d','discokey:712cadffd23f106abeea82ae70bbae8e06c2a58f3db617afd0d149b3012c64fb','web-61','node047',14,'cli',NULL,NULL,'2025-01-28 14:54:17.570894466+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["186.118.23.242:32373","[5bd8:a5a8:1b3:5e41:3c4d:5fc:4c0:c6cc]:24847"]','2024-07-04 10:38:08.344092869+02:00','2025-01-28 14:54:17.571166771+01:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:a1e793aa09c20360cb4ef57e7dc42171a0abbc9f562140609e930ba5b7b12e83','nodekey:3343520915898c9d90b7517eabf8660d66c37ed12aea0b5a4935458f95c801c9','discokey:6a80e23d10d2cb3edb58c9c47ee997f9063d6aed2f29049f635b6bf1da090885','web-24','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["101.103.129.11:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486","22.83.180.41:14147","26.126.135.206:7777","[8706:d109:5006:f832:dca7:58e4:4451:be15]:15180","177.4.27.29:60895"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:13b8d4cafbdb8e9ab77928219aa57bf778878866ad8e6108b60aaab8dc8cec36','nodekey:17cefd68f8a9cc20b3d4fd93598f77ddfd6bd5a7e6e4b49861f9faad8623e0ef','discokey:939a04ddd2f9a24468e07ee7924dbb7a7662c1e8a1b67426f57fd48c7394448b','desktop-40','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438","129.0.5.112:19015","[91e2:54c6:93fb:ec32:6ab4:186d:81cb:b815]:37323"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:03979d5446bb3f596bf0234d81ca84482eacb132e874ceda6cc2703422cd728c','nodekey:805c03cada525f14ee90d28ea02b23a3f57b470c793314872ad9daacf6c6484e','discokey:eb4135e1cc73a3c6b513d8cc04ca0c55a2aef7b0009845fa1d2036488aadf0f8','desktop-02','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9175:498d:64ac:4342:2eac:ffa1:99fd:d109]:21202","[5cba:56ef:db08:320c:333a:541f:605c:44d5]:57469","150.211.2.236:50360","203.180.122.83:13344","63.162.234.32:11653","[6b63:f552:f930:e22c:fc42:3b41:c5c6:6d5f]:63162","114.48.12.185:47837","[2964:cc5d:3a1b:7889:acc8:4d8:22c1:398a]:43515"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:5877139c52c0bf3c0fd054bd046aaf4530dd8946548a7bc1a06733649d1557d8','nodekey:553d9638c8c455e8d1bc811ea3af03db1eb3c586413447c8003e7d905a61d06c','discokey:1da883c9eff402d786362aaac2f478c835308b3acec0993e6293becf4474609f','web-62','node051',14,'cli',NULL,NULL,'2025-01-26 12:49:36.351868783+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["86.215.174.228:26026","93.101.159.155:64005"]','2024-08-07 14:19:31.156780417+02:00','2025-01-26 12:49:36.353124877+01:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:0e64072dafa5f9e49266b41fc4b21ff7d287be8f4e5f2b6c395487d632f1cf3f','nodekey:2f77bb8cbeb426bcded5ad9fc6da44b0b76b8d6759f10a8db28e634290760ee7','discokey:836558738056edd1fa8d190c7e42f120b365a48a3b1f1c96c87755bb82d7ad0f','desktop-07','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d889:f751:710:257f:977f:5597:9908:14e0]:61162","[f83a:5ebb:911d:ef36:743c:8086:8a4c:a5c7]:23538","[dc45:365c:e426:71d7:fe23:fdd4:d2c2:9409]:57262"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:a6f93e99a5019b3b6a2941d95dc7fcbfea5a59317a48b99db93b7a3f4f0a65bb','nodekey:1f78a6d76ea4a2135c0da46b202560c86ed30cd7e8239d4508088d0e02ffb961','discokey:1744062452f052aba5320e37fc08aaa37f1430db7c32c94c5626f0f3c858de3d','desktop-82','node053',17,'cli',NULL,NULL,'2025-01-30 18:44:17.370143702+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694","[156b:e934:d171:2693:8db4:f193:a58c:17b6]:24190","79.255.179.99:56057","[6369:4412:8cfc:2a5e:7cfb:8b45:e2ac:f98a]:16090","23.0.29.75:24889","[ab0:1193:7bb7:4a4a:c036:b911:994f:3aa4]:5116","[9491:7bd5:3979:414a:d198:a8b:f2e7:29b4]:62795","140.73.225.124:1710"]','2024-10-28 10:04:50.084492941+01:00','2025-01-30 18:44:17.370913494+01:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:e47e8ca8e89ebf89a399a8206916ac7a55f855b449acf80c7d27b6b225aac678','nodekey:377793cdc9eb6f2279806b2b70d0fea24c4f4c1dfdf92771eecd9199f67d80e9','discokey:299a45d53358f6a43234df87ceff28e642433aa06e8341862e8557d1d499ddae','email-83','node054',14,'cli',NULL,NULL,'2025-01-30 10:34:07.584992479+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7d2a:9d5:1fbb:54a7:fe7a:bc40:5ea2:ca20]:3534","[f630:8bb5:a4ff:95b1:6d95:decb:a5d2:373b]:42456"]','2024-12-09 17:10:55.363593066+01:00','2025-01-30 10:34:07.58575113+01:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:c0b2d0e2ff266bfc53e07b246f000847c7d0c86649152c2bc6a421443627c733','nodekey:105f9b052032e510f9ab817af7df0ea561dc304223ceaf75c9116ce487bbfe86','discokey:cfb384a16ce161420b9bd42615dfa45ca547084bf61f3728ccf342d8693a9383','lt-74','node055',18,'cli',NULL,NULL,'2025-01-30 13:48:04.74697862+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["155.233.51.24:54409","191.94.7.112:26528","[1f30:3a9a:19b:da4e:a3d7:9a55:707b:d112]:54974"]','2024-12-10 13:56:39.287449662+01:00','2025-01-30 13:48:04.74733257+01:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:5b28e1fc6b67cf4a900aeed7c413f06b83e8e9de3f5fada3cefac31ef51ac932','nodekey:8f015f994d88c5348b98c2cf40f9f224f85787941044438f4a9ee34cabbb5d4f','discokey:5b44ab87d7620b22294cae6536c69b272e9ca9ade6812bf4f41375fcb44ace7c','lt-86','node056',19,'cli',NULL,NULL,'2025-01-30 19:03:58.987501999+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["44.230.54.249:64083","29.229.203.183:13"]','2024-12-17 14:58:39.429211911+01:00','2025-01-30 19:03:58.987864718+01:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:200d4ac92d1084e22e9cdcd0a74ac2a12e33a279dd2bd9aa88a779c92c82bf35','nodekey:48c2e3c2c51da5ce63d764bb3698482e96746c543f2c728235ea8afe971202b2','discokey:2b3dec80b092c04bb25c9c39bf18e7f85d38dc666de1fff2dd7a6dd95e6af162','desktop-62','node057',20,'cli',NULL,NULL,'2025-01-28 11:01:52.058651587+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["178.193.134.41:58563","29.219.180.224:55412","[2ddd:7c1b:a237:41c8:3baf:e9cc:1f31:9057]:62916","[9c34:190d:7bf0:c940:18d6:f96c:9aca:8c0a]:8787","181.226.177.82:63703"]','2024-12-17 15:17:14.26936913+01:00','2025-01-28 11:01:52.058860063+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:4d690637aa5cdd6575d9dbb7fa0b55c83bece3e82bc689e73122c9120f871772','nodekey:8733914d48b0c34a0111ec5f633123ae4ec7de39e597077d659ab8f2354270b9','discokey:ff25bf692a69cc0e79101e1cc1b926ca97b6e3897e65c55e5bd3f09ca1ea6d16','lt-20','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[57a6:fde1:814:36cd:f8de:668c:f5fb:4f60]:39714","[f08d:aeaa:107:fc17:5c30:ab9a:e31e:3147]:55879","80.27.167.78:21548"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
INSERT INTO nodes VALUES(59,'mkey:581824fee9a91fdacfd3529d7e28548440259284e3f3251d00981c34ff1817a4','nodekey:ef7f1fd978b01f30758074df76c5eab42279ba200d7e3386fd6545e2d2865463','discokey:1e77e9eb061b34dd246f44cf32bf818b431948fed86d4dd02de112845caad4e3','srv-53','node059',21,'cli',NULL,NULL,'2025-01-30 18:54:11.030475733+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2e30:4d2d:4925:201f:e845:2a12:503c:9524]:34552","105.198.43.87:48215","214.199.117.40:30901","58.251.220.64:42364"]','2025-01-29 11:59:27.291048957+01:00','2025-01-30 18:54:11.030888364+01:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36');
INSERT INTO nodes VALUES(60,'mkey:1fde1d60f3aacf01ce0d5faa329ebe3da2465dfc4a568e31648b06b313a690d4','nodekey:e1038e05b45f270e2d47d90898a9f599253421e9046a799d394b623766a81aae','discokey:d5e3dddd1a9422458643058ed2d8fd8e9da0cf3b4378cf4b421672cf1e13d71d','desktop-08','node060',21,'cli',NULL,NULL,'2025-01-30 19:04:25.435259221+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["15.226.94.222:41465","109.183.111.101:20875","[912a:9b6c:5845:f8d4:f476:491f:cdef:8b7d]:21677","22.203.32.217:28664"]','2025-01-29 12:01:57.48748166+01:00','2025-01-30 19:04:25.4358129+01:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37');
INSERT INTO nodes VALUES(61,'mkey:17196701e0a4b870bae52dd1fc0eeb26843f2ceb0745ad263e69ef737d9a5403','nodekey:a8c47bf5faf5110c298862a919bc7308eb616c92c110f7dfd38194a74b3ffe7a','discokey:4dcc87f0698a1e669485874eaacf9438090ac69deb20fb9cc693d7df75b8265f','web-53','node061',21,'cli',NULL,NULL,'2025-01-29 23:58:55.106877823+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[1ad1:4e50:7001:e922:d6b0:2b1e:c718:f3f7]:31291","13.175.9.68:14464","[e9e:965b:7b7a:3219:44cc:f0f3:e3a0:a504]:34840","[2476:14e8:ab74:a221:cfca:bd5e:64aa:83d1]:48008"]','2025-01-29 12:03:01.464646336+01:00','2025-01-29 23:58:55.107564914+01:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38');
INSERT INTO nodes VALUES(62,'mkey:e8ecee3b3c1e75bea1ee3d00a759ab31864c33f6c8df4a15c352d1b420450d88','nodekey:820bacc3e7d49bb90be56bb3297c98aed4c777bc1aed02b3b0b7b4301c8e445f','discokey:d16e93e7d7b6fbc451ec3576211f7c19398ca18f684fa285f5d6bd84be50286c','laptop-57','node062',21,'cli',NULL,NULL,'2025-01-30 17:23:37.246636502+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["69.125.5.213:11546","[68bb:e8d1:72d8:8b02:608b:2284:c9b3:184d]:20876"]','2025-01-29 19:23:14.092804852+01:00','2025-01-30 17:23:37.246792226+01:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39');
INSERT INTO nodes VALUES(63,'mkey:3e0dcb286f6e19b1e3a0b5330978aa8a8d710934cc754e811d0f690046e04469','nodekey:cd2d301b9b163b806fe8d63cdd07004f26559706bf7dc782645f05e12ebe0ec3','discokey:14675666cf2b55697f0032897d1c6742413d7c24bada8cfdc6246bf150d06fc7','db-76','node063',21,'cli',NULL,NULL,'2025-01-30 19:07:01.231463482+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["74.32.222.198:59615","145.91.193.5:37126","[2fb6:ea0a:3639:a1cd:9075:a258:6a79:4f5c]:13944"]','2025-01-29 19:41:40.535299057+01:00','2025-01-30 19:07:01.23207245+01:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a');
INSERT INTO nodes VALUES(64,'mkey:1adfdd6ba590feffc711c40506ed5ecb16609cd6e90a536d50c5f54cec223508','nodekey:0d58cee32d99cde76b3d8769ae4605cb4bfc9cbb01fc13069c8b59faca320e48','discokey:cba00753c508df0b5cdea1e59eaa829c6cfda4f8399121307f931dbaa3730296','desktop-90','node064',21,'cli',NULL,NULL,'2025-01-30 19:04:27.551570027+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["172.210.49.58:58821","[23f9:9c6d:5069:a14f:33d2:c0b1:5ab5:f83b]:46288","[b341:3259:c5dd:9f91:fd70:c616:3033:2b3b]:59081"]','2025-01-30 18:18:57.519126133+01:00','2025-01-30 19:04:27.552291406+01:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b');
INSERT INTO nodes VALUES(65,'mkey:547a8b97c8c8227d9ba40174ce4d28d0e64f10fae3f39797c60e29742ed59e62','nodekey:cb4a9d1dee6f581036b7c262348cf2c4a96be8b2eea78f7805097e3f7b1a9fcf','discokey:c233a42a4afb5fbf921bf7b3fb4330e6c46273d18570aaf6b7254dbf3c67614f','desktop-82','node065',21,'cli',NULL,NULL,'2025-01-30 19:01:43.552616838+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.197.131.68:13997","6.193.99.72:20874","181.248.237.50:21695"]','2025-01-30 18:19:40.354692307+01:00','2025-01-30 19:01:43.553264821+01:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-01-28 15:57:32.774456057+01:00',NULL,'user021','','',NULL,'','');
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,113 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli',NULL,NULL,'2025-01-30 19:50:45.306207411+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376"]','2023-05-17 19:38:13.531518257+02:00','2025-01-30 19:50:45.306340015+01:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:1e274f40556282a5bbab04b6754985233ccdf971b663e5b38fc027035e833e9a','nodekey:5b16c7e14191ca2e57eccd86ec636db605fa5dc2c8856be5fa7f9b087cf24890','discokey:5fd2f116700fd48ce06e35e8dd11c847ccd7694e01ec4b3f6ef25f67c14ee197','email-21','node002',1,'cli',NULL,NULL,'2025-02-05 17:24:25.870524261+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5aae:55d1:7b5d:628d:bc07:b3e0:eca2:836d]:13912","[5583:8a0e:1564:ac5b:98ab:59a3:126:cba2]:35537","84.23.188.83:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680","86.50.30.30:18216"]','2023-05-18 10:09:21.757289398+02:00','2025-02-05 17:24:25.870620505+01:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:4405716e66f6a07a8fea90183cb078a8b87108aef23965b1c65f51375f3882d3','nodekey:96f979ded4cf1a02655d0b9069fb14e04d2da09c182624313acccf8c7f6b67a4','discokey:f0f4a89d7893303e1a336c9838c9a55b36a5215da006fccb72c237a794f4c5ea','email-51','node003',3,'authkey','[]',1,'2025-02-01 06:03:00.282713364+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7cd1:a579:7ddd:ed37:5f70:5783:8e09:1968]:5323","110.83.0.14:9543"]','2023-05-19 07:09:21.399903526+02:00','2025-02-01 06:03:00.284151738+01:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:9cd192ff56bc94ec9439083852bb541469d6725e6cda7a2aa624df6e8c8c380d','nodekey:ac53dbdd1bb1c2a36a1dde021e8f5f33d2cf01ef2892fe74853e945b9a08fda3','discokey:57cae29ceafb73857b478955a77927ff5bd8f38c313a869be093f92c6f6303da','email-15','node004',4,'cli',NULL,NULL,'2025-02-05 18:08:25.40794648+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2421:d8be:14:6b5f:7fe:56a8:54b6:8d58]:25207","[20b0:e4f:96fd:1cf3:5d39:ad75:6b8e:d0ce]:51455"]','2023-06-10 09:31:51.940506933+02:00','2025-02-05 18:08:25.408568806+01:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:7f9c690aab22d9db060086ea375d86924359210816ad562dab2db804ad3434c0','nodekey:88fe0bcd504fd98c35a71484820dbf7b91c1704b9d29c0c7950ce5ab06ef2d17','discokey:fbaef49f1a2c61469168a9e81ee6c5bd49a777048288975a22c0f253aa14e2e3','web-24','node005',4,'cli',NULL,NULL,'2025-02-05 18:06:41.054161543+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["186.84.191.82:2621","[c9d0:4e15:513a:171b:9911:f9a0:cccf:cd83]:24151","66.84.158.199:63451","47.94.115.240:6677","19.74.30.92:1284"]','2023-06-11 13:56:42.694329408+02:00','2025-02-05 18:06:41.054829684+01:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:00e154160e4bd8db73f2707c7a5b2f0bae04f3e26427a1aca5b0dcf2dcc1872f','nodekey:4f61b1414dd622304d407a7b4812640f774247f0c3d369a2292e3f4e88383c17','discokey:1028826beface553dd6ea7e553cc63ca59fd529716cb639981d1aa2965ed8885','laptop-48','node006',4,'cli',NULL,NULL,'2025-02-05 18:07:48.852563038+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["220.204.45.94:59135","187.96.173.136:34092","[fece:76ed:4c23:1e89:f225:97a1:94be:b5c4]:33472","[e1e6:a14:535a:668b:698:f125:543f:b5b7]:31740","[b8e3:18de:5ece:3e24:8bbf:1cbd:d27c:7de]:53522"]','2023-06-11 13:57:44.975695604+02:00','2025-02-05 18:07:48.869613078+01:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:69a5389410061b4c336c1f337ae3ccca903f729ff249b6f1e556dcb9d9a3b7eb','nodekey:54c0d87c263afc07b7a3bb5569f8d6b67c58fecdcabefcbe7b8057e91e573a31','discokey:765930463b973ddead698512fe882cbe5e13885d14d44808596600efbcf5303f','db-22','node007',4,'cli',NULL,NULL,'2025-02-05 18:08:07.927513966+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9b54:61a6:c678:edac:956f:741e:5e2c:9ec9]:17930","[cd3f:af1c:fcb4:bcb3:806e:adf4:3f3f:ab36]:58513","[7a83:6a84:9f15:ba1a:9671:3d54:2e31:d5e9]:64893","167.223.65.194:6907","[debd:ad2f:ae50:cd14:9cd2:b297:bb94:d03c]:24266","[489b:6c59:1877:6215:ddc8:57f8:78dc:321c]:3025"]','2023-06-11 14:16:56.951313537+02:00','2025-02-05 18:08:07.927964234+01:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:3fa0a7da3e9f0eecb11b442d911620b629981f5eb3f4ee851256a55b7252a1e7','nodekey:1912a3b843ba973c55b449fb0e1e01faff114b440e7bd1ca8b9af3be0cc56762','discokey:0d4f62fb22a9ab554a8983123cc118ec17b9d47c97d1d84bf082c90f82fe267b','lt-35','node008',5,'cli',NULL,NULL,'2025-02-05 18:07:59.389906976+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["124.104.237.237:47957","[b9f9:eec0:d656:cd83:8595:46fc:b677:6ade]:17494","126.251.133.86:44347"]','2023-06-11 19:59:30.401970393+02:00','2025-02-05 18:07:59.390393378+01:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:dc84e5b1cf58ec8f7200ec0a655c1d5843c520ea59aa7ddd111ad5c9beba9bd8','nodekey:3c06f5a6d7f267023044ab632892b51f5af1ce4d84f0739e88823bc22cda6c57','discokey:3c1aa008a7811012038cd6658b6f290b3d252074c47d23cf1766f878340a30bf','desktop-75','node009',6,'cli',NULL,NULL,'2025-01-31 13:55:16.93378169+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["187.166.20.165:11208","78.47.168.253:34957"]','2023-06-17 19:40:45.468789461+02:00','2025-01-31 13:55:16.976650183+01:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:2325e928fb41b3a3815b7635223411100ba10eba8ea1b442838b40da35379ec9','nodekey:8654f75dc553fbb381f57fd3f8669b5c2572f65d97989d0a69c3b294bb8cc685','discokey:24037160babf3208537006968c9f47ec3e689b1873796a787eaa44fa95afd986','desktop-46','node010',6,'cli',NULL,NULL,'2025-02-05 15:46:53.720788609+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[97a8:bbb7:9bb9:aa2b:e449:4d57:4a65:3561]:17392","151.97.159.85:8120","[69bc:fe73:f6c7:31b2:bc4f:1a95:4676:201d]:4806","[d794:c918:b0e8:6023:d7cd:709:79eb:23f7]:56801","113.147.88.203:61138"]','2023-06-20 11:18:35.905417341+02:00','2025-02-05 15:46:53.721181098+01:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:4fb69f4bf77b8159e4814764398e6cd3bf2067b3fd4eda0eacc443ec299fcde2','nodekey:cebae8af02150eeb54b67f2cadc33dda38a98c94cfec05c1f378bf130007e946','discokey:fd5c9fefc960538a070c2bddafd53c3f890c561e02b62218e4aa8e6ae38cbe4f','email-12','node011',7,'cli',NULL,NULL,'2025-02-05 15:58:04.837157467+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d86:4301:d7d:7706:8b4a:86bf:19cd:1d6]:55529","151.169.147.218:56573","[9e9e:2802:ebb9:ba03:a564:7999:7137:65e3]:52919","[ede2:462a:f99c:24c3:b1b5:8b97:abe2:3ddb]:65141","[dfe7:6f6b:a382:4fc:a3f6:eb9:9ebc:5798]:1474"]','2023-06-20 11:35:15.063855316+02:00','2025-02-05 15:58:04.83726028+01:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:5e192b1b323439fcc3b921c4f523ce9b7cce867220bd092d23be2451ce93a4a5','nodekey:1452cb2c8f26c8988cd8d8ed42957c78e3ab922bdf9773978c853e4254e23fbb','discokey:b7b41dc5de1fdcc4bd609dc72f79d27269367dbf72ab73ab61e998aa31eac6a2','web-19','node012',5,'cli',NULL,NULL,'2025-02-05 18:07:24.629305293+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["60.5.210.145:1193","[5698:e318:b38c:4331:5152:c2df:743f:8ead]:34839","33.51.84.119:46756"]','2023-06-20 18:22:35.061914624+02:00','2025-02-05 18:07:24.630116588+01:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:f11332335d9f1f9d4bfc8cf9bf4edc0c958d4e4364b7dcde3c67d847f7d05edb','nodekey:e97d97a2751ef3533818907c9f24acf3270e3824f2294bb9a36d60ca196e161e','discokey:412b0eee00b68721d9169fc81039b9cda6cf57143e4cae8f7c417db15b83411a','web-18','node018',9,'cli',NULL,NULL,'2025-02-05 10:23:02.664643604+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2acf:3f32:1763:5d21:88a:4af:8779:1b1d]:36283","84.177.251.38:32968","[3138:83c6:ae09:a073:7888:71e0:494:3863]:59700","191.156.96.176:5489"]','2023-06-22 08:30:54.08720463+02:00','2025-02-05 10:23:02.664955259+01:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(19,'mkey:157706346bfe3502b6e24a84efa59b1a151be08f5a260ff96c72a734c1da1390','nodekey:139a99de286f52c55bdd61e932827c9d7cb84101a698df3576bdffbeedbf654d','discokey:293abc1a1cf2921e7961f5753cc39097956648bab47879791afb12ea03a4e6dd','lt-42','node019',10,'cli','null',NULL,'2024-08-07 09:35:12.220368767+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ce0f:9f05:96dc:a47d:edcd:1c25:f578:7551]:30363","[cc06:9c56:919a:2341:4ef7:7f28:c8ca:2a5c]:30788"]','2023-07-03 15:18:03.829428454+02:00','2024-09-18 16:15:14.037990869+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(20,'mkey:e4713082f1a4d5e2f5ca126b95eedc7ce673782a871afde980a74aa98e31273a','nodekey:3957decaff55af98415799c81e6cec28edc377d6e2a9ddca3c909c26bcffd45b','discokey:9e8360b263f67dc8d5dea9d37f023ebbbb8882f265f6ca43f5923194d7931609','db-08','node020',11,'cli',NULL,NULL,'2025-02-05 08:11:36.462419884+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4692:f8a0:842b:c26a:e549:1f3b:6795:964e]:31064","207.187.74.99:12216","63.3.67.150:22907","[77ac:562:7c4c:438a:6ec:be48:743d:47b1]:11349","[33cd:731c:f110:9b45:66b5:de81:1daa:757f]:5997"]','2023-07-10 12:40:34.838579199+02:00','2025-02-05 08:11:36.462522474+01:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:2894a7babdc030bac1e4ec0e14aa4b6b67ebe382a1773e0ff4aa8b16ecd443a3','nodekey:1e219f3cc03eaa868018b9f6870d108317c31760fdc38ad4bec7200d58379f26','discokey:a81e998383baa23adb3e1e6757ef0c4b960095022f00b500b57f53c6147c71e4','laptop-48','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[736d:a0a:e343:6b2c:b48b:7510:ace2:edc]:60377","82.193.154.129:23713","[68:80fa:7b30:3a0:d1fb:3e89:2c73:256b]:30308","[ad42:3917:5edb:3e85:732:1c71:a19e:9fe0]:11799"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:9ab69494a274cba5b22cbcf35b3ada57d4b3d2ee03930a456f80fb34dc69064b','nodekey:0345912b4e39cd9d03dec55edec6fba7f8aca631312884b49538550475332182','discokey:a2c1be2ae50af07e5b96b0a3ee2d3a1b0148fbfc5c1a283bc787e31410d6f74c','web-51','node022',6,'cli',NULL,NULL,'2025-01-31 13:55:08.655562681+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["9.237.225.227:64622","[46a1:e1e6:6b82:6599:acc7:2273:afea:f09f]:38018","93.129.193.97:13477","184.41.32.72:1026"]','2023-08-05 12:08:48.132161695+02:00','2025-01-31 13:55:08.655891626+01:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:d1b90c1c72090d082067c2dfbf287f26510b58519bbc5113f1ca63ad3ef20b96','nodekey:2d0d6f2300d295c8f91d0b954d733a2f8c4106595070d3efc6eb709df09591f6','discokey:87ef4543866a337716d7d5021346b82bbbd1aab14c36deadf96b4c38718e8cd1','srv-45','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[79e6:8519:803b:6054:5c13:9069:8dfa:1dcd]:45055","30.154.162.65:53795","21.107.170.69:30767","212.18.227.41:50735","[f774:e89b:980f:975d:fd3e:93f:a9b5:2034]:46054"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:f10b7f9f385e48dc99ec0944b8a04ec4d3e5613587419c134440121fa747ee75','nodekey:9559349d25dd3fa88b9595cb4ccebeeb4712338757a209e936afe37ec2643dbc','discokey:b9a07315c1eb2e074871feebe899bd2ecae64d98a8edf08883785130ef386728','laptop-25','node024',12,'cli',NULL,NULL,'2025-02-04 22:10:50.44476731+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9e60:1bb7:b542:2f50:269f:5ef:72b6:f4ba]:34677","159.52.2.200:7205","[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597","[320d:6314:eaa2:a098:8594:977d:27b:8442]:12827"]','2023-12-15 11:14:36.765183054+01:00','2025-02-04 22:10:50.444923245+01:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:84784f348b4e879e87986ef13b6f02ddef91639cd7de65540903cd846f93e1f2','nodekey:c15dc98ef47cf6f5dd52f59c22b3b6b0d8536ea5d248787a0145b45e6598cff6','discokey:c14e1be497f1423b4f4aa799f8ee907307eec987a1c3f7e32d4adf215fa731c6','srv-70','node025',6,'cli',NULL,NULL,'2025-02-05 18:05:52.512447937+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[23d7:1ab8:8bd1:10f3:a4f7:bd70:7803:773d]:50718","[3200:76c9:dca8:d60:e5d6:868e:a264:3efa]:33138","[975a:978:5cfb:5e5a:1b6:d272:a1c1:50dd]:3245","[e6e4:7cfc:9ce:b47:62f5:b64e:d2e4:9015]:42369"]','2024-01-05 17:32:40.940566279+01:00','2025-02-05 18:05:52.557755672+01:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:dba47da985e4770a27031261b989e24ddd437983652bd1f96cc520ed78c5fc0c','nodekey:3c36d35f3e9ec98b36741e5973d8f5542fd82503a1752ad9e20545fb6be984bc','discokey:b30567e26d2fae861e566c4081179d8c72f9e659521dd7e6afecb3fbaaeae63a','db-02','node026',6,'cli',NULL,NULL,'2025-02-05 18:04:25.764764072+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["192.175.239.121:921","98.153.121.140:5003","208.68.161.128:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245","32.31.195.128:7039","[c50a:ec:e2e:e109:3a08:f56b:2928:4921]:61265","221.147.144.138:44737","136.208.142.64:41091"]','2024-01-05 17:34:19.811670479+01:00','2025-02-05 18:04:25.765166307+01:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:73868242348c7d709b77f52963c32eb4b95c8b6f89abb5db76bd95cdaaa538b7','nodekey:2de3f421f78de3f5cfd824ffaa80cf3fde3060bc42f51c2ee2f55b49fd5fbe20','discokey:5ff3b0ad430ee5530c972ecf0d3e69f25eecdadf6ef8a309b3841d7aaa6f70d4','web-56','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a2b8:ea55:f9e3:2c00:f423:8c56:7fec:c617]:53793","[ed88:2277:3c9a:4f64:a25e:5b41:a3ca:e904]:27852","[d203:40a2:5efc:4a42:8910:81f8:59c6:4d8d]:23389","187.126.162.12:25054","[5d8b:9391:47f1:1bbc:e01:92de:4a90:7614]:42410","172.81.188.131:23453"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:300a566a21fcaab2665dc091300e2c5110dcaee25e2fcc4cc23b011fdae471e6','nodekey:8e36531b406e0b7b9c1b9abadc00626ccc8c6e7a0c37f70f42ccf06cd2dd03fa','discokey:a4134738054f6fc0c57b6eb47913e68a3f47ffb81af8a3496754921c2fcb02f8','laptop-98','node028',7,'cli',NULL,NULL,'2025-02-05 17:14:09.968775535+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["113.143.9.36:55432","[e266:66fe:4929:3831:7830:6f10:1572:20df]:9977","[afe5:7d57:fac5:a1c5:78d4:ee33:d474:1e56]:52223","7.208.95.117:299"]','2024-01-15 09:34:54.847632697+01:00','2025-02-05 17:14:09.968981413+01:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:6d3edcfd40971c25174fa55eeddf76d05447d7d28f216c6118d8d6e35aa1ae89','nodekey:4b7d7ef564535f114a410c384aa3eb95103b5895cfd74962c7d37d3a8b0bb6ed','discokey:569e08cefcaec4d1312b70c41c12d82b26712965cbab41ac3ca5db857274ba46','web-76','node029',7,'cli',NULL,NULL,'2025-02-05 16:04:20.309612735+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[24c5:f1ec:38a5:5a2d:7224:b76b:cd04:e6d2]:63943","162.176.178.140:46577","[4f52:1708:c0a:7991:9c16:bd7d:4045:195d]:50362","[fd0d:f112:f642:c343:ac14:8ede:dc04:e2d9]:58412"]','2024-01-15 15:18:12.2871978+01:00','2025-02-05 16:04:20.309824144+01:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:edae4836dee6e165a4201e0d106fe5db539aaefd4fa95e6f660cb16457bab645','nodekey:59e8b5e492cdce7b05498db07e621fd6f326f8a6141751bfda409b2e1e5e56de','discokey:bb6fff0c0615c5aeb083d7175b6838f6c2cd22634ff3717cd227063709e243c6','laptop-44','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c204:d59b:29a8:ac18:75bc:1a4a:755e:a8f2]:26579","35.41.214.64:38835","143.202.189.84:43171","[8679:8c46:1c66:cd1e:95f8:2b0a:503c:819b]:57389","107.115.138.42:41616"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:fbebb2c69f263a519c8902463ef9c7db0597109fae5730a222f1c6567278bc86','nodekey:d83666c0acac1a9cd306cb884a1ce24adaabbc2102eb553ef5514ac5ea1714cf','discokey:6f4280bcb38ac995d22543db32230d8f22f2c0a0dc5efe2d86c7361c897ae812','lt-82','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4327:29dd:a02:fb00:9645:d497:8ffc:4a68]:26342","[5d4a:a2f2:16c7:3d3a:a2b8:2962:30f9:3407]:5279","107.140.203.49:9365","[1660:741a:160:67c9:7972:5f9d:14bd:ee53]:21178"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:8c468799222af319e17ec309dbbf3a87fb6d924a1cb17e5a0bd7e027fe3bfe5e','nodekey:3c7d82f4a44cfa1469b957ac911e8506a68962fb2583d2afaf3e8a621c0c4aca','discokey:ba179b51f3540e619eaac9a6d4bc67403daa7c3cf28a6b579087cd6d284501b4','lt-53','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d21f:d7bc:f690:e3ba:82fe:8122:c33d:5a86]:227","10.67.113.92:45634"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:be7f190677fd0cd1c5e78b4ae5b02a1738dd60be7d9a41017000b22ae9636af4','nodekey:a404e578d3edd3e3d879e9f1946c859b5982c59f5e528bf6b987bd55de00b25b','discokey:ad3013f116c370866fc9134b66999bb05e2dc10a8e2944230c3d9893c0a94c67','lt-80','node033',13,'cli',NULL,NULL,'2025-02-03 21:25:19.620235627+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624","71.151.27.31:51063","[f0d6:21dc:48f5:63f4:daff:a3c4:7d60:51ea]:17286","[38c5:9551:f6ed:b087:91ba:bef1:771c:273d]:62171"]','2024-02-03 16:33:26.706408143+01:00','2025-02-03 21:25:19.6205373+01:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:7784df3aabe1ca1edab5270028fb3cae8b66cee2384790d06969d1e6e298520f','nodekey:fd8e939fd6db8caf6623ac3d73c12ade4da110d8c1f29e3a3ee0d2be0c526915','discokey:59aff4582e00d92260e6a90d6d0da3d818fe8f52c081c8b65e18006ef8269ebe','lt-65','node034',13,'cli',NULL,NULL,'2025-02-05 17:49:20.10044606+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["71.155.69.236:8707","125.2.67.155:50785","32.6.80.181:17295"]','2024-02-03 16:42:32.683785672+01:00','2025-02-05 17:49:20.100741067+01:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:ad3838fa63fb120ae8d3e47d4bb6bb4009e7fc5d91483d1ba7417d0681fd7162','nodekey:b10ddbdcf826d79049d74a7d4ad036b499c86f7daf786bb1a9b295366b57afe8','discokey:618ef629d3bd261964c613ad3bc45e6278fa274d734c8cd2d3396cf8c9742d88','web-33','node035',5,'cli',NULL,NULL,'2025-02-04 17:50:49.267594119+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["169.159.71.157:18240","[bbb7:5b4d:218d:55ff:ac9b:1fb6:c933:9a55]:63943","18.156.132.228:63356"]','2024-02-03 16:51:52.010016072+01:00','2025-02-04 17:50:49.26844864+01:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:c536a3efc460fb2da4c4775e2b51d0c84f001dc46a4d902429e74e97b2d3c6d4','nodekey:91da2acfa3d7f7c7b0c1a2d952ee527514504fddc504809423762203a16145ab','discokey:989ff5f21d485dcb6312fade38c9047bbde1fbce46bc29ac5f6afe00610ad215','laptop-46','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4017:a243:61d0:b302:7860:18f:7d4d:f605]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121","38.137.88.247:35801","[eec2:61c0:e20a:2fa0:5e4d:56a4:5071:881b]:36628","[b8c2:c792:3329:2c93:f94b:a948:7d11:b9f2]:908","[5925:353c:bd9a:f42e:1916:45b4:c170:e515]:18400","[c2a5:cc2f:e2e8:573f:7b01:4aa:8a1a:fd71]:32146"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:142e67963c9045164df7b33af6d2149d72f59527df44fd75221647281444cbe7','nodekey:a3a2cd2bd0c3a1f783d0391ea1951c5c9226ddca0f18130b77fccff8b874d694','discokey:bdb788f8825b9bd816f37dcea882920382c7feb143edf0a6baefc9015774d8aa','lt-24','node037',5,'cli',NULL,NULL,'2025-02-05 18:06:12.650485457+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c31d:dd18:321:589:11fa:d85b:695f:1fca]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846","8.137.133.59:22781","[cb5c:f8d4:ccb0:8333:8ec:170c:a2b0:941d]:26248","[5802:df5c:8853:4851:6dcf:cb83:8208:d143]:24568","48.38.104.41:43702","139.100.200.227:62546"]','2024-02-27 12:14:40.452601042+01:00','2025-02-05 18:06:12.651261596+01:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:6829f2d5523aba7a27c31e59e2341f3feb5a5a72a0268ef10d23c39811ea3b53','nodekey:10e4ff66fdd37fb54f6dcb0e42f483a15b6340610acc3a4517c24f0f350b5a9a','discokey:f20786f9c7edc967d0b415bbcce39468441af3b531ff15656c0683d3f328720a','lt-88','node038',6,'cli',NULL,NULL,'2025-02-05 16:57:29.735032128+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a393:f17f:6728:82e4:c1e7:2367:82d0:daaf]:18560","[d192:9897:4cd7:bfb5:de36:fc03:8cf4:c60d]:25096","212.199.67.213:11150","64.251.26.199:56246"]','2024-05-22 08:08:16.045350656+02:00','2025-02-05 16:57:29.735397461+01:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:374ff35e7639239dbd6f70c03d04025febb0a7050cfa9d065dfb17233d200b06','nodekey:46ee597a17ca7641b7e450e55eefbfe243413ca76dc9c8e1f9d5df6e00e5abb6','discokey:f258814fe446b9599b1e601a6d51f85ba03cb6ee8154c64c5df9c7101cd34291','db-40','node042',14,'cli',NULL,NULL,'2025-02-05 06:03:02.17883855+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["109.16.250.249:16050","[5ea4:3410:eaa2:9da:b8d:b61a:2d9d:edaa]:3526","209.107.206.184:46974"]','2024-07-03 11:12:29.418355657+02:00','2025-02-05 06:03:02.372767209+01:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:1099debb0ba187ef1f43f001c75abc118eaf017bf3bd6b48ca333fb046b98de9','nodekey:d49ef9ad4a7ecbdabcd24cae92d9ac32fbb765467cbc20abe61b4bda6ef15f1f','discokey:9f2faf39514eccb7f3d7d66ebcaf804474f75284d8b1aedbf97aee6ccdf47ed5','laptop-84','node043',14,'cli',NULL,NULL,'2025-02-05 06:03:09.741784038+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274","[e5df:1889:6ac5:7d21:4dfd:614b:7eb9:d93c]:792","119.123.40.237:58615"]','2024-07-03 14:48:50.263910778+02:00','2025-02-05 06:03:09.743853396+01:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:bbcd4d386de509eaa162b9e6b7ecb5896bd2af74d6dade72463343b98ecba03e','nodekey:9b6dc646c9a4595a7e073a409a79d76b2624d3516d42eb36a5a2d34f5f8fdb69','discokey:109a9fae4a89679b17a8604d4dc8a07c172187683402c999927585ea28a40f4d','web-17','node044',14,'cli',NULL,NULL,'2025-02-05 06:03:08.642240566+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[797c:753d:f8fb:3108:8b9a:2bca:65a2:459d]:6713","[699e:74ba:cb1c:93f0:cad7:784f:b43:a4b7]:19825","[acd8:3779:7b6c:3a71:c15a:e323:a721:c9a7]:63377","[6816:3377:edb0:3f8e:a65b:bd60:461b:ceb]:24642"]','2024-07-03 15:23:48.066044194+02:00','2025-02-05 06:03:08.823204997+01:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:f8ddd3a46ff292d9d1c00ad78526306ae1182b38e7cfdef477c4024297683495','nodekey:37bd7c1295c38de87a979ade273598b47023217e57ce45af4b02429bcab81db4','discokey:9b89e8e84da2d01590108b6f83f4f0479abcdfac8791b5da44dd2543299de31b','desktop-11','node045',14,'cli',NULL,NULL,'2025-02-05 06:03:08.197696258+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["120.102.247.255:41936","28.177.95.32:7841","[fb23:5998:c63d:b6c4:e86a:96b2:61c:e110]:51902","[89d4:f6c6:ccf6:b19d:3b76:642e:7a36:d229]:930"]','2024-07-03 15:54:01.706018896+02:00','2025-02-05 06:03:08.241135037+01:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:af6c1d228b675ff04d2584e2c23d6288ec312a6b44c5c0eed213423a11711787','nodekey:f5b21f25bb22b5cf0cedb1b643d50c3a6512ef300cc971eccccbcc500cc23408','discokey:72843a1b2564c177d8556eb0d76dda7cbe0d9f1408bd250fcc6149518eb6d5c0','desktop-41','node046',14,'cli',NULL,NULL,'2025-02-05 06:02:55.262487942+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[37a8:9998:e94e:e297:940e:5414:5549:87c7]:37130","27.138.122.133:37304"]','2024-07-03 19:38:07.783745318+02:00','2025-02-05 06:02:55.262915688+01:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:c3ea2fb606807d06b1ed3e10219fee70456d1db0208d2e73a081a258992e4316','nodekey:a246b6e4b6a19ab09836e54c6fe7d5da442c2f9097ec6eea01490500872805c6','discokey:e16c22490ad1b9cbbafc0dbb4d4596f19593bf528d69bba3bb37e643aa82023b','email-63','node047',14,'cli',NULL,NULL,'2025-02-05 06:03:02.549111852+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["140.167.197.208:6850","[b895:b3f0:c9b8:845d:3f3a:e534:53b0:bf90]:2433"]','2024-07-04 10:38:08.344092869+02:00','2025-02-05 06:03:02.55637113+01:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:8fede09a569258fc0fd7ebfbd12b2b4e8c2f4ce95c43ab0d89e41ab3998e6d24','nodekey:63af6498d4fb0e1e8312e3ec6a1639b178c051a271f33f213324e3ac1af53e17','discokey:a1e793aa09c20360cb4ef57e7dc42171a0abbc9f562140609e930ba5b7b12e83','email-92','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[33c0:859c:4a78:8bdb:359e:31e4:1e71:7e39]:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486","22.83.180.41:14147","26.126.135.206:7777","[8706:d109:5006:f832:dca7:58e4:4451:be15]:15180","177.4.27.29:60895"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:13b8d4cafbdb8e9ab77928219aa57bf778878866ad8e6108b60aaab8dc8cec36','nodekey:17cefd68f8a9cc20b3d4fd93598f77ddfd6bd5a7e6e4b49861f9faad8623e0ef','discokey:939a04ddd2f9a24468e07ee7924dbb7a7662c1e8a1b67426f57fd48c7394448b','desktop-40','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438","129.0.5.112:19015","[91e2:54c6:93fb:ec32:6ab4:186d:81cb:b815]:37323"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:03979d5446bb3f596bf0234d81ca84482eacb132e874ceda6cc2703422cd728c','nodekey:805c03cada525f14ee90d28ea02b23a3f57b470c793314872ad9daacf6c6484e','discokey:eb4135e1cc73a3c6b513d8cc04ca0c55a2aef7b0009845fa1d2036488aadf0f8','desktop-02','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9175:498d:64ac:4342:2eac:ffa1:99fd:d109]:21202","[5cba:56ef:db08:320c:333a:541f:605c:44d5]:57469","150.211.2.236:50360","203.180.122.83:13344","63.162.234.32:11653","[6b63:f552:f930:e22c:fc42:3b41:c5c6:6d5f]:63162","114.48.12.185:47837","[2964:cc5d:3a1b:7889:acc8:4d8:22c1:398a]:43515"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:5877139c52c0bf3c0fd054bd046aaf4530dd8946548a7bc1a06733649d1557d8','nodekey:553d9638c8c455e8d1bc811ea3af03db1eb3c586413447c8003e7d905a61d06c','discokey:1da883c9eff402d786362aaac2f478c835308b3acec0993e6293becf4474609f','web-62','node051',14,'cli',NULL,NULL,'2025-02-05 06:02:31.63336842+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["86.215.174.228:26026","93.101.159.155:64005"]','2024-08-07 14:19:31.156780417+02:00','2025-02-05 06:02:31.633461601+01:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:0e64072dafa5f9e49266b41fc4b21ff7d287be8f4e5f2b6c395487d632f1cf3f','nodekey:2f77bb8cbeb426bcded5ad9fc6da44b0b76b8d6759f10a8db28e634290760ee7','discokey:836558738056edd1fa8d190c7e42f120b365a48a3b1f1c96c87755bb82d7ad0f','desktop-07','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d889:f751:710:257f:977f:5597:9908:14e0]:61162","[f83a:5ebb:911d:ef36:743c:8086:8a4c:a5c7]:23538","[dc45:365c:e426:71d7:fe23:fdd4:d2c2:9409]:57262"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:a6f93e99a5019b3b6a2941d95dc7fcbfea5a59317a48b99db93b7a3f4f0a65bb','nodekey:1f78a6d76ea4a2135c0da46b202560c86ed30cd7e8239d4508088d0e02ffb961','discokey:1744062452f052aba5320e37fc08aaa37f1430db7c32c94c5626f0f3c858de3d','desktop-82','node053',17,'cli',NULL,NULL,'2025-02-05 18:04:29.018269861+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694"]','2024-10-28 10:04:50.084492941+01:00','2025-02-05 18:04:29.01861254+01:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:7ad9c5af6111cc3286256127e6b6a939f1fb87e08c9018bd7bd8671c4b9cefc2','nodekey:84fec35781c2032d05c7e8524bada9f7242165e9ab5df5d66f993266cc6f090d','discokey:ad9158862b9c58848c37b519543415166938b6be3dfe3a8463842ebbd09eb00e','srv-14','node054',14,'cli',NULL,NULL,'2025-02-05 06:03:07.205609421+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e669:9684:b8bf:9a64:8ec7:bec:6369:4412]:16090","23.0.29.75:24889"]','2024-12-09 17:10:55.363593066+01:00','2025-02-05 06:03:07.20590574+01:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:ae8c967065558f9f03a95979d2181b3aa2b3537c25a894046a65554beaf553e7','nodekey:bc9cbaeb5cd70e708b5a23565ffb1fb6e1c18f35b1861083196209dcc1e0e20c','discokey:f8647d1a8ab876931f49a8abf785d429f7f21bd1fe6317528bfbf78e38d7aafe','db-73','node055',18,'cli',NULL,NULL,'2025-02-01 12:07:16.769615426+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[caa3:7372:5199:2416:357:7b48:3127:85f1]:21026","[e2a5:db96:e7e3:6335:8bdc:90b4:40ff:920d]:28128"]','2024-12-10 13:56:39.287449662+01:00','2025-02-01 12:07:16.770515926+01:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:b3558cd3cf69119c2015a9cb0a87678b00231eb52b4a2b9ad93b92d7019c54da','nodekey:08f90ff45aa02d7e6b1c8bdca99e8560b70ffc7e3baafeffc3fee5477696602c','discokey:48a4765cbbf46b7f990fe03b6ceb2aefbd78dc18c462935109c51e2a3ba309a9','lt-51','node056',19,'cli',NULL,NULL,'2025-02-05 18:07:11.261451892+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f0ea:121a:661e:b1e0:52ec:5313:f630:8bb5]:55696","[bfb6:c553:e032:b418:f3c9:c0cd:9e44:f135]:60965"]','2024-12-17 14:58:39.429211911+01:00','2025-02-05 18:07:11.274103693+01:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:5bb86c2f730c0b247b01634f73a4f67a19bf271de3ee39cf13f879db671da5b1','nodekey:64f016a04093cc91f7d2ca3639a07a17ae8f95f246a7ad759141d598136bd060','discokey:066b4845ec135e6251d6ef6119c832b46e2bc310332d3ea836c5f39896538b38','lt-49','node057',20,'cli',NULL,NULL,'2025-02-05 14:17:30.564397966+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["128.102.246.147:15968","[d0d3:beb7:361b:71d1:af88:4105:6b5f:343e]:14598","155.200.222.111:64410","[b554:3604:41e8:60a4:229:a09c:efd3:c73e]:39533","44.230.54.249:64083","29.229.203.183:13","153.68.228.171:36559"]','2024-12-17 15:17:14.26936913+01:00','2025-02-05 14:17:30.564974331+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:557cba9878553b95245e4880d662200c70ab60ec53f2a47a48a71b5a3455bf39','nodekey:cf788f8a13f031bb446fc3f12a0120a4b0b89d8918d0ccd7a1b089c600e75b65','discokey:2ca62c3163c1aa5ef0585d1fe67ead83578f835a9ccbc86f64fc13102df0b4c5','db-41','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["29.219.180.224:55412","[2ddd:7c1b:a237:41c8:3baf:e9cc:1f31:9057]:62916","[9c34:190d:7bf0:c940:18d6:f96c:9aca:8c0a]:8787"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
INSERT INTO nodes VALUES(59,'mkey:63163f3f5e4b511affa1046328d92add5e5c1e8f883bc851f6853517acc11e8f','nodekey:71f9f812a4b177da766a6a93ada6de6bf41a7f143e4c1c5073704c1938b53931','discokey:93079aca00038320a7f125193e7e2b4658efd88ce24d04ba15a3da1491b8d71d','srv-82','node059',21,'cli',NULL,NULL,'2025-02-04 15:03:47.081255506+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[82b6:6c3:f2d4:e056:dc1f:57e4:7842:53ba]:4136","55.12.42.230:527","[406e:9d3a:4fca:33e7:176:4fca:4450:3e0c]:21548","[536b:bf65:da86:c7ca:ecc4:c84a:1811:334e]:24087"]','2025-01-29 11:59:27.291048957+01:00','2025-02-04 15:03:47.081635111+01:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36');
INSERT INTO nodes VALUES(60,'mkey:552ca0e4c611df54a38bd150d7f6c4ef77c66625435073b3751718e44884b92a','nodekey:7b4b25d90935b79af2efc7f0499d3f16a49d5078997314de57b65fb5ce01cf1c','discokey:2118ebb5a0b1c12de379802db2b247fcbf516de56216c4d0ee7a0489dde05071','laptop-14','node060',21,'cli',NULL,NULL,'2025-02-05 00:58:59.940225737+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["67.131.191.86:14533","45.142.234.80:30901","58.251.220.64:42364","[d9a7:5288:3427:e52b:4eb5:794f:11d2:5d6b]:33898"]','2025-01-29 12:01:57.48748166+01:00','2025-02-05 00:58:59.940897467+01:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37');
INSERT INTO nodes VALUES(61,'mkey:f5eaa64ce3d0dbd7539fd9c3f9a494688a4a64b9a3d1fc0b9f40dedc14192ba8','nodekey:ccd6aadf68fdcc95d0d15f6654a0c6bfd5ebbf282491539ee63e5b0848de9ef5','discokey:a492c6d1d0b9de44f6adcf7ac919d49c269058d301b4be21fbb5bf4203b2fa8b','db-97','node061',21,'cli',NULL,NULL,'2025-01-31 13:55:16.761715226+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d002:74d:2b8b:87bb:25cf:5512:50fc:e379]:46829","206.194.47.198:21677","22.203.32.217:28664","112.239.138.73:43954"]','2025-01-29 12:03:01.464646336+01:00','2025-01-31 13:55:16.762309571+01:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38');
INSERT INTO nodes VALUES(62,'mkey:4cbd491b0977f3a8cc92ef9f20a7726b3984f3c0699429ae46a0bceec5febee4','nodekey:66a7e77700fb0f4bae5b282413bdb5ff7c375549dd85c4300c73ff3d8029b4a4','discokey:2e9034fc43993eaa0cf2bc21118d378bb02afb3d197a33cf9f0dd201d176b23c','web-06','node062',21,'cli',NULL,NULL,'2025-02-04 18:18:13.742833978+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["81.51.60.60:63220","12.64.198.119:51541"]','2025-01-29 19:23:14.092804852+01:00','2025-02-04 18:18:13.743206432+01:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39');
INSERT INTO nodes VALUES(63,'mkey:4f53e8f17a458333f6c3baa9c54246a6bdf6b9b431fda11cb4982aaec8da44e3','nodekey:cfa7416a7c22869f6875a73cb68c5e71afa3efdba93aa52d97d0d5ba546a3e43','discokey:66b691bca43b231ad1ebfed80944bb4a78150b16e99a6bab48c530ad2573556c','desktop-44','node063',21,'cli',NULL,NULL,'2025-02-05 18:07:10.372444037+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[62ed:996a:ea86:6865:c4ee:753b:e387:5fee]:19029","105.95.65.117:11546","[68bb:e8d1:72d8:8b02:608b:2284:c9b3:184d]:20876"]','2025-01-29 19:41:40.535299057+01:00','2025-02-05 18:07:10.372725767+01:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a');
INSERT INTO nodes VALUES(64,'mkey:3e0dcb286f6e19b1e3a0b5330978aa8a8d710934cc754e811d0f690046e04469','nodekey:cd2d301b9b163b806fe8d63cdd07004f26559706bf7dc782645f05e12ebe0ec3','discokey:14675666cf2b55697f0032897d1c6742413d7c24bada8cfdc6246bf150d06fc7','db-76','node064',21,'cli',NULL,NULL,'2025-02-05 18:06:48.587173709+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["74.32.222.198:59615","145.91.193.5:37126","[2fb6:ea0a:3639:a1cd:9075:a258:6a79:4f5c]:13944"]','2025-01-30 18:18:57.519126133+01:00','2025-02-05 18:06:48.587847966+01:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b');
INSERT INTO nodes VALUES(65,'mkey:1adfdd6ba590feffc711c40506ed5ecb16609cd6e90a536d50c5f54cec223508','nodekey:0d58cee32d99cde76b3d8769ae4605cb4bfc9cbb01fc13069c8b59faca320e48','discokey:cba00753c508df0b5cdea1e59eaa829c6cfda4f8399121307f931dbaa3730296','desktop-90','node065',21,'cli',NULL,NULL,'2025-02-05 18:05:58.789731794+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["172.210.49.58:58821","[23f9:9c6d:5069:a14f:33d2:c0b1:5ab5:f83b]:46288","[b341:3259:c5dd:9f91:fd70:c616:3033:2b3b]:59081"]','2025-01-30 18:19:40.354692307+01:00','2025-02-05 18:05:58.790429401+01:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c');
INSERT INTO nodes VALUES(66,'mkey:547a8b97c8c8227d9ba40174ce4d28d0e64f10fae3f39797c60e29742ed59e62','nodekey:cb4a9d1dee6f581036b7c262348cf2c4a96be8b2eea78f7805097e3f7b1a9fcf','discokey:c233a42a4afb5fbf921bf7b3fb4330e6c46273d18570aaf6b7254dbf3c67614f','desktop-82','node066',21,'cli',NULL,NULL,'2025-02-05 18:06:09.975856526+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.197.131.68:13997","6.193.99.72:20874","181.248.237.50:21695"]','2025-01-31 12:05:28.65297301+01:00','2025-02-05 18:06:09.976571645+01:00',NULL,'100.64.0.61','fd7a:115c:a1e0::3d');
INSERT INTO nodes VALUES(67,'mkey:a8c1493c4f14cc5f41d2a37ee172d4871795f15df1d694e3e60cb00e85753133','nodekey:330d0406c86db5dad6e8c8f3aeea4a9d2e400f5979148c8dc0362c99a732359a','discokey:48d90798a39a3f18baf394f4c5470f6130e4e71b9b3537ab794729a69cb39fed','email-36','node067',21,'cli',NULL,NULL,'2025-02-05 18:07:12.217604914+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f54c:f310:c771:8240:30ba:d473:9e15:10c7]:14619","[b271:6307:9d44:59d0:49bd:4f2e:f1:367c]:65399","140.8.191.17:10998"]','2025-01-31 12:06:30.121464114+01:00','2025-02-05 18:07:12.218026563+01:00',NULL,'100.64.0.62','fd7a:115c:a1e0::3e');
INSERT INTO nodes VALUES(68,'mkey:45e8c4a1edae8a0cdcabff6034ce05d4a52d3409257ab29296f6cf3a264e83c8','nodekey:b3059cba99de1e33977250c037645ba9d16cd632437994b34684b0907fe3ceac','discokey:3c55aa60782b081dc35d241058173ee1b33b787c275cece979f7e42a5b18342f','email-71','node068',22,'cli',NULL,NULL,'2025-02-05 17:22:26.298576706+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5162:12d4:c733:e842:4621:e95e:6576:9cce]:59605","207.56.208.145:2966"]','2025-02-03 14:16:55.56431345+01:00','2025-02-05 17:22:26.298939503+01:00',NULL,'100.64.0.51','fd7a:115c:a1e0::33');
INSERT INTO nodes VALUES(69,'mkey:bac278a5ad2db26a926acc26fd63948ba6bd59f251f7cb63189686ce6ab708a1','nodekey:24a9b3c24f38b690ca357a9659d7694a2a4fc85da77fb1412eae653c644b3bd2','discokey:1146959bad3ded51876532d5bd19cb803a242cd31ec4139dbcff8253c0ad3688','desktop-73','node069',22,'cli',NULL,NULL,'2025-02-05 18:04:17.831085877+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["54.50.198.66:11070","29.172.28.99:15557"]','2025-02-03 15:23:16.312084161+01:00','2025-02-05 18:04:17.83122503+01:00',NULL,'100.64.0.52','fd7a:115c:a1e0::34');
INSERT INTO nodes VALUES(70,'mkey:70c4138967c4f507d775370eb51027481476532f60551ad6a15d7d7f409bed0e','nodekey:f7a1ee8db2e3b1d46d312fa05852ca855dc4fb1c08c661f9d6ae72cf158312c4','discokey:2ef78cf519914d9d37837930ec28165ac6ed347ea0704dc38143c6763d5e0da9','web-04','node070',21,'cli',NULL,NULL,'2025-02-05 18:07:47.934048862+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["74.194.16.233:59572","182.2.129.47:16383","[b20b:7689:a05d:fa7b:596f:af42:cc23:5379]:28028"]','2025-02-03 18:09:35.161109801+01:00','2025-02-05 18:07:47.989204771+01:00',NULL,'100.64.0.53','fd7a:115c:a1e0::35');
INSERT INTO nodes VALUES(71,'mkey:e50a34b03da2a75cc4317bd6499e8d3acc04c79a7fed05b4fc0fd9f4d039c457','nodekey:d0a2d496173e1283a1bedfb91ed66eb6c329939cdd49186fff95dbbd8793d453','discokey:e5263b334eadce0e0ec392ada8e3c2e9365c3d84c2b66e12159298a3ac1bdec9','laptop-52','node071',21,'cli',NULL,NULL,'2025-02-05 14:26:52.974125098+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a9c8:980f:e64c:96b3:b612:ecf5:c8c9:44cd]:35202","52.120.18.3:13372"]','2025-02-04 12:03:50.32663805+01:00','2025-02-05 14:26:52.974521366+01:00',NULL,'100.64.0.63','fd7a:115c:a1e0::3f');
INSERT INTO nodes VALUES(72,'mkey:4c796b98359112a863206aac0c0227cb52ff020ab4ae85f4bfe0a6d607605b48','nodekey:e7e7abfb764bef835912f27af2c65edb3c5d01f2d2ac01943b3a6f5e67cd0c6a','discokey:7890936e6fadf5482ac24097a8c38c09b767fd9bfc2e83c05501524120f869a1','email-48','node072',21,'cli',NULL,NULL,'2025-02-05 17:10:05.65587839+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["126.19.171.233:19526","[91e1:a8d7:5c43:b695:4f5:b147:b5f7:9f75]:62218"]','2025-02-04 12:07:36.231437299+01:00','2025-02-05 17:10:05.656193493+01:00',NULL,'100.64.0.64','fd7a:115c:a1e0::40');
INSERT INTO nodes VALUES(73,'mkey:a46b92cea88a9bac37dcb612a4a50dee75684f736c8c7f2aab812fa5fb9d463f','nodekey:1bbfdddf7b2a929a3da1e69236aa8b8fbd4b25d1839e57aaecf2ab910592bc78','discokey:c2188df6632aded7862de4b5d07c3993b3e908c59ce38f9d481f4840d85448c7','srv-06','node073',21,'cli',NULL,NULL,'2025-02-04 18:18:08.553472495+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[99f:9853:60cd:a4c5:e9d7:2a40:f86:742b]:782","[99cd:c956:e0f9:b633:5f8b:5c6a:50b1:571]:18474"]','2025-02-04 12:10:26.50545127+01:00','2025-02-04 18:18:08.559366076+01:00',NULL,'100.64.0.65','fd7a:115c:a1e0::41');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-02-04 14:53:57.282402538+01:00',NULL,'user021','','',NULL,'','');
INSERT INTO users VALUES(22,'2025-02-03 14:10:50.491924701+01:00','2025-02-03 14:10:50.491924701+01:00',NULL,'user022','','',NULL,'','');
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,117 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli',NULL,NULL,'2025-01-30 19:50:45.306207411+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376"]','2023-05-17 19:38:13.531518257+02:00','2025-01-30 19:50:45.306340015+01:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:1e274f40556282a5bbab04b6754985233ccdf971b663e5b38fc027035e833e9a','nodekey:5b16c7e14191ca2e57eccd86ec636db605fa5dc2c8856be5fa7f9b087cf24890','discokey:5fd2f116700fd48ce06e35e8dd11c847ccd7694e01ec4b3f6ef25f67c14ee197','email-21','node002',1,'cli',NULL,NULL,'2025-02-07 13:37:43.531171201+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5aae:55d1:7b5d:628d:bc07:b3e0:eca2:836d]:13912","[5583:8a0e:1564:ac5b:98ab:59a3:126:cba2]:35537","84.23.188.83:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680","86.50.30.30:18216"]','2023-05-18 10:09:21.757289398+02:00','2025-02-07 13:37:43.531627524+01:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:4405716e66f6a07a8fea90183cb078a8b87108aef23965b1c65f51375f3882d3','nodekey:96f979ded4cf1a02655d0b9069fb14e04d2da09c182624313acccf8c7f6b67a4','discokey:f0f4a89d7893303e1a336c9838c9a55b36a5215da006fccb72c237a794f4c5ea','email-51','node003',3,'authkey','[]',1,'2025-02-07 13:37:15.112124641+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7cd1:a579:7ddd:ed37:5f70:5783:8e09:1968]:5323","110.83.0.14:9543"]','2023-05-19 07:09:21.399903526+02:00','2025-02-07 13:37:15.122168073+01:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:9cd192ff56bc94ec9439083852bb541469d6725e6cda7a2aa624df6e8c8c380d','nodekey:ac53dbdd1bb1c2a36a1dde021e8f5f33d2cf01ef2892fe74853e945b9a08fda3','discokey:57cae29ceafb73857b478955a77927ff5bd8f38c313a869be093f92c6f6303da','email-15','node004',4,'cli',NULL,NULL,'2025-02-07 13:43:11.76403969+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2421:d8be:14:6b5f:7fe:56a8:54b6:8d58]:25207","[20b0:e4f:96fd:1cf3:5d39:ad75:6b8e:d0ce]:51455"]','2023-06-10 09:31:51.940506933+02:00','2025-02-07 13:43:11.765088576+01:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:7f9c690aab22d9db060086ea375d86924359210816ad562dab2db804ad3434c0','nodekey:88fe0bcd504fd98c35a71484820dbf7b91c1704b9d29c0c7950ce5ab06ef2d17','discokey:fbaef49f1a2c61469168a9e81ee6c5bd49a777048288975a22c0f253aa14e2e3','web-24','node005',4,'cli',NULL,NULL,'2025-02-07 13:41:53.142598056+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["186.84.191.82:2621","[c9d0:4e15:513a:171b:9911:f9a0:cccf:cd83]:24151","66.84.158.199:63451","47.94.115.240:6677","19.74.30.92:1284"]','2023-06-11 13:56:42.694329408+02:00','2025-02-07 13:41:53.143294241+01:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:00e154160e4bd8db73f2707c7a5b2f0bae04f3e26427a1aca5b0dcf2dcc1872f','nodekey:4f61b1414dd622304d407a7b4812640f774247f0c3d369a2292e3f4e88383c17','discokey:1028826beface553dd6ea7e553cc63ca59fd529716cb639981d1aa2965ed8885','laptop-48','node006',4,'cli',NULL,NULL,'2025-02-07 13:43:59.675348504+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["220.204.45.94:59135","187.96.173.136:34092","[fece:76ed:4c23:1e89:f225:97a1:94be:b5c4]:33472","[e1e6:a14:535a:668b:698:f125:543f:b5b7]:31740","[b8e3:18de:5ece:3e24:8bbf:1cbd:d27c:7de]:53522"]','2023-06-11 13:57:44.975695604+02:00','2025-02-07 13:43:59.676029923+01:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:69a5389410061b4c336c1f337ae3ccca903f729ff249b6f1e556dcb9d9a3b7eb','nodekey:54c0d87c263afc07b7a3bb5569f8d6b67c58fecdcabefcbe7b8057e91e573a31','discokey:765930463b973ddead698512fe882cbe5e13885d14d44808596600efbcf5303f','db-22','node007',4,'cli',NULL,NULL,'2025-02-07 13:43:32.833347079+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9b54:61a6:c678:edac:956f:741e:5e2c:9ec9]:17930","[cd3f:af1c:fcb4:bcb3:806e:adf4:3f3f:ab36]:58513","[7a83:6a84:9f15:ba1a:9671:3d54:2e31:d5e9]:64893","167.223.65.194:6907","[debd:ad2f:ae50:cd14:9cd2:b297:bb94:d03c]:24266","[489b:6c59:1877:6215:ddc8:57f8:78dc:321c]:3025"]','2023-06-11 14:16:56.951313537+02:00','2025-02-07 13:43:32.833827225+01:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:3fa0a7da3e9f0eecb11b442d911620b629981f5eb3f4ee851256a55b7252a1e7','nodekey:1912a3b843ba973c55b449fb0e1e01faff114b440e7bd1ca8b9af3be0cc56762','discokey:0d4f62fb22a9ab554a8983123cc118ec17b9d47c97d1d84bf082c90f82fe267b','lt-35','node008',5,'cli',NULL,NULL,'2025-02-07 13:44:16.543907578+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["124.104.237.237:47957","[b9f9:eec0:d656:cd83:8595:46fc:b677:6ade]:17494","126.251.133.86:44347"]','2023-06-11 19:59:30.401970393+02:00','2025-02-07 13:44:16.544521726+01:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:dc84e5b1cf58ec8f7200ec0a655c1d5843c520ea59aa7ddd111ad5c9beba9bd8','nodekey:3c06f5a6d7f267023044ab632892b51f5af1ce4d84f0739e88823bc22cda6c57','discokey:3c1aa008a7811012038cd6658b6f290b3d252074c47d23cf1766f878340a30bf','desktop-75','node009',6,'cli',NULL,NULL,'2025-02-07 13:37:15.10720621+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["187.166.20.165:11208","78.47.168.253:34957"]','2023-06-17 19:40:45.468789461+02:00','2025-02-07 13:37:15.127284919+01:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:2325e928fb41b3a3815b7635223411100ba10eba8ea1b442838b40da35379ec9','nodekey:8654f75dc553fbb381f57fd3f8669b5c2572f65d97989d0a69c3b294bb8cc685','discokey:24037160babf3208537006968c9f47ec3e689b1873796a787eaa44fa95afd986','desktop-46','node010',6,'cli',NULL,NULL,'2025-02-07 13:37:36.447602378+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[97a8:bbb7:9bb9:aa2b:e449:4d57:4a65:3561]:17392","151.97.159.85:8120","[69bc:fe73:f6c7:31b2:bc4f:1a95:4676:201d]:4806","[d794:c918:b0e8:6023:d7cd:709:79eb:23f7]:56801","113.147.88.203:61138"]','2023-06-20 11:18:35.905417341+02:00','2025-02-07 13:37:36.47098382+01:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:4fb69f4bf77b8159e4814764398e6cd3bf2067b3fd4eda0eacc443ec299fcde2','nodekey:cebae8af02150eeb54b67f2cadc33dda38a98c94cfec05c1f378bf130007e946','discokey:fd5c9fefc960538a070c2bddafd53c3f890c561e02b62218e4aa8e6ae38cbe4f','email-12','node011',7,'cli',NULL,NULL,'2025-02-07 13:38:08.624346736+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d86:4301:d7d:7706:8b4a:86bf:19cd:1d6]:55529","151.169.147.218:56573","[9e9e:2802:ebb9:ba03:a564:7999:7137:65e3]:52919","[ede2:462a:f99c:24c3:b1b5:8b97:abe2:3ddb]:65141","[dfe7:6f6b:a382:4fc:a3f6:eb9:9ebc:5798]:1474"]','2023-06-20 11:35:15.063855316+02:00','2025-02-07 13:38:08.624847369+01:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:5e192b1b323439fcc3b921c4f523ce9b7cce867220bd092d23be2451ce93a4a5','nodekey:1452cb2c8f26c8988cd8d8ed42957c78e3ab922bdf9773978c853e4254e23fbb','discokey:b7b41dc5de1fdcc4bd609dc72f79d27269367dbf72ab73ab61e998aa31eac6a2','web-19','node012',5,'cli',NULL,NULL,'2025-02-07 13:44:08.729267096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["60.5.210.145:1193","[5698:e318:b38c:4331:5152:c2df:743f:8ead]:34839","33.51.84.119:46756"]','2023-06-20 18:22:35.061914624+02:00','2025-02-07 13:44:08.729820984+01:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:f11332335d9f1f9d4bfc8cf9bf4edc0c958d4e4364b7dcde3c67d847f7d05edb','nodekey:e97d97a2751ef3533818907c9f24acf3270e3824f2294bb9a36d60ca196e161e','discokey:412b0eee00b68721d9169fc81039b9cda6cf57143e4cae8f7c417db15b83411a','web-18','node018',9,'cli',NULL,NULL,'2025-02-07 13:37:16.15950606+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2acf:3f32:1763:5d21:88a:4af:8779:1b1d]:36283","84.177.251.38:32968","[3138:83c6:ae09:a073:7888:71e0:494:3863]:59700","191.156.96.176:5489"]','2023-06-22 08:30:54.08720463+02:00','2025-02-07 13:37:16.721306872+01:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(19,'mkey:157706346bfe3502b6e24a84efa59b1a151be08f5a260ff96c72a734c1da1390','nodekey:139a99de286f52c55bdd61e932827c9d7cb84101a698df3576bdffbeedbf654d','discokey:293abc1a1cf2921e7961f5753cc39097956648bab47879791afb12ea03a4e6dd','lt-42','node019',10,'cli','null',NULL,'2024-08-07 09:35:12.220368767+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ce0f:9f05:96dc:a47d:edcd:1c25:f578:7551]:30363","[cc06:9c56:919a:2341:4ef7:7f28:c8ca:2a5c]:30788"]','2023-07-03 15:18:03.829428454+02:00','2024-09-18 16:15:14.037990869+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(20,'mkey:e4713082f1a4d5e2f5ca126b95eedc7ce673782a871afde980a74aa98e31273a','nodekey:3957decaff55af98415799c81e6cec28edc377d6e2a9ddca3c909c26bcffd45b','discokey:9e8360b263f67dc8d5dea9d37f023ebbbb8882f265f6ca43f5923194d7931609','db-08','node020',11,'cli',NULL,NULL,'2025-02-07 07:28:20.585544641+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4692:f8a0:842b:c26a:e549:1f3b:6795:964e]:31064","207.187.74.99:12216","63.3.67.150:22907","[77ac:562:7c4c:438a:6ec:be48:743d:47b1]:11349","[33cd:731c:f110:9b45:66b5:de81:1daa:757f]:5997"]','2023-07-10 12:40:34.838579199+02:00','2025-02-07 07:28:20.585679087+01:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:2894a7babdc030bac1e4ec0e14aa4b6b67ebe382a1773e0ff4aa8b16ecd443a3','nodekey:1e219f3cc03eaa868018b9f6870d108317c31760fdc38ad4bec7200d58379f26','discokey:a81e998383baa23adb3e1e6757ef0c4b960095022f00b500b57f53c6147c71e4','laptop-48','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[736d:a0a:e343:6b2c:b48b:7510:ace2:edc]:60377","82.193.154.129:23713","[68:80fa:7b30:3a0:d1fb:3e89:2c73:256b]:30308","[ad42:3917:5edb:3e85:732:1c71:a19e:9fe0]:11799"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:9ab69494a274cba5b22cbcf35b3ada57d4b3d2ee03930a456f80fb34dc69064b','nodekey:0345912b4e39cd9d03dec55edec6fba7f8aca631312884b49538550475332182','discokey:a2c1be2ae50af07e5b96b0a3ee2d3a1b0148fbfc5c1a283bc787e31410d6f74c','web-51','node022',6,'cli',NULL,NULL,'2025-02-07 13:37:15.266244078+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["9.237.225.227:64622","[46a1:e1e6:6b82:6599:acc7:2273:afea:f09f]:38018","93.129.193.97:13477","184.41.32.72:1026"]','2023-08-05 12:08:48.132161695+02:00','2025-02-07 13:37:15.266464476+01:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:d1b90c1c72090d082067c2dfbf287f26510b58519bbc5113f1ca63ad3ef20b96','nodekey:2d0d6f2300d295c8f91d0b954d733a2f8c4106595070d3efc6eb709df09591f6','discokey:87ef4543866a337716d7d5021346b82bbbd1aab14c36deadf96b4c38718e8cd1','srv-45','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[79e6:8519:803b:6054:5c13:9069:8dfa:1dcd]:45055","30.154.162.65:53795","21.107.170.69:30767","212.18.227.41:50735","[f774:e89b:980f:975d:fd3e:93f:a9b5:2034]:46054"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:f10b7f9f385e48dc99ec0944b8a04ec4d3e5613587419c134440121fa747ee75','nodekey:9559349d25dd3fa88b9595cb4ccebeeb4712338757a209e936afe37ec2643dbc','discokey:b9a07315c1eb2e074871feebe899bd2ecae64d98a8edf08883785130ef386728','laptop-25','node024',12,'cli',NULL,NULL,'2025-02-06 16:36:01.609321017+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9e60:1bb7:b542:2f50:269f:5ef:72b6:f4ba]:34677","159.52.2.200:7205","[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597","[320d:6314:eaa2:a098:8594:977d:27b:8442]:12827"]','2023-12-15 11:14:36.765183054+01:00','2025-02-06 16:36:01.609441418+01:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:84784f348b4e879e87986ef13b6f02ddef91639cd7de65540903cd846f93e1f2','nodekey:c15dc98ef47cf6f5dd52f59c22b3b6b0d8536ea5d248787a0145b45e6598cff6','discokey:c14e1be497f1423b4f4aa799f8ee907307eec987a1c3f7e32d4adf215fa731c6','srv-70','node025',6,'cli',NULL,NULL,'2025-02-07 13:42:34.03052815+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[23d7:1ab8:8bd1:10f3:a4f7:bd70:7803:773d]:50718","[3200:76c9:dca8:d60:e5d6:868e:a264:3efa]:33138","[975a:978:5cfb:5e5a:1b6:d272:a1c1:50dd]:3245","[e6e4:7cfc:9ce:b47:62f5:b64e:d2e4:9015]:42369"]','2024-01-05 17:32:40.940566279+01:00','2025-02-07 13:42:34.031054525+01:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:dba47da985e4770a27031261b989e24ddd437983652bd1f96cc520ed78c5fc0c','nodekey:3c36d35f3e9ec98b36741e5973d8f5542fd82503a1752ad9e20545fb6be984bc','discokey:b30567e26d2fae861e566c4081179d8c72f9e659521dd7e6afecb3fbaaeae63a','db-02','node026',6,'cli',NULL,NULL,'2025-02-07 13:37:36.216420089+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["192.175.239.121:921","98.153.121.140:5003","208.68.161.128:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245","32.31.195.128:7039","[c50a:ec:e2e:e109:3a08:f56b:2928:4921]:61265","221.147.144.138:44737","136.208.142.64:41091"]','2024-01-05 17:34:19.811670479+01:00','2025-02-07 13:37:36.272729094+01:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:73868242348c7d709b77f52963c32eb4b95c8b6f89abb5db76bd95cdaaa538b7','nodekey:2de3f421f78de3f5cfd824ffaa80cf3fde3060bc42f51c2ee2f55b49fd5fbe20','discokey:5ff3b0ad430ee5530c972ecf0d3e69f25eecdadf6ef8a309b3841d7aaa6f70d4','web-56','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a2b8:ea55:f9e3:2c00:f423:8c56:7fec:c617]:53793","[ed88:2277:3c9a:4f64:a25e:5b41:a3ca:e904]:27852","[d203:40a2:5efc:4a42:8910:81f8:59c6:4d8d]:23389","187.126.162.12:25054","[5d8b:9391:47f1:1bbc:e01:92de:4a90:7614]:42410","172.81.188.131:23453"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:300a566a21fcaab2665dc091300e2c5110dcaee25e2fcc4cc23b011fdae471e6','nodekey:8e36531b406e0b7b9c1b9abadc00626ccc8c6e7a0c37f70f42ccf06cd2dd03fa','discokey:a4134738054f6fc0c57b6eb47913e68a3f47ffb81af8a3496754921c2fcb02f8','laptop-98','node028',7,'cli',NULL,NULL,'2025-02-07 13:37:15.697245044+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["113.143.9.36:55432","[e266:66fe:4929:3831:7830:6f10:1572:20df]:9977","[afe5:7d57:fac5:a1c5:78d4:ee33:d474:1e56]:52223","7.208.95.117:299","[d28b:7b33:1f88:7583:7ed7:a923:4c90:9ee0]:62318"]','2024-01-15 09:34:54.847632697+01:00','2025-02-07 13:37:15.743059169+01:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:8e49fb1776eb7ce9cf27cd557a05f6d1868e6ac5a06eab48baa953a0a0b17381','nodekey:3ff07a931e2725e7f96c378dc8b4a531818fa64e853879df8c51d5f2bbff8f9d','discokey:bcf9648f2249fbc34d8fe61593c8ffcfd4205593b9c6525196148b1f280228d2','email-91','node029',7,'cli',NULL,NULL,'2025-02-07 13:37:14.081795989+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["162.176.178.140:46577","[4f52:1708:c0a:7991:9c16:bd7d:4045:195d]:50362","[fd0d:f112:f642:c343:ac14:8ede:dc04:e2d9]:58412","[8a1a:5c17:bb81:bb69:c7db:3513:f14c:ca2d]:52077","123.235.220.59:59925"]','2024-01-15 15:18:12.2871978+01:00','2025-02-07 13:37:14.172137472+01:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:15fa512b5b78a7714edf3477babba0d325e0b121f5b81b63dafa434a9eb71c32','nodekey:b61427ebfd1dd6801f5bccb3fb42c30e1ace79441daa9d5d0cadcdd9ff199370','discokey:6a09d51cbcafc8c1eb9983a744f2df3f288d43a3b8ba06f088eb7fe1c375b341','laptop-77','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e84c:35c4:4bd9:a100:c271:8921:ca7:5901]:21828","[fab9:f181:95a4:a769:df9b:b7ae:9799:83dd]:32341","[e868:f68f:cceb:8d29:5451:c716:bdca:437d]:41081","[7016:b48d:8bcf:4ccd:8679:8c47:1c66:cd1e]:41980","22.231.20.85:41616"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:fbebb2c69f263a519c8902463ef9c7db0597109fae5730a222f1c6567278bc86','nodekey:d83666c0acac1a9cd306cb884a1ce24adaabbc2102eb553ef5514ac5ea1714cf','discokey:6f4280bcb38ac995d22543db32230d8f22f2c0a0dc5efe2d86c7361c897ae812','lt-82','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4327:29dd:a02:fb00:9645:d497:8ffc:4a68]:26342","[5d4a:a2f2:16c7:3d3a:a2b8:2962:30f9:3407]:5279","107.140.203.49:9365","[1660:741a:160:67c9:7972:5f9d:14bd:ee53]:21178"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:8c468799222af319e17ec309dbbf3a87fb6d924a1cb17e5a0bd7e027fe3bfe5e','nodekey:3c7d82f4a44cfa1469b957ac911e8506a68962fb2583d2afaf3e8a621c0c4aca','discokey:ba179b51f3540e619eaac9a6d4bc67403daa7c3cf28a6b579087cd6d284501b4','lt-53','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d21f:d7bc:f690:e3ba:82fe:8122:c33d:5a86]:227","10.67.113.92:45634"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:be7f190677fd0cd1c5e78b4ae5b02a1738dd60be7d9a41017000b22ae9636af4','nodekey:a404e578d3edd3e3d879e9f1946c859b5982c59f5e528bf6b987bd55de00b25b','discokey:ad3013f116c370866fc9134b66999bb05e2dc10a8e2944230c3d9893c0a94c67','lt-80','node033',13,'cli',NULL,NULL,'2025-02-07 13:37:15.862018576+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624","71.151.27.31:51063","[f0d6:21dc:48f5:63f4:daff:a3c4:7d60:51ea]:17286","[38c5:9551:f6ed:b087:91ba:bef1:771c:273d]:62171"]','2024-02-03 16:33:26.706408143+01:00','2025-02-07 13:37:16.21569294+01:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:7784df3aabe1ca1edab5270028fb3cae8b66cee2384790d06969d1e6e298520f','nodekey:fd8e939fd6db8caf6623ac3d73c12ade4da110d8c1f29e3a3ee0d2be0c526915','discokey:59aff4582e00d92260e6a90d6d0da3d818fe8f52c081c8b65e18006ef8269ebe','lt-65','node034',13,'cli',NULL,NULL,'2025-02-07 13:37:13.91519638+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["71.155.69.236:8707","125.2.67.155:50785","32.6.80.181:17295"]','2024-02-03 16:42:32.683785672+01:00','2025-02-07 13:37:14.346290035+01:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:ad3838fa63fb120ae8d3e47d4bb6bb4009e7fc5d91483d1ba7417d0681fd7162','nodekey:b10ddbdcf826d79049d74a7d4ad036b499c86f7daf786bb1a9b295366b57afe8','discokey:618ef629d3bd261964c613ad3bc45e6278fa274d734c8cd2d3396cf8c9742d88','web-33','node035',5,'cli',NULL,NULL,'2025-02-04 17:50:49.267594119+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["169.159.71.157:18240","[bbb7:5b4d:218d:55ff:ac9b:1fb6:c933:9a55]:63943","18.156.132.228:63356"]','2024-02-03 16:51:52.010016072+01:00','2025-02-04 17:50:49.26844864+01:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:c536a3efc460fb2da4c4775e2b51d0c84f001dc46a4d902429e74e97b2d3c6d4','nodekey:91da2acfa3d7f7c7b0c1a2d952ee527514504fddc504809423762203a16145ab','discokey:989ff5f21d485dcb6312fade38c9047bbde1fbce46bc29ac5f6afe00610ad215','laptop-46','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4017:a243:61d0:b302:7860:18f:7d4d:f605]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121","38.137.88.247:35801","[eec2:61c0:e20a:2fa0:5e4d:56a4:5071:881b]:36628","[b8c2:c792:3329:2c93:f94b:a948:7d11:b9f2]:908","[5925:353c:bd9a:f42e:1916:45b4:c170:e515]:18400","[c2a5:cc2f:e2e8:573f:7b01:4aa:8a1a:fd71]:32146"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:142e67963c9045164df7b33af6d2149d72f59527df44fd75221647281444cbe7','nodekey:a3a2cd2bd0c3a1f783d0391ea1951c5c9226ddca0f18130b77fccff8b874d694','discokey:bdb788f8825b9bd816f37dcea882920382c7feb143edf0a6baefc9015774d8aa','lt-24','node037',5,'cli',NULL,NULL,'2025-02-07 13:40:58.763825796+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c31d:dd18:321:589:11fa:d85b:695f:1fca]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846","8.137.133.59:22781","[cb5c:f8d4:ccb0:8333:8ec:170c:a2b0:941d]:26248","[5802:df5c:8853:4851:6dcf:cb83:8208:d143]:24568","48.38.104.41:43702","139.100.200.227:62546"]','2024-02-27 12:14:40.452601042+01:00','2025-02-07 13:40:58.764224794+01:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:6829f2d5523aba7a27c31e59e2341f3feb5a5a72a0268ef10d23c39811ea3b53','nodekey:10e4ff66fdd37fb54f6dcb0e42f483a15b6340610acc3a4517c24f0f350b5a9a','discokey:f20786f9c7edc967d0b415bbcce39468441af3b531ff15656c0683d3f328720a','lt-88','node038',6,'cli',NULL,NULL,'2025-02-07 13:42:43.738264414+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a393:f17f:6728:82e4:c1e7:2367:82d0:daaf]:18560","[d192:9897:4cd7:bfb5:de36:fc03:8cf4:c60d]:25096","212.199.67.213:11150"]','2024-05-22 08:08:16.045350656+02:00','2025-02-07 13:42:43.772029617+01:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:33e764ae40265089c5e7dbfc8571aa23bb390fc7e1e8bd2f3e0cd6891c308214','nodekey:c444c9ff652ba29181a5f7fdf991f91f704e6698237ee18b0649c81879ec932f','discokey:2e1db3a1eea266673acf7826aa44b5aa6fdd23c6ba41330562b37c5a523ba358','laptop-81','node042',14,'cli',NULL,NULL,'2025-02-07 13:37:15.183056803+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["190.179.215.222:61930","45.131.187.230:22916","[510f:af99:ed4d:f53a:fc21:8640:9ad9:4930]:16050"]','2024-07-03 11:12:29.418355657+02:00','2025-02-07 13:37:15.184237123+01:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:353844c4b332bdbf7f39796c522ee89d7f64fde342d3e566878f456df0d57a54','nodekey:c9f47cb50fd2b9075cda9d68018659491ac29dbbe7a04e8405039fd385966fa7','discokey:ec43638237bc43ab6a9839b3a4d54c2593e11a2ebd13bd491f08f68d7cf93ac0','desktop-90','node043',14,'cli',NULL,NULL,'2025-02-07 13:37:15.256444976+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e071:3cd7:878c:ae2d:7dcf:eab0:d0d1:decf]:37427","17.31.200.70:26794","[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274","[e5df:1889:6ac5:7d21:4dfd:614b:7eb9:d93c]:792"]','2024-07-03 14:48:50.263910778+02:00','2025-02-07 13:37:15.258418656+01:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:6d3e50168ff6e672ed7650abc5a1de7fec7150c6f84932c705c84964824d1d39','nodekey:ad70f51f99efeefdf0c8e0a9e818db1e5de474e67b2b0a1609a53190339938ef','discokey:c4d4ad19814f9312b454cadb85b333f80cccca1b4a42f30780f7a0f4ccfe1bff','laptop-97','node044',14,'cli',NULL,NULL,'2025-02-07 13:37:15.264418779+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b501:efaa:c73b:b492:c3cf:865:d55b:9557]:26172","162.210.141.106:52036","[84ef:a164:d1c:d20d:797c:753e:f8fb:3108]:5767","[c15a:e322:a721:c9a7:a662:ccb8:26b8:e1c4]:63192","[87c4:c36b:d96f:525b:fa4c:c5f6:7bc8:d6bb]:35894"]','2024-07-03 15:23:48.066044194+02:00','2025-02-07 13:37:15.265313019+01:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:e1772e6b138211afff6aa8fee08438c311b1d9d32576075c980d39591b13ae77','nodekey:92b8cc28bff0c53f95fbdd8c1363040100ae849e78aea04a3755e9a1fd03fe4e','discokey:7b368b5d64b6e4fb4f0ba9e5809bee8b769949ecdc69ec6ee6c9f12c2321fced','email-94','node045',14,'cli',NULL,NULL,'2025-02-07 13:37:14.65277645+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[caa0:946e:b130:39aa:31b0:8f9:7526:4960]:1729","120.102.247.255:41936","28.177.95.32:7841","[fb23:5998:c63d:b6c4:e86a:96b2:61c:e110]:51902","[89d4:f6c6:ccf6:b19d:3b76:642e:7a36:d229]:930"]','2024-07-03 15:54:01.706018896+02:00','2025-02-07 13:37:14.741317691+01:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:af6c1d228b675ff04d2584e2c23d6288ec312a6b44c5c0eed213423a11711787','nodekey:f5b21f25bb22b5cf0cedb1b643d50c3a6512ef300cc971eccccbcc500cc23408','discokey:72843a1b2564c177d8556eb0d76dda7cbe0d9f1408bd250fcc6149518eb6d5c0','desktop-41','node046',14,'cli',NULL,NULL,'2025-02-07 13:37:15.182378567+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[37a8:9998:e94e:e297:940e:5414:5549:87c7]:37130","27.138.122.133:37304","98.38.29.194:12660"]','2024-07-03 19:38:07.783745318+02:00','2025-02-07 13:37:15.183590138+01:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:5bbb77092f21b4835b0ae1af3871fc48445819c9b6e5ff9c46ad4a623b662ae8','nodekey:191c7cc089ee160c07b63e2b6b5ef0701d76d914009420baddad9bfce13e3f2d','discokey:712cadffd23f106abeea82ae70bbae8e06c2a58f3db617afd0d149b3012c64fb','web-61','node047',14,'cli',NULL,NULL,'2025-02-07 13:37:15.16567498+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["186.118.23.242:32373","[5bd8:a5a8:1b3:5e41:3c4d:5fc:4c0:c6cc]:24847"]','2024-07-04 10:38:08.344092869+02:00','2025-02-07 13:37:15.167818666+01:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:a1e793aa09c20360cb4ef57e7dc42171a0abbc9f562140609e930ba5b7b12e83','nodekey:3343520915898c9d90b7517eabf8660d66c37ed12aea0b5a4935458f95c801c9','discokey:6a80e23d10d2cb3edb58c9c47ee997f9063d6aed2f29049f635b6bf1da090885','web-24','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["101.103.129.11:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486","22.83.180.41:14147","26.126.135.206:7777","[8706:d109:5006:f832:dca7:58e4:4451:be15]:15180","177.4.27.29:60895"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:13b8d4cafbdb8e9ab77928219aa57bf778878866ad8e6108b60aaab8dc8cec36','nodekey:17cefd68f8a9cc20b3d4fd93598f77ddfd6bd5a7e6e4b49861f9faad8623e0ef','discokey:939a04ddd2f9a24468e07ee7924dbb7a7662c1e8a1b67426f57fd48c7394448b','desktop-40','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438","129.0.5.112:19015","[91e2:54c6:93fb:ec32:6ab4:186d:81cb:b815]:37323"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:03979d5446bb3f596bf0234d81ca84482eacb132e874ceda6cc2703422cd728c','nodekey:805c03cada525f14ee90d28ea02b23a3f57b470c793314872ad9daacf6c6484e','discokey:eb4135e1cc73a3c6b513d8cc04ca0c55a2aef7b0009845fa1d2036488aadf0f8','desktop-02','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9175:498d:64ac:4342:2eac:ffa1:99fd:d109]:21202","[5cba:56ef:db08:320c:333a:541f:605c:44d5]:57469","150.211.2.236:50360","203.180.122.83:13344","63.162.234.32:11653","[6b63:f552:f930:e22c:fc42:3b41:c5c6:6d5f]:63162","114.48.12.185:47837","[2964:cc5d:3a1b:7889:acc8:4d8:22c1:398a]:43515"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:5877139c52c0bf3c0fd054bd046aaf4530dd8946548a7bc1a06733649d1557d8','nodekey:553d9638c8c455e8d1bc811ea3af03db1eb3c586413447c8003e7d905a61d06c','discokey:1da883c9eff402d786362aaac2f478c835308b3acec0993e6293becf4474609f','web-62','node051',14,'cli',NULL,NULL,'2025-02-07 13:37:38.925095255+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["86.215.174.228:26026","93.101.159.155:64005"]','2024-08-07 14:19:31.156780417+02:00','2025-02-07 13:37:38.92600407+01:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:0e64072dafa5f9e49266b41fc4b21ff7d287be8f4e5f2b6c395487d632f1cf3f','nodekey:2f77bb8cbeb426bcded5ad9fc6da44b0b76b8d6759f10a8db28e634290760ee7','discokey:836558738056edd1fa8d190c7e42f120b365a48a3b1f1c96c87755bb82d7ad0f','desktop-07','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d889:f751:710:257f:977f:5597:9908:14e0]:61162","[f83a:5ebb:911d:ef36:743c:8086:8a4c:a5c7]:23538","[dc45:365c:e426:71d7:fe23:fdd4:d2c2:9409]:57262"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:a6f93e99a5019b3b6a2941d95dc7fcbfea5a59317a48b99db93b7a3f4f0a65bb','nodekey:1f78a6d76ea4a2135c0da46b202560c86ed30cd7e8239d4508088d0e02ffb961','discokey:1744062452f052aba5320e37fc08aaa37f1430db7c32c94c5626f0f3c858de3d','desktop-82','node053',17,'cli',NULL,NULL,'2025-02-07 13:37:13.842388728+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694","[156b:e934:d171:2693:8db4:f193:a58c:17b6]:24190","79.255.179.99:56057"]','2024-10-28 10:04:50.084492941+01:00','2025-02-07 13:37:14.011393166+01:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:4eee40f0117b3b8580f4cf3ec7be063bb4d82173cfa3c015c8932431940d9c92','nodekey:4241ffb9768a0e31f38cc0c5b2f240c1de72b8810e7ff3705964316e63c1a055','discokey:3ad8f2ebea95d15109a0adfc69b3a6b566ce02ce82df7a32e68f278538bc05a2','lt-15','node054',14,'cli',NULL,NULL,'2025-02-07 13:37:15.059804316+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9fe:6ddd:ab0:1193:7bb7:4a4b:c036:b910]:63516","158.169.112.249:5480"]','2024-12-09 17:10:55.363593066+01:00','2025-02-07 13:37:15.113575346+01:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:22e4ac4e25b05db4e94b5211e08ed14d983972f92e192f15e0231ff355fd46bf','nodekey:225f907deaffccb674416dc4ba532f0b20304e86d57808eef2d96f15211f2309','discokey:e695b849380f698178e7457311dca3cc10ae13a79b0a71d22130e7c401c4f246','web-26','node055',18,'cli',NULL,NULL,'2025-02-07 13:37:15.324226266+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ecbc:a9b6:cbb7:695b:62ad:27cb:36f0:2380]:27992","135.238.213.41:64084","[a5d2:373b:9599:8abc:6e7:2efe:f921:3a09]:56107"]','2024-12-10 13:56:39.287449662+01:00','2025-02-07 13:37:15.355747009+01:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:6b8c199041c26e52d594b6e9be9d4d9bb695d32e9fe247c84314b6809b8f38fc','nodekey:26b392e9f02b3910c5974f133282119f99e67ed084b4327aa818333e04010d40','discokey:8312bc333f55d0d6d7fc3e28dcb6300364c3008dff0cc64d2b480d5cba8260f4','web-69','node056',19,'cli',NULL,NULL,'2025-02-07 13:42:18.972640971+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5437:6f4:94c1:c6c1:43ce:7a41:e5c2:65d0]:57161","[7af0:3b83:a2ec:716d:bc46:deca:1685:e863]:26528"]','2024-12-17 14:58:39.429211911+01:00','2025-02-07 13:42:18.973110667+01:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:edabd08e316b276318382fb96ca0ed40cf36f64c0a0de538295c0a69b0035243','nodekey:6576807f6b92bca841c85256b56daef25ab7113770f1db8ebc903d8b9de41308','discokey:a42e3f0759628634516ca1b4d4fa87450026af9101040401a23532a48ee07c76','laptop-31','node057',20,'cli',NULL,NULL,'2025-02-07 13:42:22.378213299+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[229:a09b:efd3:c73e:b885:d236:7dcd:20c9]:33744","[2de9:ec02:ffc4:1715:4d36:94f9:d726:fb8b]:55312","[72a1:a0b2:624a:827d:7d29:bd5a:3398:dbe4]:56924","[9875:c11c:289c:3b14:dc40:d7af:6:8372]:51751","125.170.153.154:21718","68.3.248.154:42390","[f621:b605:bd04:a964:160c:314a:141a:2e8d]:58563"]','2024-12-17 15:17:14.26936913+01:00','2025-02-07 13:42:22.378739434+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:06bd440cb68a2856dcab4ae09ba4c4e7969b78a99a1d06bbacebc9d1fba037b7','nodekey:c0a2b88f5f4b9aee6a50df28b6ff5e5c495053c26d969100ef23f13a51349bec','discokey:4023ff7bfd754262fe36745731a9d1175cc0b49d7acac56123cfbf0c633fa0c6','db-32','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["50.133.88.187:24107","[ed61:9d51:b21f:7096:32fa:e473:f6d4:9f69]:17106","110.235.245.179:61572"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
INSERT INTO nodes VALUES(59,'mkey:837b21b2de65f931fa922fbc8fae0552beb9e5d5f3f089caa3b23e05e21afc9c','nodekey:2966f862ddc948ac6bec836f818b6af9717a5972128c20cadb0756dca94421a1','discokey:81f0e2ccd5b3292e6129c66588862e399a2e2685592f7e8b9e45254932532bf7','desktop-45','node059',21,'cli',NULL,NULL,'2025-02-07 13:37:15.162862529+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["121.80.178.149:12322","148.31.205.9:26021","51.210.182.192:52299","[2e30:4d2d:4925:201f:e845:2a12:503c:9524]:34552"]','2025-01-29 11:59:27.291048957+01:00','2025-02-07 13:37:15.166959448+01:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36');
INSERT INTO nodes VALUES(60,'mkey:a8258e2d7302528bdad3321e5251beac7b920c0fd2be9a31ac541ceba25f868f','nodekey:f6dcffb992bfd5f22fd31752d1f450d79e68fd9d3a5d8c6002846d7c7e7ca780','discokey:5ce092b58afaaeac550606cb9ca49b9a82d8ec71c5bba6cea2727f3a6c51ed58','desktop-83','node060',21,'cli',NULL,NULL,'2025-02-07 13:37:14.448391309+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9bc9:59d8:52be:2e78:c641:a523:6bef:7101]:9124","103.8.213.76:348","[ac:5c65:da8d:d68c:eb0d:3692:d441:5363]:63612","107.250.166.141:64587"]','2025-01-29 12:01:57.48748166+01:00','2025-02-07 13:37:14.48001932+01:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37');
INSERT INTO nodes VALUES(61,'mkey:274b3c292aff1b069c84dcb1708adbf93c479a88eff35023edd1d42ff9d2f3a1','nodekey:ff576e5a5d91943d1b95cc0bd0d02edf9ce965b04f4d55cf44cbc328a46e81e4','discokey:da967cf6cf6122fb4c3381342341fe2013bbb02592871a6a4875c0f2ed088497','web-95','node061',21,'cli',NULL,NULL,'2025-02-07 13:37:18.210665072+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["97.178.200.54:28664","112.239.138.73:43954","174.168.204.29:5611","190.0.61.36:13730"]','2025-01-29 12:03:01.464646336+01:00','2025-02-07 13:37:18.211304165+01:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38');
INSERT INTO nodes VALUES(62,'mkey:55fead8ba87f06051dbc7eb41fc9263832e89a23587dc5161f4caa73e52b86c2','nodekey:ce19e593db9037b1ca155c2eee3628bdadf18183e7bb2c2e8452c490a4a70fc6','discokey:3fe7586ae2c3942956fa5929c628519dd776326bd41941bf9c4ca67c20b39d39','web-47','node062',21,'cli',NULL,NULL,'2025-02-07 13:37:15.119660489+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2476:14e8:ab74:a221:cfca:bd5e:64aa:83d1]:48008","203.192.235.192:35390","30.40.23.45:22912"]','2025-01-29 19:23:14.092804852+01:00','2025-02-07 13:37:15.125730738+01:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39');
INSERT INTO nodes VALUES(63,'mkey:375546b6250c3cb141b036b348e902de244a8572dd7572422e95e36a6f6e4db8','nodekey:4fc64d645299720f14481c889ecaa1f08e48a3b83f19ece638b7d4d9d00bf75c','discokey:404b99d3c51100cd92dcf7caaee677b9c3f5371070504f0848759bf792ce1ed3','lt-21','node063',21,'cli',NULL,NULL,'2025-02-07 13:44:32.21661957+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[68bb:e8d1:72d8:8b02:608b:2284:c9b3:184d]:20876","[5c17:4014:ea6a:5528:b1a:61b7:5cda:5c5e]:21597","22.244.181.59:21123"]','2025-01-29 19:41:40.535299057+01:00','2025-02-07 13:44:32.217372195+01:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a');
INSERT INTO nodes VALUES(64,'mkey:ea810305395687d011a783dcd058cf511363eb4d5638eeeb6886b7f5e690482e','nodekey:c5b9b10d988bc237815f7c98830abfb86981972949898f2ce9a1451a7bc617bc','discokey:1e0c9544833ff8f89685b81f2795c330500d8d414f856e0e9f4ec439e3c76dad','web-27','node064',21,'cli',NULL,NULL,'2025-02-07 13:40:53.575919211+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2fb6:ea0a:3639:a1cd:9075:a258:6a79:4f5c]:13944","[2384:3000:4d47:a9e7:54ef:99:52c0:e920]:39358","130.195.116.24:53838"]','2025-01-30 18:18:57.519126133+01:00','2025-02-07 13:40:53.576418189+01:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b');
INSERT INTO nodes VALUES(65,'mkey:fe494a29de4149025e3c41744cabfaaa2ae9a95795bdb6425e3beee27048e0f6','nodekey:2b078ccb547dc8b01f19749735f5fc43e65e4d468357a08a880fa54dc0a1e00d','discokey:cb991d6c0a14b0213e6f807e9c37a837b181c889a1e2d25e10d65d4a7e8b2b05','laptop-33','node065',21,'cli',NULL,NULL,'2025-02-07 13:44:09.41583007+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["54.154.28.86:64790","197.205.147.181:38523","[5e11:9ab9:6805:dec0:99aa:65e6:d1fe:6e58]:45247"]','2025-01-30 18:19:40.354692307+01:00','2025-02-07 13:44:09.416328169+01:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c');
INSERT INTO nodes VALUES(66,'mkey:6c97e6102fbb96b98090402e9414b0d8e2e5ded0aa8cded7ebae64da5c2518d9','nodekey:f2d5b51602df1f8c57ab59973c100919b7f84bdc09386d43ad49fa30d6595e38','discokey:15d3ca06419e377b06e2e0a3b36d53f5b448087f9609c73a128429e17c88102c','lt-62','node066',21,'cli',NULL,NULL,'2025-02-07 13:41:35.878248155+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["6.193.99.72:20874","181.248.237.50:21695","171.59.96.217:25726"]','2025-01-31 12:05:28.65297301+01:00','2025-02-07 13:41:35.879388156+01:00',NULL,'100.64.0.61','fd7a:115c:a1e0::3d');
INSERT INTO nodes VALUES(67,'mkey:eb72ad359958c98e28f93485b720b6edef80d1bc33c4f99d772fc17c766039e9','nodekey:9122bd587ae90984e3231e0f48e15aa8abcfbc1b3324becd1f3622bbbe534da1','discokey:7610d45f8d2d3d4d7774c43288a6d50cd798a832732613647caa15e96621a3e3','laptop-93','node067',21,'cli',NULL,NULL,'2025-02-07 13:42:35.535333727+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3022:fc47:6534:7fe3:9d1e:8d49:75b:984b]:10998","60.241.100.13:15037","[9356:40f8:a98c:a1a9:18e6:e781:f169:4277]:63375"]','2025-01-31 12:06:30.121464114+01:00','2025-02-07 13:42:35.535828442+01:00',NULL,'100.64.0.62','fd7a:115c:a1e0::3e');
INSERT INTO nodes VALUES(68,'mkey:b1f44437d8d3550b23e7d3a79e6fb1c2649a48c2566d95dc308b78e56a1ce2f5','nodekey:17d7b53b408bcc2459fce9db6e689099b7a99de8ca26be948f2a0eebf71970c7','discokey:2af8a6603509410d88c13a6d39763e0109e8f422f27fc8da08d2e256dd7569b3','desktop-87','node068',22,'cli',NULL,NULL,'2025-02-07 13:37:14.673907509+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8ac8:a469:4cc:90b5:c84b:f4f:5cb:49e1]:35646","[d152:3a18:3826:ee28:a323:74d6:7140:ca5]:40749"]','2025-02-03 14:16:55.56431345+01:00','2025-02-07 13:37:15.115578974+01:00',NULL,'100.64.0.51','fd7a:115c:a1e0::33');
INSERT INTO nodes VALUES(69,'mkey:0a0aec355a4e4e478a9e73ac6141c7882ab29d1d14da893ba7442acc11bf6cbe','nodekey:5c3cbe65b07b0676fdc9eef42acb6f0a56196a20fa82d34429b6adc878aa4d0e','discokey:f813981e0cdb97880468aa23f9745b4b3ca367e3e9eac72c6631b8e2530a822b','desktop-75','node069',22,'cli',NULL,NULL,'2025-02-07 13:30:51.951476674+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[443d:d8da:884:82e4:de49:13e:8449:d06d]:43135","152.191.25.57:54747"]','2025-02-03 15:23:16.312084161+01:00','2025-02-07 13:30:51.951819286+01:00',NULL,'100.64.0.52','fd7a:115c:a1e0::34');
INSERT INTO nodes VALUES(70,'mkey:fa142bd90a16d891af17e0732fc3060af64e41d0ad7f0024afacbd941a538f88','nodekey:2ad7938dba6ec89f4d73dd9d8558d15efd3ef3b5b752a90e40a064835c073fc2','discokey:31457c9296771d81dd053d962b86845adc3ab09ae53f9ed42be57037a0ea2368','email-13','node070',21,'cli',NULL,NULL,'2025-02-07 13:37:15.228318848+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["7.34.191.227:52597","200.133.152.206:14119","28.101.69.72:35202"]','2025-02-03 18:09:35.161109801+01:00','2025-02-07 13:37:15.245827564+01:00',NULL,'100.64.0.53','fd7a:115c:a1e0::35');
INSERT INTO nodes VALUES(71,'mkey:fc9d5a1c4658644beeb3130cf62b19042698652298ef36899d41f588bec371ab','nodekey:d44ef585e416773d29e627cf9a6e590af9b676d23a0a816865d05d775517ab4b','discokey:0c87d487f7a4f4ec5e045ff0c83c1b6c54453f7afe0e5f13c7ce90746e18da49','lt-48','node071',21,'cli',NULL,NULL,'2025-02-07 13:37:36.853568516+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["126.19.171.233:19526","[91e1:a8d7:5c43:b695:4f5:b147:b5f7:9f75]:62218"]','2025-02-04 12:03:50.32663805+01:00','2025-02-07 13:37:36.85423361+01:00',NULL,'100.64.0.63','fd7a:115c:a1e0::3f');
INSERT INTO nodes VALUES(72,'mkey:a46b92cea88a9bac37dcb612a4a50dee75684f736c8c7f2aab812fa5fb9d463f','nodekey:1bbfdddf7b2a929a3da1e69236aa8b8fbd4b25d1839e57aaecf2ab910592bc78','discokey:c2188df6632aded7862de4b5d07c3993b3e908c59ce38f9d481f4840d85448c7','srv-06','node072',21,'cli',NULL,NULL,'2025-02-07 13:37:15.252280835+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[99f:9853:60cd:a4c5:e9d7:2a40:f86:742b]:782","[99cd:c956:e0f9:b633:5f8b:5c6a:50b1:571]:18474"]','2025-02-04 12:07:36.231437299+01:00','2025-02-07 13:37:15.256879188+01:00',NULL,'100.64.0.64','fd7a:115c:a1e0::40');
INSERT INTO nodes VALUES(73,'mkey:2c018031737bb172064fe31674acafe1b8b4d62d2b82db835e2c38061c5bfdbb','nodekey:575f781bb36f7c93cde4d9808e3dedef2c8999864ea1d4e5ee73fdd3d53ac217','discokey:00e3275941e7a0a73a1e5c44cea638a411c60bb2e257812e0f39152ec0c5a21b','lt-01','node073',21,'cli',NULL,NULL,'2025-02-07 13:37:46.354359607+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["56.80.126.49:13907","95.196.223.110:47343"]','2025-02-04 12:10:26.50545127+01:00','2025-02-07 13:37:46.354928354+01:00',NULL,'100.64.0.65','fd7a:115c:a1e0::41');
INSERT INTO nodes VALUES(74,'mkey:a5a8194cef984a1cc2081212405c10c8cc1061d3d00e6aa7e1415c854e3ded72','nodekey:ca37a131e58c14ebec3a6e179549d7c8742a31b42ed0e6e52aed138ecc176907','discokey:8a4990c19c547da50875ad00613118d5382717652b4ef9897a1d1c060c40a976','laptop-71','node074',21,'cli',NULL,NULL,'2025-02-07 13:37:15.235404491+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["114.141.127.86:11858","[d05b:3c4f:8402:823f:409f:87b2:4dab:4959]:58420"]','2025-02-06 17:33:12.557302525+01:00','2025-02-07 13:37:15.238509319+01:00',NULL,'100.64.0.67','fd7a:115c:a1e0::43');
INSERT INTO nodes VALUES(75,'mkey:fb413a3831a1db1639197bf6eb887a913ff044346d9fc07eeadc50aa96ae196f','nodekey:763f78cdd841a2859c2a7e1b00129ed1a527e97afc193da93d864263fb048c0e','discokey:1c658f44f2e30f60cd35d6d730625710bb86ca1873f0cc55f6a08f0fc62bd814','srv-20','node075',9,'cli',NULL,NULL,'2025-02-07 13:37:39.952195811+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["147.221.39.105:29051","146.211.135.172:35153"]','2025-02-06 18:23:55.709687186+01:00','2025-02-07 13:37:39.95290257+01:00',NULL,'100.64.0.66','fd7a:115c:a1e0::42');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-02-06 17:43:41.935399542+01:00',NULL,'user021','','',NULL,'','');
INSERT INTO users VALUES(22,'2025-02-03 14:10:50.491924701+01:00','2025-02-03 14:10:50.491924701+01:00',NULL,'user022','','',NULL,'','');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,124 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli',NULL,NULL,'2025-02-21 16:47:31.967030967+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376","86.84.184.63:26062","[c187:a8:1181:8321:28ab:fe72:b0b8:8ec6]:41236"]','2023-05-17 19:38:13.531518257+02:00','2025-02-21 16:47:31.967134366+01:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:77e0289c8c37caae9d3d7b6c851db0beb9e47fc8854dbe2d5bb0d7a33d377c56','nodekey:7b550e852203d47984bce22eaca3a6a738e711869c79932b087b848cf33c8065','discokey:d1a6b93cedd0e850997eeb0ff84be2d169d15b8b29192dffbf49dea812d50874','web-87','node002',1,'cli',NULL,NULL,'2025-02-25 18:07:33.299494262+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["149.96.226.131:35537","84.23.188.83:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680","86.50.30.30:18216","[fdbe:7908:805e:6c8f:47c2:2c87:b1c4:44]:48470","188.237.187.170:7622"]','2023-05-18 10:09:21.757289398+02:00','2025-02-25 18:07:33.299970499+01:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:538f91fe9e485697ce13f9444ee0dadf2aaaed712fdfa03ba102113c6505db37','nodekey:1936bdc567d6758b11b2cc06ea7ff74bb933a44421fb17323965d5a402e39783','discokey:e8b762a384d644175f3b4e4fd36867b2c435e03eb0bf6b9e7ebd4f0ce83c13ef','lt-57','node003',3,'authkey','[]',1,'2025-02-14 06:23:29.821940467+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f6d5:e904:28e7:a5a4:12a3:96d8:9391:b22c]:37336","113.59.7.205:48432"]','2023-05-19 07:09:21.399903526+02:00','2025-02-14 06:23:29.828817276+01:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:12afa721b0310fd9cf7501a19e5f23a2d33c87f989a9b0233bc09e8eb9e5eaa2','nodekey:83e8f99465cfd0ef79190bfb341bb742b39d9ddd7cfeab237153b58858a2fed2','discokey:d4fdc314c7b73e21589efef171f10158379ade1adbdc281482a62c6c20fc2ed8','lt-50','node004',4,'cli',NULL,NULL,'2025-02-25 18:57:43.626901249+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8105:c5c2:647f:e97e:85b7:577b:20b0:e4f]:16947","1.79.159.39:34092"]','2023-06-10 09:31:51.940506933+02:00','2025-02-25 18:57:43.62738857+01:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:517d332699122618020754ebd6b7aa342136392cbb3186a181c32bad87cfa666','nodekey:ab36644fc8e56ce3816124f4e51be0a2e74505b0b6669ec7dac0001ec3774bf5','discokey:f1413ef26f1c11540e6d0b3f8ae7124e8b2eeffc9a330016cab23036f5b4fcf6','srv-15','node005',4,'cli',NULL,NULL,'2025-02-25 18:54:08.745255864+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["66.84.158.199:63451","47.94.115.240:6677","19.74.30.92:1284","213.110.62.40:49373","222.60.90.114:9445"]','2023-06-11 13:56:42.694329408+02:00','2025-02-25 18:54:08.745544477+01:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:cc260b25fa19bf6d04469bdd96eab67578ec80bb0f2c4e3c4e188050951f8ff4','nodekey:d2730f52d9efa38cc46e37ba658c8bc6df42a4dac4b4fa3a9cc7f284cc1a17a0','discokey:665b19ab4efaa1bdbe9cf27d21a57be739c2713ac442f6342cfc988e410d66e3','web-56','node006',4,'cli',NULL,NULL,'2025-02-25 18:56:58.143735821+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fece:76ed:4c23:1e89:f225:97a1:94be:b5c4]:33472","[e1e6:a14:535a:668b:698:f125:543f:b5b7]:31740","[b8e3:18de:5ece:3e24:8bbf:1cbd:d27c:7de]:53522","[e65d:59b5:f599:8596:2bc9:56b7:820a:8c12]:12277","[8ddd:4aae:2b94:4c1a:d05f:65d2:2bdb:b400]:42839"]','2023-06-11 13:57:44.975695604+02:00','2025-02-25 18:56:58.144115128+01:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:b1d6228a1bad37f4e8491772fe83a3e7e4832fb93f8a7aeef1fe97a1a1ec6ee0','nodekey:f352383d311b4f323d0a5ae82c06ac24230a6a98671f00b09a2300c6d7413b36','discokey:92304c75e1c7d328f4445ac6f278f66244f11b66ac6e89060b498b0fe122f096','desktop-85','node007',4,'cli',NULL,NULL,'2025-02-25 18:57:34.843267809+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2e31:d5e9:a2fb:d204:f840:3746:7248:ba38]:62726","[cbb6:53d4:54ce:cd07:cef3:87ea:7ebe:e5a3]:12262","[bb94:d03c:901b:a7d6:d7d:955d:7df4:1c2a]:24266","[489b:6c59:1877:6215:ddc8:57f8:78dc:321c]:3025","77.213.161.20:47662","[adea:86d3:b312:f445:d835:6023:f1f:f928]:27483"]','2023-06-11 14:16:56.951313537+02:00','2025-02-25 18:57:34.843605919+01:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:1ec07ddb5eefc8bf45fc902699a9b656dc6c4be81224aff81ef4b14990f02b76','nodekey:f2ad6282c57e4ac666137b69e68805d137e0d002eb05f6173a76b38965b5a877','discokey:6bcc988157ed256c25d0487285b8bd02379ece8f0292608f80f4e4ccfaeca269','desktop-82','node008',5,'cli',NULL,NULL,'2025-02-25 18:58:08.246285374+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["31.85.36.236:46674","[80ab:9956:c1bc:b242:cd97:6bb:52e3:10fb]:47368","[4ddb:3188:c8f2:6122:e983:bf33:d2d4:74bf]:25781"]','2023-06-11 19:59:30.401970393+02:00','2025-02-25 18:58:08.24660639+01:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:f436d5d56dca10e95dac89d2d2b10629a7d1888543378d56d6a66c4ed5e8acbd','nodekey:200327faa3d157c1ab859e71a27bfd52642b863352a219146e7fcae245b0b35f','discokey:08d0b384d256d12f19297672b41d62b87174af0b8332602760dd6615f8ceb796','db-78','node009',6,'cli',NULL,NULL,'2025-02-11 14:57:51.798862802+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f78c:8abc:854e:670e:1d14:fb13:d0a0:ad7a]:33635","41.172.94.101:32111"]','2023-06-17 19:40:45.468789461+02:00','2025-02-11 14:57:53.417438918+01:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:628fa7eba9bc1474eeb62eedf4e6b7e5b970a3acaeb2e020f4de7bd2aad547ef','nodekey:c105625e67654c70809a72beddc9ab34e7da931e4e7b72784c5d2781acbfb9c6','discokey:0d7060f2779a56c357749e61ba7b1cbd03a0d0d8397c9989c54087e1a80b5224','web-49','node010',6,'cli',NULL,NULL,'2025-02-25 18:16:38.447549074+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[69bc:fe73:f6c7:31b2:bc4f:1a95:4676:201d]:4806","[d794:c918:b0e8:6023:d7cd:709:79eb:23f7]:56801","113.147.88.203:61138","22.207.212.228:27547","[2c3e:2260:8c34:275:2287:b721:1bdb:d462]:59540"]','2023-06-20 11:18:35.905417341+02:00','2025-02-25 18:16:38.448089273+01:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:4d2ff8526b10e056a5d073d5640fd28002ca21b561c55407175712a98e37ada7','nodekey:a1835798e4fefbece3000abb9afdd3cb01e5a4eebafc1218ed627cde2175c1f1','discokey:24b8f6da3ef9e024e273918de8869fdfebc45f789d14c4a50a592cc27259f1c1','db-64','node011',7,'cli',NULL,NULL,'2025-02-25 16:12:02.791603536+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f1ba:2aea:9e9e:2802:ebb9:ba04:a564:7998]:52919","[ede2:462a:f99c:24c3:b1b5:8b97:abe2:3ddb]:65141","[dfe7:6f6b:a382:4fc:a3f6:eb9:9ebc:5798]:1474","56.63.78.181:15200"]','2023-06-20 11:35:15.063855316+02:00','2025-02-25 16:12:02.791828881+01:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:80fb6f55cbac10695c455ecd74fdd59ae5e804ef27a53085450e713eb6afc4ad','nodekey:8b94382fa21050586620d8a5ee69649c9e854b3dfe06f1341e85768a0f6a1185','discokey:27c408f43b0d0857a1897d995513d907107d8e6f04c6a3bc5826d066324f2303','email-92','node012',5,'cli',NULL,NULL,'2025-02-25 18:57:33.682368055+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[743f:8ead:64df:d533:ccdd:f29a:254:97ee]:41637","[f780:17d4:440b:f400:cb10:dc8d:5698:e318]:37997","33.51.84.119:46756"]','2023-06-20 18:22:35.061914624+02:00','2025-02-25 18:57:33.682775689+01:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:f11332335d9f1f9d4bfc8cf9bf4edc0c958d4e4364b7dcde3c67d847f7d05edb','nodekey:e97d97a2751ef3533818907c9f24acf3270e3824f2294bb9a36d60ca196e161e','discokey:412b0eee00b68721d9169fc81039b9cda6cf57143e4cae8f7c417db15b83411a','web-18','node018',9,'cli',NULL,NULL,'2025-02-25 14:45:50.465939403+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2acf:3f32:1763:5d21:88a:4af:8779:1b1d]:36283","84.177.251.38:32968","[3138:83c6:ae09:a073:7888:71e0:494:3863]:59700","191.156.96.176:5489"]','2023-06-22 08:30:54.08720463+02:00','2025-02-25 14:45:50.466242342+01:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(20,'mkey:157706346bfe3502b6e24a84efa59b1a151be08f5a260ff96c72a734c1da1390','nodekey:139a99de286f52c55bdd61e932827c9d7cb84101a698df3576bdffbeedbf654d','discokey:293abc1a1cf2921e7961f5753cc39097956648bab47879791afb12ea03a4e6dd','lt-42','node020',11,'cli',NULL,NULL,'2025-02-24 19:54:14.700663055+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ce0f:9f05:96dc:a47d:edcd:1c25:f578:7551]:30363","[cc06:9c56:919a:2341:4ef7:7f28:c8ca:2a5c]:30788","[7b81:52eb:f4e9:e74d:905:79d4:67b1:d359]:13795","81.17.18.155:10091"]','2023-07-10 12:40:34.838579199+02:00','2025-02-24 19:54:14.700825212+01:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:8bc474d6d0d812ab011b7748675802bd9d4af70c2edab0da6c682a0cf1ca34f8','nodekey:2cb4a0ab98e83dafb20621dcfec33cd5fa7fa99b97998546cb6796249bdba88a','discokey:e341e99f352acb61779807aea844516d7e9e220c58699f09232bcee105e88797','lt-43','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["63.3.67.150:22907","[77ac:562:7c4c:438a:6ec:be48:743d:47b1]:11349","[33cd:731c:f110:9b45:66b5:de81:1daa:757f]:5997","[d618:5830:8a37:fbe4:3b37:a35c:fad9:11d1]:57112"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:170eb5e825f19f37d8e8747d888a79962d96acab073459e889d64d906e9a4a7f','nodekey:722321c00084d0152c13e34375b006f3ff2b95507685d13aa2df04093561df8b','discokey:c0463a2785b1741b3ce35422310ccd59f55edee22f5b64fdada2a95abfd0ae74','laptop-89','node022',6,'cli',NULL,NULL,'2025-02-13 18:41:19.151025389+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["194.185.67.128:22758","[722e:3c42:d444:e150:3b32:135c:68:80fa]:3684","132.110.176.16:63801","168.165.127.136:13273"]','2023-08-05 12:08:48.132161695+02:00','2025-02-13 18:41:19.151860126+01:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:0ac434671e1b07546381d5dd36d4e04dbf7a098f226d7173e4b7e766c18283f2','nodekey:dc35ef6da42fbb0f4b90e5cf935b0012ab62fa61016b17d8a3a24240004fa3b4','discokey:5f7118e434c174dbac710b1d088db6213ca894ca3912a92688110ed5f96eb37d','laptop-54','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["146.144.83.178:46323","1.236.14.11:13477","184.41.32.72:1026","[f136:8b69:185a:7ec7:94a1:ca58:5d95:ba9f]:21119","51.158.48.68:23441"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:27effcc5ab9b8bc295f0a76a09e753e7bb6b0c4c33343f59635494e1d717c82c','nodekey:c663007fc1b770065de8303e6bcd9ad7184c345795625591c3e0fe8304b6c29f','discokey:0de43076bf8295b5281d848e1515c304e3f541d5b10b9160fea430a6272ab160','desktop-77','node024',12,'cli',NULL,NULL,'2025-02-25 14:31:30.623705545+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2b5d:522b:8ced:49a8:d0dc:bc0a:81ba:7f84]:30767","212.18.227.41:50735","[f774:e89b:980f:975d:fd3e:93f:a9b5:2034]:46054","[7225:d0ce:d29a:59d8:f596:b945:9a02:29ed]:43419","[5a76:d5b0:b51d:6b56:afaa:3968:277b:192c]:19250"]','2023-12-15 11:14:36.765183054+01:00','2025-02-25 14:31:30.623800675+01:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:247cad9ffd7d108f553e7658db14bbad992332458abb9b4bc5a0c0d3a13ead9f','nodekey:bbfb569ac8a34cf4d59d2bc13d0f03660d24aedf22c61b56510a65d20bdf0812','discokey:61f92520602549b9bc684eeed3186f608a38e13794d06d4b8d165c4efbb69a24','laptop-29','node025',6,'cli',NULL,NULL,'2025-02-25 18:56:13.569853699+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597","[320d:6314:eaa2:a098:8594:977d:27b:8442]:12827","163.235.127.125:61230"]','2024-01-05 17:32:40.940566279+01:00','2025-02-25 18:56:13.57010639+01:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:d623495ccdc12a3f219322cf53458a85c29b8795ceff5cef5338bb9c26e329dc','nodekey:781ad44c939f14168ec1c22c3fa2c5422f5ff1a5b0fc163fa80e6ace4e20c4a2','discokey:c474b4d7b9883e70466b6240b885a2a71dbe6efb0e8c84b85277beb584f25690','email-47','node026',6,'cli',NULL,NULL,'2025-02-25 18:57:44.753081033+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["173.144.3.182:33138","[975a:978:5cfb:5e5a:1b6:d272:a1c1:50dd]:3245","[e6e4:7cfc:9ce:b47:62f5:b64e:d2e4:9015]:42369","[26c6:541b:69af:974a:8ea8:6bd0:7c4d:5a82]:10571","[c898:1525:ebe8:704a:243b:de9d:b8c:ea69]:22747","32.167.123.100:57075","[2c67:a9f3:3163:c675:3386:2447:1cc:ed3a]:42590","64.137.67.1:56198","163.42.128.241:47535","49.160.22.202:42427"]','2024-01-05 17:34:19.811670479+01:00','2025-02-25 18:57:44.753480656+01:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:dc2bfab4553c0294e57f034001e3d575413ee8b0622e788050341c29b702f8e0','nodekey:9fd699021ab41ed4911faade849d0d702debfa1ef735a60eff8c1cae87b820c3','discokey:dc9c5f140c9ab0afaf55756f956a5fb53466ac0480c395aed0a4b481cc775679','srv-61','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a542:b648:e2d9:5461:2ac4:6b34:77a8:ff65]:55609","106.52.35.144:41091","[537d:7a83:c891:ac8:9460:e49:e769:988b]:55062","50.23.199.223:4814","[a2b8:ea55:f9e3:2c00:f423:8c56:7fec:c617]:53793","[ed88:2277:3c9a:4f64:a25e:5b41:a3ca:e904]:27852"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:08347db9fbe8e5e7a968c2ab9ddd1ff530ea98163c0bab7769316307545f4d46','nodekey:b6b03efd7deb52dbe0298708ea37400510ab7589b0b1787eac1a5f9b50aa7c80','discokey:6a0ab2f3329d9fe5f50c76f9f3f1d2e797574af93d823a511df57f45414f647e','srv-42','node028',7,'cli',NULL,NULL,'2025-02-25 17:11:29.962245449+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["42.99.149.47:5231","146.122.164.252:36824","16.15.205.75:58574","82.136.149.34:28707"]','2024-01-15 09:34:54.847632697+01:00','2025-02-25 17:11:29.962361262+01:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:4a6e46330ccd4b3026337cdef37485c27592babda329107565c2a19d97253dcc','nodekey:17de47da1955a8a034788ae671c34fb10083568bf9e2f7494276cb2636065246','discokey:449f5f35a3507974cf03e3ac5c055d890de5122f57a7c2d84a0d3b324998607e','desktop-17','node029',7,'cli',NULL,NULL,'2025-02-11 14:54:59.936098654+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c2f1:82ab:922a:9b9d:f53d:a0b3:bccd:f6af]:299","[d28b:7b33:1f88:7583:7ed7:a923:4c90:9ee0]:62318","[68e3:a070:f02c:708c:a057:b579:aee9:4d25]:11747","[7224:b76a:cd04:e6d2:67fd:fec0:2f14:1837]:29002","173.82.71.57:3159"]','2024-01-15 15:18:12.2871978+01:00','2025-02-11 14:54:59.936147608+01:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:26f1059c45c12a8e56cd57ba6db33dfe104eac76103327af49622cb7810fab7d','nodekey:b157bbdc37aa4634b8d69d6fbc7670780fff69337713176a11f893afafa2a9bc','discokey:4c8c175d0e61ca8f7b2de92a1033cb9be95eaeaf09e9395c767afa5afdf2d9b5','desktop-64','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8a1a:5c17:bb81:bb69:c7db:3513:f14c:ca2d]:52077","123.235.220.59:59925","155.210.184.45:60093","[963:536a:33e9:99fb:c204:d59c:29a8:ac18]:39005","[e84c:35c4:4bd9:a100:c271:8921:ca7:5901]:21828"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:ef048095dd3e937a8617f18797ed42d2c4513d07126dc419a466f257982113d1','nodekey:1c6c367df9b85ab5e1618c70c0a4f8b22e2eeea77523b40059c3ebfef0f4057f','discokey:80fb63a98202437504c700e582eddf800b02dc654577bb95796c60cdf1176793','lt-55','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[cc02:5592:3738:a2ab:8c55:97bf:a5b8:24e6]:41616","129.130.98.189:47833","[99c0:d769:2f38:10e9:c01a:e3d:898e:afc]:17505","[3423:afbf:aa2:e156:81df:bbd3:412a:df65]:5125"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:5b0e391e12914bcbcc6b415d9dd72937d74f9ce92a22c6ec938eb749962ee6ce','nodekey:4fa73acfb54cb140dad6b02bc853f6360f5ed160f819dc57701ad9a4caae9782','discokey:d3e90723a3b90eea513e7710ccaf25f68c0a2d60a85e3d4b9e4385335fddf8e9','srv-15','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[14bd:ee53:6776:c1c0:124a:efbf:38cc:b312]:62180","85.234.248.186:20429"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:ba179b51f3540e619eaac9a6d4bc67403daa7c3cf28a6b579087cd6d284501b4','nodekey:246fadfe2a3606f043aca1fc1fa31b79e9eef9c21ec67e72425e05576707b3c6','discokey:5c64c1a08b88425b6e1e2971f950708d38f951d2d5eed2b85df8dd7d1bb88a44','desktop-32','node033',13,'cli',NULL,NULL,'2025-02-25 00:23:14.381890489+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["106.67.113.92:45634","85.199.78.110:6716","[bc29:715c:cdce:f1f6:8630:4929:ea1e:5c03]:10918","[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624"]','2024-02-03 16:33:26.706408143+01:00','2025-02-25 00:23:14.38239676+01:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:6fe02bbbdd40bb09e8aa74cf66b40b5b94f227690fd804a33242f56e18bee64e','nodekey:acc333e66d45e660ff4a31a152340d391547ebef1056f5f046624b629389bfd3','discokey:cf4a1217f85585d74fc5138af6ed9b78a29a9d4f12ad2e1beac660816d8c7b3f','lt-74','node034',13,'cli',NULL,NULL,'2025-02-25 16:49:04.386505728+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[1092:57ce:a60b:141d:ba79:79a3:91ed:66b8]:11037","[f766:14e5:6acc:ba40:8b28:59b7:ef7f:cd51]:46293","[c:e6fc:18ea:2e45:6bef:c1c1:f84e:b1e2]:62296"]','2024-02-03 16:42:32.683785672+01:00','2025-02-25 16:49:04.386771772+01:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:f95240eb788522b37f5513f0253f8bdab2ccf7594ffbf9bb77945fd67e598c05','nodekey:f5a6f47f5a34b4f4c6883e46fb52c0a5f7ca2ce17397cbba751efa8736e0066d','discokey:4dc728a0c0de0ce87530a47dda426d5bf6ad1b2f6cdefcc819c29c1015c3131e','web-44','node035',5,'cli',NULL,NULL,'2025-02-18 17:59:56.043915212+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["136.113.252.147:325","139.180.210.231:32286","171.29.58.211:2336"]','2024-02-03 16:51:52.010016072+01:00','2025-02-18 17:59:56.044175137+01:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:8ac09adfe44b8e60665601726c99627216e71b49ef7e8cc58ae6ba4f997c8652','nodekey:62d8af3310a7f27d84b931eaaa7ee110fe7fe46ea3ca8c817e47b9ce456c9b4a','discokey:bd31ae97729ac879d9b57866a69abb521248fb7fd5663d2149857d4dbf023d85','web-93','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7e9e:219a:507d:d3d:cc77:6195:7ce3:b30e]:25018","203.251.190.122:19081","49.144.40.103:7674","[a641:3f06:63bf:b716:4658:1e5b:ac6f:e14]:13490","197.206.147.31:58506","[b1e8:68a0:4017:a243:61d0:b303:7860:18e]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:c371756901cab84ae432a7d201e47232b008ef55effcf90341f24de7dfc55bb0','nodekey:0f858ae8a6492e1cc63fb502c6453ae90e8723f8b4ea8eba8c67f9f5114dec39','discokey:b6fc59b2a9ec7ddf1ae9573245cd3271259f964cdd730b811fabb019eccb3c81','db-47','node037',5,'cli',NULL,NULL,'2025-02-25 18:57:09.0895949+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8c2:c792:3329:2c93:f94b:a948:7d11:b9f2]:908","[5925:353c:bd9a:f42e:1916:45b4:c170:e515]:18400","[c2a5:cc2f:e2e8:573f:7b01:4aa:8a1a:fd71]:32146","193.82.125.68:38601","[e9da:1552:e478:f920:c3d6:ff41:9e86:e27e]:48481","[c31d:dd18:321:589:11fa:d85b:695f:1fca]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846"]','2024-02-27 12:14:40.452601042+01:00','2025-02-25 18:57:09.090070104+01:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:86d359e5681ac6a642788f26d2dfa71c65883af4a1af67a290d46fc3861b221d','nodekey:33aa0fc0fb105997472a1e1024710288ec481753149da6c50d79c9d3c59bef0a','discokey:79d066251321d58c1359edfc9b774b33b2dc46797aeb5b70ee3dc9f1be415a42','web-20','node038',6,'cli',NULL,NULL,'2025-02-25 16:11:28.263125427+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["99.62.182.69:45368","41.96.84.44:45622","[a81d:f0ad:7a29:65e6:2d93:238e:99a2:eb30]:50585"]','2024-05-22 08:08:16.045350656+02:00','2025-02-25 16:11:28.291976461+01:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:10e4ff66fdd37fb54f6dcb0e42f483a15b6340610acc3a4517c24f0f350b5a9a','nodekey:f20786f9c7edc967d0b415bbcce39468441af3b531ff15656c0683d3f328720a','discokey:4e1247022b7ddf4b30d00043fded8b0132f598feeb77dd34d2fc32f97a1d2c2a','lt-05','node042',14,'cli',NULL,NULL,'2025-02-14 10:43:03.67095554+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a393:f17f:6728:82e4:c1e7:2367:82d0:daaf]:18560","[d192:9897:4cd7:bfb5:de36:fc03:8cf4:c60d]:25096","212.199.67.213:11150"]','2024-07-03 11:12:29.418355657+02:00','2025-02-14 10:43:03.671476921+01:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:33e764ae40265089c5e7dbfc8571aa23bb390fc7e1e8bd2f3e0cd6891c308214','nodekey:c444c9ff652ba29181a5f7fdf991f91f704e6698237ee18b0649c81879ec932f','discokey:2e1db3a1eea266673acf7826aa44b5aa6fdd23c6ba41330562b37c5a523ba358','laptop-81','node043',14,'cli',NULL,NULL,'2025-02-23 16:43:04.441516493+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["190.179.215.222:61930","45.131.187.230:22916","[510f:af99:ed4d:f53a:fc21:8640:9ad9:4930]:16050","[5ea4:3410:eaa2:9da:b8d:b61a:2d9d:edaa]:3526","209.107.206.184:46974"]','2024-07-03 14:48:50.263910778+02:00','2025-02-23 16:43:04.441841303+01:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:1099debb0ba187ef1f43f001c75abc118eaf017bf3bd6b48ca333fb046b98de9','nodekey:d49ef9ad4a7ecbdabcd24cae92d9ac32fbb765467cbc20abe61b4bda6ef15f1f','discokey:9f2faf39514eccb7f3d7d66ebcaf804474f75284d8b1aedbf97aee6ccdf47ed5','laptop-84','node044',14,'cli',NULL,NULL,'2025-02-11 14:57:51.787233089+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274","[e5df:1889:6ac5:7d21:4dfd:614b:7eb9:d93c]:792","119.123.40.237:58615","[415:97d8:4ecb:2a7d:14ae:64f3:7a01:471f]:15771"]','2024-07-03 15:23:48.066044194+02:00','2025-02-11 14:57:51.796185225+01:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:29eedea8083105a21470a51112b2486ae4c79221e2b6b17e4c3c84f965013513','nodekey:b3249157ebc705f134a366e28beb2d7646a40bc4171bb6d6fece1e750c85379b','discokey:64cb6eaee39eca7e3ad7f1225c216bf2826a8a951b91a631cfacf3b5ec99c2db','web-31','node045',14,'cli',NULL,NULL,'2025-02-11 14:57:51.802536554+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["14.153.231.75:19825","[acd8:3779:7b6c:3a71:c15a:e323:a721:c9a7]:63377","[6816:3377:edb0:3f8e:a65b:bd60:461b:ceb]:24642","147.3.7.139:46940","[7526:4960:73a9:911a:1fbf:92bf:1219:a6bf]:25440","[360:d312:e59c:79e0:a7e4:2295:caa0:946e]:17493"]','2024-07-03 15:54:01.706018896+02:00','2025-02-11 14:57:51.804667794+01:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:05f627f2614a4b7cf260a96650b0c5c62fcbfa993480253fd89771ad3b16ca2f','nodekey:678b922f6004223f9163155c62b8877ca663b1ecb3327b2c64453527f9c0f6a1','discokey:b77917efffd1020f1b03202e74265e308bc18a12e863bb04b94aa814cbc8e9bc','web-60','node046',14,'cli',NULL,NULL,'2025-02-11 14:57:51.964197644+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[89d4:f6c6:ccf6:b19d:3b76:642e:7a36:d229]:930","[ea0e:83e6:309f:c748:3314:72ba:996c:bfdd]:40599","136.29.193.173:47997","6.170.76.62:28497","[5cff:a345:4885:7b07:98a4:bcfb:f622:b94d]:58641"]','2024-07-03 19:38:07.783745318+02:00','2025-02-11 14:57:52.805260039+01:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:bed87b73eea00bf3d74184d911253df54cc7697f2dd023cfd836b801efd82518','nodekey:2146154fd3fb48377f6bf4cbf08f555008471b493a90a0614e5ecf76c338bc99','discokey:c3ea2fb606807d06b1ed3e10219fee70456d1db0208d2e73a081a258992e4316','lt-41','node047',14,'cli',NULL,NULL,'2025-02-11 14:57:51.975754077+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["83.69.120.197:25918","[3f3a:e533:53b0:bf90:95bb:fe47:d61:516b]:2433"]','2024-07-04 10:38:08.344092869+02:00','2025-02-11 14:57:52.006716436+01:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:8fede09a569258fc0fd7ebfbd12b2b4e8c2f4ce95c43ab0d89e41ab3998e6d24','nodekey:63af6498d4fb0e1e8312e3ec6a1639b178c051a271f33f213324e3ac1af53e17','discokey:a1e793aa09c20360cb4ef57e7dc42171a0abbc9f562140609e930ba5b7b12e83','email-92','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[33c0:859c:4a78:8bdb:359e:31e4:1e71:7e39]:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486","22.83.180.41:14147","26.126.135.206:7777","[8706:d109:5006:f832:dca7:58e4:4451:be15]:15180","177.4.27.29:60895"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:13b8d4cafbdb8e9ab77928219aa57bf778878866ad8e6108b60aaab8dc8cec36','nodekey:17cefd68f8a9cc20b3d4fd93598f77ddfd6bd5a7e6e4b49861f9faad8623e0ef','discokey:939a04ddd2f9a24468e07ee7924dbb7a7662c1e8a1b67426f57fd48c7394448b','desktop-40','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438","129.0.5.112:19015","[91e2:54c6:93fb:ec32:6ab4:186d:81cb:b815]:37323"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:03979d5446bb3f596bf0234d81ca84482eacb132e874ceda6cc2703422cd728c','nodekey:805c03cada525f14ee90d28ea02b23a3f57b470c793314872ad9daacf6c6484e','discokey:eb4135e1cc73a3c6b513d8cc04ca0c55a2aef7b0009845fa1d2036488aadf0f8','desktop-02','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9175:498d:64ac:4342:2eac:ffa1:99fd:d109]:21202","[5cba:56ef:db08:320c:333a:541f:605c:44d5]:57469","150.211.2.236:50360","203.180.122.83:13344","63.162.234.32:11653","[6b63:f552:f930:e22c:fc42:3b41:c5c6:6d5f]:63162","114.48.12.185:47837","[2964:cc5d:3a1b:7889:acc8:4d8:22c1:398a]:43515"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:5877139c52c0bf3c0fd054bd046aaf4530dd8946548a7bc1a06733649d1557d8','nodekey:553d9638c8c455e8d1bc811ea3af03db1eb3c586413447c8003e7d905a61d06c','discokey:1da883c9eff402d786362aaac2f478c835308b3acec0993e6293becf4474609f','web-62','node051',14,'cli',NULL,NULL,'2025-02-11 14:57:46.210281474+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["86.215.174.228:26026","93.101.159.155:64005"]','2024-08-07 14:19:31.156780417+02:00','2025-02-11 14:57:46.210762678+01:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:0e64072dafa5f9e49266b41fc4b21ff7d287be8f4e5f2b6c395487d632f1cf3f','nodekey:2f77bb8cbeb426bcded5ad9fc6da44b0b76b8d6759f10a8db28e634290760ee7','discokey:836558738056edd1fa8d190c7e42f120b365a48a3b1f1c96c87755bb82d7ad0f','desktop-07','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d889:f751:710:257f:977f:5597:9908:14e0]:61162","[f83a:5ebb:911d:ef36:743c:8086:8a4c:a5c7]:23538","[dc45:365c:e426:71d7:fe23:fdd4:d2c2:9409]:57262"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:a6f93e99a5019b3b6a2941d95dc7fcbfea5a59317a48b99db93b7a3f4f0a65bb','nodekey:1f78a6d76ea4a2135c0da46b202560c86ed30cd7e8239d4508088d0e02ffb961','discokey:1744062452f052aba5320e37fc08aaa37f1430db7c32c94c5626f0f3c858de3d','desktop-82','node053',17,'cli',NULL,NULL,'2025-02-25 17:34:21.764621261+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694","[156b:e934:d171:2693:8db4:f193:a58c:17b6]:24190","79.255.179.99:56057","[6369:4412:8cfc:2a5e:7cfb:8b45:e2ac:f98a]:16090","23.0.29.75:24889","[ab0:1193:7bb7:4a4a:c036:b911:994f:3aa4]:5116","[9491:7bd5:3979:414a:d198:a8b:f2e7:29b4]:62795"]','2024-10-28 10:04:50.084492941+01:00','2025-02-25 17:34:21.856390854+01:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:a6e3c45c81dbefdd09389920767df65c30bc7ff1396806623e7f8e1938b6fcac','nodekey:22e4ac4e25b05db4e94b5211e08ed14d983972f92e192f15e0231ff355fd46bf','discokey:225f907deaffccb674416dc4ba532f0b20304e86d57808eef2d96f15211f2309','db-52','node054',14,'cli',NULL,NULL,'2025-02-11 14:57:51.780134436+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ecbc:a9b6:cbb7:695b:62ad:27cb:36f0:2380]:27992","135.238.213.41:64084"]','2024-12-09 17:10:55.363593066+01:00','2025-02-11 14:57:51.783335437+01:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:ad967c824d2c235ed17b1437f6756d4354ad76a2d27b575c0257ecac9a3a5fd2','nodekey:6196332e325e3f1d0c58acb182b48b070340dd673247c616a28d60a7669f5a4a','discokey:3a67fc6fdb9288679886c2d45dba4d1e1ba014af2c48f0f942acd39ef0e0ee64','email-56','node055',18,'cli',NULL,NULL,'2025-02-18 13:56:36.97652271+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["122.41.198.69:28824","[5437:6f4:94c1:c6c1:43ce:7a41:e5c2:65d0]:57161"]','2024-12-10 13:56:39.287449662+01:00','2025-02-18 13:56:36.978076326+01:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:3d9e1a7fc884de338b8391bbc5d3398c7d0ec4c36388b756df5b2304b727fa11','nodekey:9cd5d41c04ae83ade43363dd165c792cbc5386e0d3e005311ca7c79ae7f7acaf','discokey:2d6fad1f43bc97a6d48bcd400c829db2d4f47291b12a59dcbe669d8b1d341c1b','srv-70','node056',19,'cli',NULL,NULL,'2025-02-25 18:57:39.407869706+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a34b:36c0:9f18:1062:2269:92c:1c83:6ec6]:56902","[41e8:60a4:229:a09b:efd3:c73f:b885:d235]:39533"]','2024-12-17 14:58:39.429211911+01:00','2025-02-25 18:57:39.408317173+01:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:1025548b29dc9733e1099fbb6516778e9d8f07eeaa214cd1ef33438e731333eb','nodekey:3f21adc328130ab468ac28ee25b4002974610ddd7b11f586752dec5a151114b2','discokey:605115f1238609b148dff010ca6e04d7b337df4e2b88de7a1f900a2f1de7db42','laptop-79','node057',20,'cli',NULL,NULL,'2025-02-25 10:30:02.978978512+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a329:52fe:45d1:996e:4767:d50c:6513:92ac]:54604","80.29.45.84:8223","178.193.134.41:58563","29.219.180.224:55412","[2ddd:7c1b:a237:41c8:3baf:e9cc:1f31:9057]:62916"]','2024-12-17 15:17:14.26936913+01:00','2025-02-25 10:30:02.979071466+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:e2795aaa6a9a19aa8efe47496bd930d8ed32d5feacd49e903ebce90db20101dc','nodekey:1066fbdf7648099fbf06cd5b69e20e80c3422790caee0354e8465520329f7754','discokey:d00b560ef82f566c3171c1a313f25e65b7bc7a2eeb5146cb4c513bfbfe40fdf9','desktop-48','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["168.76.222.22:27595","[dc1f:57e3:7842:53ba:b427:8e40:6ebf:5b36]:4136","55.12.42.230:527"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
INSERT INTO nodes VALUES(59,'mkey:4de34c0ddff8819b97b39c2f31a2568db15e7c0ac6c1d75879b6c5247a5dd9a5','nodekey:13565579616a60409e411d5406b743f5dcf878da4aa82031350537d41038e09f','discokey:788fe7ffbb2b564852b1b9ec170a4267449c98b17ed51dcdce65942de712918b','lt-29','node059',21,'cli',NULL,NULL,'2025-02-16 03:40:04.156549179+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[32d2:d2f7:d5d2:8e10:507f:3428:b2a0:12b7]:22008","[c493:2a8f:6625:98c3:4f4a:db04:19cb:c7df]:41081","96.25.93.176:21890","219.197.124.83:46550"]','2025-01-29 11:59:27.291048957+01:00','2025-02-16 03:40:04.156814266+01:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36');
INSERT INTO nodes VALUES(60,'mkey:f04e27d229384590995331a3723f7a668443d5e638956102ab37df84529fff40','nodekey:49394e4605a507fd3a121abf6406645648b79c5f07f9f594fd8edc25eb94b04a','discokey:16256cfb6fdbae68d3ee7de3124887892d557512d5f86b5e9f3b4af036c1eb9a','db-54','node060',21,'cli',NULL,NULL,'2025-02-14 16:39:11.521346869+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["168.132.106.166:348","[ac:5c65:da8d:d68c:eb0d:3692:d441:5363]:63612","107.250.166.141:64587","[25cf:5511:50fc:e379:b64c:3a3:ff6f:104f]:22295"]','2025-01-29 12:01:57.48748166+01:00','2025-02-14 16:39:11.521680749+01:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37');
INSERT INTO nodes VALUES(61,'mkey:bdbef72c5f0e479a26353e2fe037cf6dd20719cb4d501f04a88a08571914307a','nodekey:fa24bcb6e340f6b8ea272a0d17ac7b5401e48d2fda056465326f2e1ac4695412','discokey:94ce18576693a7a51d39574aa5c81060355b8ae3f912c78515e525b5e31e5dae','web-59','node061',21,'cli',NULL,NULL,'2025-02-13 11:30:13.272216377+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["112.239.138.73:43954","174.168.204.29:5611","190.0.61.36:13730","33.70.223.181:46561"]','2025-01-29 12:03:01.464646336+01:00','2025-02-13 11:30:13.272621771+01:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38');
INSERT INTO nodes VALUES(62,'mkey:7d5ae8f0478c9a247bd1bb17d30ca742093c245c62ee324252337a170c6693a5','nodekey:9eff4972c9c5ed636f469b7869e5b5a9ffb7ec419d5316958631a72dd0da765b','discokey:124c71c581460affbc538c1c3efef93fa40e2170b4a4e3e08d81847bac150bed','laptop-08','node062',21,'cli',NULL,NULL,'2025-02-21 21:09:17.619738167+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[54b0:31b1:f5d1:bd45:5e99:3951:5dc4:45be]:33239","55.225.129.62:57985","28.93.179.45:19029"]','2025-01-29 19:23:14.092804852+01:00','2025-02-21 21:09:17.620347693+01:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39');
INSERT INTO nodes VALUES(63,'mkey:baeda24b92a15048f28b063ac4e3aa9ffa67b0bfd2a9ceb3b3005f6167e7c846','nodekey:9da3c4c71920a17c6476a51cc658c2d1e8ab167079cd0fab2215fa2e98675e03','discokey:c37813a5ff804ebfbd17ba3c3e030f97e5bacf4bf37c1829f1193b354657974c','web-17','node063',21,'cli',NULL,NULL,'2025-02-25 18:57:46.306411004+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["213.69.213.51:7048","[37a5:a9dd:8b9d:5014:b243:4f4f:6888:713e]:21123","223.252.160.61:32625"]','2025-01-29 19:41:40.535299057+01:00','2025-02-25 18:57:46.306748231+01:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a');
INSERT INTO nodes VALUES(64,'mkey:194758915fa3a0f4dc51d5c8809c8d34811a2ba691f8286e1281c8733b908ca0','nodekey:3edcebd1bbc810d5df8fe3217eebd41e209d8b62beb09912bd60fe3682006a2c','discokey:89d4a743b38f61254b01454fdaa89e7855966b1beffe363e86c28ce8ada66454','lt-49','node064',21,'cli',NULL,NULL,'2025-02-25 17:53:18.185882601+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["26.157.224.19:39567","54.120.201.209:5659","[1b62:c927:40b:7b50:6285:2eff:280f:4c8c]:58979"]','2025-01-30 18:18:57.519126133+01:00','2025-02-25 17:53:18.186491242+01:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b');
INSERT INTO nodes VALUES(65,'mkey:270533b0e4234eb9e697ee9e69403551dae192d4b3269a6810c4a0d2a6a55b6e','nodekey:d54cc8d3a12b77589e471e30b6ae4d803e58392b82aff1953974d722f8f1368d','discokey:e6c009756cf69ac7cdaea6c4a725c8766ec8e5a67be080a6ba2c6ed0fc5d7900','laptop-75','node065',21,'cli',NULL,NULL,'2025-02-25 18:58:05.70384565+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["197.205.147.181:38523","[5e11:9ab9:6805:dec0:99aa:65e6:d1fe:6e58]:45247","[34f8:19dc:cc84:1e6a:d280:ac0e:2dd9:6fe5]:39241"]','2025-01-30 18:19:40.354692307+01:00','2025-02-25 18:58:05.704297047+01:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c');
INSERT INTO nodes VALUES(66,'mkey:de86679045cb8624f1a83852679a58cffd9066814aa8994f4ac0a9213b83175f','nodekey:b62e575e38a00afe79418224f7b954210702ac0a6d450eb8dbf7b5720b1eb5a5','discokey:6492f53782aab503155db83aa2d3a9e7698382da589b8c078d7850373332734b','desktop-65','node066',21,'cli',NULL,NULL,'2025-02-25 18:24:57.136610701+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b84:67b1:28c5:14f:aab8:916c:582c:6917]:24462","51.182.13.145:25726","[3095:7c2f:3784:9955:ebbc:4382:662b:a218]:48812","[c771:8240:30ba:d472:9e15:10c8:b026:2654]:14619"]','2025-01-31 12:05:28.65297301+01:00','2025-02-25 18:24:57.136876179+01:00',NULL,'100.64.0.61','fd7a:115c:a1e0::3d');
INSERT INTO nodes VALUES(67,'mkey:259ea817a2c4d8a4c072db370e8c15ad9667331a63187285aaa4987b023b3e5f','nodekey:f743d054050f294bc1141b11924d8813401a650cc454e68dbfb20067f7d013af','discokey:aeb45bb93e68891487622a4274d9d2cfdbe795681e6f431075ad1aabb7ec1171','lt-70','node067',21,'cli',NULL,NULL,'2025-02-25 18:49:11.272283063+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b3d0:4706:73c5:9035:dd98:af39:b7f5:1311]:15037","[9356:40f8:a98c:a1a9:18e6:e781:f169:4277]:63375","[c733:e842:4621:e95d:6576:9ccf:b2c8:1582]:41668","[8f2:4995:746a:bc2c:84e9:95fa:b236:3c1f]:52788"]','2025-01-31 12:06:30.121464114+01:00','2025-02-25 18:49:11.272545005+01:00',NULL,'100.64.0.62','fd7a:115c:a1e0::3e');
INSERT INTO nodes VALUES(68,'mkey:87dacd4a5bad58d9676d8242fe304668201101da8843faf4991afa597adeeb2c','nodekey:bac278a5ad2db26a926acc26fd63948ba6bd59f251f7cb63189686ce6ab708a1','discokey:24a9b3c24f38b690ca357a9659d7694a2a4fc85da77fb1412eae653c644b3bd2','web-47','node068',22,'cli',NULL,NULL,'2025-02-25 17:56:50.63061982+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["171.134.254.145:45887","[29e:44c9:159f:6692:bdc0:de17:58cb:1908]:58971"]','2025-02-03 14:16:55.56431345+01:00','2025-02-25 17:56:50.630814975+01:00',NULL,'100.64.0.51','fd7a:115c:a1e0::33');
INSERT INTO nodes VALUES(69,'mkey:a3f039c16511f2b68bc8ab68a8d844c2f942aef9a277a1e2b1c3182c9f95b41d','nodekey:4cfd59f8b4bb7c82f7f7fba87ee21d2a0f32ce138d680591e8e0e47df3328ed5','discokey:38bae7e836bfd18b54cd4323709ae713fbd37d12c774cf19a8568bff1a410cb3','srv-80','node069',22,'cli',NULL,NULL,'2025-02-25 18:45:26.655373144+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f2d6:a8f1:727:d9e1:759:3a6c:6aed:d7ea]:22032","[3014:978:1762:1290:b92f:47f5:1dca:d0bf]:16383"]','2025-02-03 15:23:16.312084161+01:00','2025-02-25 18:45:26.655510978+01:00',NULL,'100.64.0.52','fd7a:115c:a1e0::34');
INSERT INTO nodes VALUES(70,'mkey:0b6c7fc5eea73e731daabee34180efedfe9feea3171ba9f64c45e913bd068910','nodekey:6c63bd3c0336e50cb895df6e1fb177d2e6ab7f8e59baac6f4d54a1708324248b','discokey:b594b1893b68cef8d9e8496797bad67eee207093fdb12a9dd08e0b53cb915791','db-86','node070',21,'cli',NULL,NULL,'2025-02-25 18:34:37.1756356+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["99.25.81.82:35202","52.120.18.3:13372","[dc9a:ed1e:f97d:b356:d5f5:5d44:c917:3077]:33994","[dac7:80d0:6b4:2620:3ae4:2936:23a2:eba9]:31156"]','2025-02-03 18:09:35.161109801+01:00','2025-02-25 18:34:37.176092039+01:00',NULL,'100.64.0.53','fd7a:115c:a1e0::35');
INSERT INTO nodes VALUES(71,'mkey:2251ba3534d7e20a28b1b2820ffd1a52a7cdcf60b1779a07d6c760aed6b3fc5b','nodekey:772af8901804b0da90941644bef50afbf67d0414226835865b7078383fc25272','discokey:fe85bbd953fe9294941fdb62ef965ff83bf7b646adec696db3bf889316cfc226','web-09','node071',21,'cli',NULL,NULL,'2025-02-25 01:29:06.614357209+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4d9e:563b:9e58:71a5:24ff:2612:7985:3f81]:20272","[2967:f7fc:b02a:7e75:6842:a146:56:dca1]:14923"]','2025-02-04 12:03:50.32663805+01:00','2025-02-25 01:29:06.674397902+01:00',NULL,'100.64.0.63','fd7a:115c:a1e0::3f');
INSERT INTO nodes VALUES(72,'mkey:b070570c4361b0e9ce2f3afc15c0280c1ccdbdb3cc77f46df24238984e0ec527','nodekey:1b7b5f34a954359091fb9c9f81ded16fb83c96aa793aa08dbfc8e043e9f5378b','discokey:3f7d2271e073c6d51bcaa49e6b040ab689dbf9cde108e1a82d0b3f30c4f2a6a5','db-60','node072',21,'cli',NULL,NULL,'2025-02-24 22:26:45.69683022+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["170.145.88.37:51085","[4556:deae:aed1:6442:1456:5897:f4:12b1]:18138"]','2025-02-04 12:07:36.231437299+01:00','2025-02-24 22:26:45.697080608+01:00',NULL,'100.64.0.64','fd7a:115c:a1e0::40');
INSERT INTO nodes VALUES(73,'mkey:0ec65946fc090054aa5164b3f5cd6f548dfc27b490025b1a190b93d69068c2e3','nodekey:37bda01462c321bf5c22d9f475325184aaff6d156964ef36d3f4638772db608e','discokey:9c15df2e2016b42d1c57c2ce1e3607786ecfcb4c3271991ea8e6abf28e1a1064','web-61','node073',21,'cli',NULL,NULL,'2025-02-24 20:16:59.20339999+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["20.112.75.120:15833","158.67.245.119:11948"]','2025-02-04 12:10:26.50545127+01:00','2025-02-24 20:16:59.203598225+01:00',NULL,'100.64.0.65','fd7a:115c:a1e0::41');
INSERT INTO nodes VALUES(74,'mkey:7352aa9afe2d3372cacf883c2fa2f9faee561f8dd567184909c6d1206156ac7c','nodekey:88b163165d7438eb768e100a617a3850f050f4b7f1a9d26f6a1c6c2cbab2a6df','discokey:a32aac3d9bad0a0557274da524523b2831914a5329307114c9c3abffa0899790','db-43','node074',21,'cli',NULL,NULL,'2025-02-25 17:40:44.888267238+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d05b:3c4f:8402:823f:409f:87b2:4dab:4959]:58420","130.243.34.21:50806","104.255.105.25:5817"]','2025-02-06 17:33:12.557302525+01:00','2025-02-25 17:40:44.88889439+01:00',NULL,'100.64.0.67','fd7a:115c:a1e0::43');
INSERT INTO nodes VALUES(75,'mkey:51f0f5c2b892846f926abf826f5ff56a52fc4a466be7a1073f16028ef2c6aabb','nodekey:0138c27376e8289255c1d505ba8e8d0e9e8e6785198b87984763531273d0c540','discokey:5bbb476ee437efaa55c10931313e35c4c8c6e30015e7f3eb015f4736897abb12','desktop-50','node075',9,'cli',NULL,NULL,'2025-02-25 08:20:55.11942837+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["57.247.45.203:47518","[1709:1d2d:9e92:a2c5:f5a0:fbca:6d9:dcbb]:31824"]','2025-02-06 18:23:55.709687186+01:00','2025-02-25 08:20:55.119891701+01:00',NULL,'100.64.0.66','fd7a:115c:a1e0::42');
INSERT INTO nodes VALUES(76,'mkey:e3ec4d021ea80bdca94d97bc70443b58b6f7c9fa382e4a2cd61b9397cdbefbb7','nodekey:60862d1848548d0816874d83c3d819dd8359869f24e4e0ca0b10ba98fae9aacd','discokey:5265333600c360986c74f93bda288a7adf25d8abb6b5174694dbfbc56e03d488','laptop-97','node076',21,'cli',NULL,NULL,'2025-02-24 22:26:45.695195612+01:00',NULL,'{"fake":"data"}','["140.129.39.90:29397","163.61.27.204:21704","208.72.71.10:23065","[5400:ad99:9af3:c69f:c044:7959:1cbd:d52d]:62818"]','2025-02-14 15:29:45.220999928+01:00','2025-02-24 22:26:45.695391477+01:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(77,'mkey:eacc877df3ab3cdbbe20b1784ebeda63fa5058b8dcf69215b7993219e4a9ea94','nodekey:0e46ba129c4fb18195868f1e3b7bb7ad91e882b5e5aeab040692b69036457b67','discokey:6b42741054b0235ac27e649163acff4f6f90e6cdd6c4e587c25cd2a6b9f35aec','lt-44','node077',23,'cli',NULL,NULL,'2025-02-23 16:44:05.007011804+01:00',NULL,'{"fake":"data"}','["[f8c:6efe:aade:2619:9aa8:378e:2365:1ab7]:58269","[de0b:ae5e:4986:c7a0:3d3a:e4f5:afe1:d7d5]:61468","174.113.53.229:41982","[de3:22e3:e882:aeaf:2f2:ca2d:a179:de48]:23754"]','2025-02-14 17:00:54.226657615+01:00','2025-02-23 16:44:05.007327971+01:00',NULL,'100.64.0.68','fd7a:115c:a1e0::44');
INSERT INTO nodes VALUES(78,'mkey:db77190826c814e219de0cd88d82298e7bf6d4fbb67ce8f00c0fd5c060fff85c','nodekey:73f0e887839e84b765d6186f97221d612d79595c119ff885682797991a02652c','discokey:74401b0dd1e1bfbbda82bf25fba18e15a89a30f4c1868cfb8ea81eb35ef4ae98','lt-27','node078',23,'cli',NULL,NULL,'2025-02-17 18:30:50.582229691+01:00',NULL,'{"fake":"data"}','["[5132:fd57:f2d8:8b61:470a:b25:60a6:48a6]:13595","208.34.222.79:35431","[e66d:c35:81d9:5ffd:4ad7:25c6:3ea2:a41f]:49279","[89f2:dc57:80ea:c56a:73b3:2563:1fd3:df17]:57048"]','2025-02-14 18:03:28.401774063+01:00','2025-02-17 18:30:50.635233842+01:00',NULL,'100.64.0.70','fd7a:115c:a1e0::46');
INSERT INTO nodes VALUES(79,'mkey:60cd68f2d9965be36441f2f639e5245d845b7fea90a9325938813fdedf751679','nodekey:783e5ff1eac899d0cb25f2539244aef4c4a46198a4ec8753afe89f00670e29e4','discokey:688d1fb7063cc3e59a7041e64de8d416ab6390f2739a50dcf06d529fd263d28f','desktop-70','node079',25,'cli',NULL,NULL,'2025-02-24 18:37:03.584752527+01:00',NULL,'{"fake":"data"}','["[1e10:11cc:fd29:4681:aaaa:fd21:a79c:bc3d]:57634","78.215.20.31:28892","4.11.131.129:50580","61.47.47.240:57553","107.46.106.255:64756","7.81.60.25:36846"]','2025-02-15 12:49:11.523904469+01:00','2025-02-24 18:37:03.584913585+01:00',NULL,'100.64.0.71','fd7a:115c:a1e0::47');
INSERT INTO nodes VALUES(80,'mkey:1de9a40ca190e9c6da65eecb16d3bb0574bf7757189115dc466299e08915c514','nodekey:de98e4358158b9231331934496db7fab148a8aac11248e4a17df0c4843c3a46a','discokey:cba115a9da4fa05b24b13e1180999612993a0eafb9728c3be13d50dd4458b95f','email-70','node080',23,'cli',NULL,NULL,'2025-02-21 18:58:38.982571563+01:00',NULL,'{"fake":"data"}','["156.169.142.128:42443","178.75.210.129:64679"]','2025-02-15 21:12:05.434304787+01:00','2025-02-21 18:58:38.983040117+01:00',NULL,'100.64.0.72','fd7a:115c:a1e0::48');
INSERT INTO nodes VALUES(81,'mkey:58cf6b62ae7bec2c13af7be13bca5edc03bd7a55d56ebdcb4a43b35adce5ff7c','nodekey:31d2dcb989bc02a1943ea12ad376f2f58cbab06e9761cb1bf4ef4024d310def9','discokey:68b0066f49c936d164f9595ddde2676815501a14bc6df2914cb34de8476acd57','srv-02','node081',23,'cli',NULL,NULL,'2025-02-17 16:28:36.502444963+01:00',NULL,'{"fake":"data"}','["42.226.40.62:27764","[bd66:349c:a29a:4c05:b3ab:dd92:749c:434e]:27566","69.37.34.188:32687","172.43.25.248:19211"]','2025-02-17 16:05:05.921277876+01:00','2025-02-17 16:28:36.502658351+01:00',NULL,'100.64.0.73','fd7a:115c:a1e0::49');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-02-06 17:43:41.935399542+01:00',NULL,'user021','','',NULL,'','');
INSERT INTO users VALUES(22,'2025-02-03 14:10:50.491924701+01:00','2025-02-03 14:10:50.491924701+01:00',NULL,'user022','','',NULL,'','');
INSERT INTO users VALUES(23,'2025-02-14 16:58:30.250289644+01:00','2025-02-14 16:58:30.250289644+01:00',NULL,'user023','','',NULL,'','');
INSERT INTO users VALUES(25,'2025-02-15 12:48:14.650995528+01:00','2025-02-15 12:48:14.650995528+01:00',NULL,'user025','','',NULL,'','');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,136 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:0ea01e8cd608548a171ebcedc16da73b25ec18d58861be7a6b4274eb17baf6ba','nodekey:0fcf591dc1997c1d7388a3835bd24dae48240e5b03b6a7f5f33b2e813d222bcf','discokey:ed27f0b3c04222f0d05bfbc6fb5787338275ed0e32fd42fe68c669aca0f3d7a4','desktop-54','node001',2,'cli',NULL,NULL,'2025-04-01 16:27:58.397462433+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376","86.84.184.63:26062"]','2023-05-17 19:38:13.531518257+02:00','2025-04-01 16:27:58.397628099+02:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1');
INSERT INTO nodes VALUES(2,'mkey:fa994293c516f7166a803edf260ec091b1638547f4ba78aaf0625a4d0cace0a5','nodekey:5b5bb489a68285591c97034325637a7767cea0051fcf19934dc694331137f459','discokey:1743557d49de33b01698e6eea7c6ce383010f3c6b20a56c39defdaccee9c5873','lt-98','node002',1,'cli',NULL,NULL,'2025-04-05 07:56:58.676183973+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["149.96.226.131:35537","84.23.188.83:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872","[3a86:865b:2f4c:f3b7:88a0:4aa2:f05d:c3fd]:47680"]','2023-05-18 10:09:21.757289398+02:00','2025-04-05 07:56:58.749180421+02:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2');
INSERT INTO nodes VALUES(3,'mkey:e44e45bd1656b97e8b328dc927ccab6cbce6c869992f70fb9c6031b980a1bf2b','nodekey:1497e461383f07b4f7cd7c76036b6fcabf23f46ac9f3651e22fd1f67eee22804','discokey:d84cef5408f6a40a7d789abbfdabd99edcd794e066894632f3cbb20d0e90a100','lt-24','node003',3,'authkey','[]',1,'2025-03-31 18:38:46.659409582+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["219.238.10.240:64443","[5e3d:ce1d:284e:9f89:155c:bff2:a65:d667]:51808"]','2023-05-19 07:09:21.399903526+02:00','2025-03-31 18:38:48.354115247+02:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3');
INSERT INTO nodes VALUES(4,'mkey:a2be538ff79403d577686c0ff675e1ec1b0da10902211d25ccf8adb58deaa6be','nodekey:69977d7f034a8ca09f0f08dc2d6410eb2b6f5fd343b6c88124ec37d6bcddb4d9','discokey:2a3fadbffba90bd0d74d432626a92d1ce1cf0297d4ad51cfd2011c4de7e198fa','db-36','node004',4,'cli',NULL,NULL,'2025-04-05 07:55:13.242501536+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8a81:30b8:5d50:73d7:9039:f2ce:c1be:a099]:43373","76.78.238.163:55069"]','2023-06-10 09:31:51.940506933+02:00','2025-04-05 07:55:13.243195188+02:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4');
INSERT INTO nodes VALUES(5,'mkey:d1533206380a3d91fe09ba9aca808b8caada2cb469e9065acdebab13f22a215f','nodekey:961c8e15bdb7e261c0d359f72256c218447c9c007032f102a418d07b0b829b1b','discokey:d6e4dec2b26039771350ddf132dadf1a5d8615608bd99461d267271e7b53269c','srv-09','node005',4,'cli',NULL,NULL,'2025-04-05 07:57:42.002738555+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b12e:af88:3c55:41f8:5fba:2aa3:3248:15c1]:23643","186.84.191.82:2621","[c9d0:4e15:513a:171b:9911:f9a0:cccf:cd83]:24151","66.84.158.199:63451","47.94.115.240:6677"]','2023-06-11 13:56:42.694329408+02:00','2025-04-05 07:57:42.003378098+02:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5');
INSERT INTO nodes VALUES(6,'mkey:4cf09b5d948c6492d0706b7972a9f46f03261dc73244cbd098653461c1426dab','nodekey:dd207345a8cdda46d50803658ab26c0fc7f28283217c6aa616a945885e92fca3','discokey:a0e6dfe46d6380aa0d131816dc0ea3287aad89196690b9bd91224f904816aa06','email-01','node006',4,'cli',NULL,NULL,'2025-04-05 07:56:59.056128983+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f739:43a6:4363:817e:34d9:3cc:1272:dba1]:26597","220.204.45.94:59135","187.96.173.136:34092","[fece:76ed:4c23:1e89:f225:97a1:94be:b5c4]:33472","[e1e6:a14:535a:668b:698:f125:543f:b5b7]:31740"]','2023-06-11 13:57:44.975695604+02:00','2025-04-05 07:56:59.0920878+02:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6');
INSERT INTO nodes VALUES(7,'mkey:5bbbd75488079eda04771e44ddf21c5866640024a947e66cfd3c3bafb19d3e11','nodekey:022306df92cac976efdd1dd5d4454d0e20eb46ac6f7b847dbcc382a399d1c97e','discokey:4980d19a6814405d26c40dee31a93a5f43e18b41f6f6f4908ee59066e04f8179','lt-67','node007',4,'cli',NULL,NULL,'2025-04-05 07:57:44.198576857+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8ddd:4aae:2b94:4c1a:d05f:65d2:2bdb:b400]:42839","[c493:a941:58b6:7634:6221:70ba:20e6:40c4]:35486","[9b54:61a6:c678:edac:956f:741e:5e2c:9ec9]:17930","[cd3f:af1c:fcb4:bcb3:806e:adf4:3f3f:ab36]:58513","[7a83:6a84:9f15:ba1a:9671:3d54:2e31:d5e9]:64893","167.223.65.194:6907"]','2023-06-11 14:16:56.951313537+02:00','2025-04-05 07:57:44.198934821+02:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7');
INSERT INTO nodes VALUES(8,'mkey:1abadbff7c8bdbe7a3104396c70068fa0a7aa30e405ef7d088738a8510877b39','nodekey:1251afbe69b3212ef1137c4bf2ef842409b8440d9ce32470ce4e8fb245480ccb','discokey:4a7b4155015d4cc2418ccb4005d3408b610c37b9f7bffdc625e2823f3e44514b','srv-71','node008',5,'cli',NULL,NULL,'2025-04-05 07:57:27.984224703+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["107.117.104.69:47662","[adea:86d3:b312:f445:d835:6023:f1f:f928]:27483","124.104.237.237:47957"]','2023-06-11 19:59:30.401970393+02:00','2025-04-05 07:57:27.985100444+02:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8');
INSERT INTO nodes VALUES(9,'mkey:9ced3abf3a281d71b6f361a75769c571c4aff9e4cbab5b317f6cf18918f66bbc','nodekey:e533ead6c5b810764db07631d7b9b14434bf66549837d33a6187daac1ab1d7a9','discokey:571a7ba01a8a0fff2af21d0f135caf8ae2ee0e15fd5ab996d2e490cf968d7217','email-22','node009',6,'cli',NULL,NULL,'2025-03-31 18:38:47.329086514+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b29:3bfe:7aa9:2767:900a:8142:1ae:eb94]:59942","165.200.68.0:39862"]','2023-06-17 19:40:45.468789461+02:00','2025-03-31 18:38:48.935281615+02:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9');
INSERT INTO nodes VALUES(10,'mkey:6cb022f8457bd430cd8ca6e88f1d4e3678965fd0af659ef29c956fbaa81c870c','nodekey:b4dc05758407f598a2cb77f98d5c4fca9dc3820e31976887942b54a4d44e43bf','discokey:fb9dba09bf8b64d2ef3b35d917d41d5208aafb2b013a53da0d2196a152a3cf9f','desktop-07','node010',6,'cli',NULL,NULL,'2025-04-05 06:30:41.564651006+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["2.116.83.236:33635","41.172.94.101:32111","223.204.123.230:38090","[9394:b33d:67e:fde5:21f8:77e8:97a8:bbb7]:47884","14.155.207.231:4806"]','2023-06-20 11:18:35.905417341+02:00','2025-04-05 06:30:41.565251484+02:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a');
INSERT INTO nodes VALUES(11,'mkey:e76a4d43284c0d19fbcf84b38d4bbdc5f978f8922f2ef6dcbe15170a3860a7d8','nodekey:85652faac3a65cb620073e7402506930daa194a7a3555c335741ee65a920530b','discokey:3a6aac7afdc916c9bc84b77b90c521c0e08f3fbf06ce89cfb2281271ec070b1a','lt-86','node011',7,'cli',NULL,NULL,'2025-04-04 21:59:20.16340839+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["22.207.212.228:27547","[2c3e:2260:8c34:275:2287:b721:1bdb:d462]:59540","70.115.64.117:6906","147.25.71.84:48460"]','2023-06-20 11:35:15.063855316+02:00','2025-04-04 21:59:20.295244825+02:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b');
INSERT INTO nodes VALUES(12,'mkey:6dacfe30ad1cab87eb1ef96c1d574cdb59d71aa0695483c7f17aef6b26f446b3','nodekey:b1f007ca3a9d6637fa1388c71397a537d4cc3b94918c280dd9068c3871861c02','discokey:3cf2b60ecdfbf0b633afb7c89de5c05274933adb6a71fdfc28fdd79c0814ee51','lt-86','node012',5,'cli',NULL,NULL,'2025-04-05 07:56:06.898009216+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2e1:2c69:85a7:8894:dfe7:6f6c:a382:4fc]:6426","[e758:c726:ced4:43ea:60fd:3ad8:1b8b:b514]:15200","[314c:5aba:d6ac:63d3:4de3:2c46:5e60:903b]:30789"]','2023-06-20 18:22:35.061914624+02:00','2025-04-05 07:56:06.898660893+02:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c');
INSERT INTO nodes VALUES(18,'mkey:88ef4bda4139c7c09e33bbc866b88e069c51187346d8095238179c82502dffcc','nodekey:7ad274415b296099222e0ca334eb849e0e6595ffa54dbcc94a0fc9ffa69d1747','discokey:388c1077bdd17ce1f86b92936609756ecd3e8b21ab3f4b8a84da7727dd2b2552','web-70','node018',9,'cli',NULL,NULL,'2025-04-04 21:32:36.521819531+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["33.51.84.119:46756","[c844:704e:c3c0:e709:8f94:3564:1b4d:d2d9]:8357","[169:f098:49e9:99af:27bb:802f:fc22:bd59]:63749","[2acf:3f32:1763:5d21:88a:4af:8779:1b1d]:36283"]','2023-06-22 08:30:54.08720463+02:00','2025-04-04 21:32:36.56813156+02:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10');
INSERT INTO nodes VALUES(20,'mkey:338d7e5ca6c5a8c65d7174eb1af312107408a16b7769b7088c8acf64134d9722','nodekey:440bd6fd6eea65489be99a6a95f4b6315ea55fa31fa1d6905a53ba4c046e0817','discokey:80890f521819e60c3778df342a98a9adfe2f46c15b0f55aa14f17df002aaa398','desktop-48','node020',11,'cli',NULL,NULL,'2025-04-04 22:24:36.219266862+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["191.156.96.176:5489","[166e:c30:4d73:440f:456a:22be:71e1:142b]:33036","[6d05:6bb8:3bec:c76c:1890:ca9c:2684:1bbb]:31223","173.218.108.179:51272","143.8.135.130:62709","[1af1:db8a:7b81:52eb:f4e9:e74e:905:79d3]:7418"]','2023-07-10 12:40:34.838579199+02:00','2025-04-04 22:24:36.219367472+02:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e');
INSERT INTO nodes VALUES(21,'mkey:ee8b7cc5b7ece1e1a03fdf355a2356928cc272be6f9570866e8ab7d43c09036c','nodekey:2249e3a64297951858ce623341c49d6ebcfe94a8fb5e4edde4889b8f50deea48','discokey:555c31b79c570eafb2f3be56f01cc73913c4886081fc75b868d14340380e5a42','desktop-87','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["207.187.74.99:12216","63.3.67.150:22907","[77ac:562:7c4c:438a:6ec:be48:743d:47b1]:11349","[33cd:731c:f110:9b45:66b5:de81:1daa:757f]:5997"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f');
INSERT INTO nodes VALUES(22,'mkey:2894a7babdc030bac1e4ec0e14aa4b6b67ebe382a1773e0ff4aa8b16ecd443a3','nodekey:1e219f3cc03eaa868018b9f6870d108317c31760fdc38ad4bec7200d58379f26','discokey:a81e998383baa23adb3e1e6757ef0c4b960095022f00b500b57f53c6147c71e4','laptop-48','node022',6,'cli',NULL,NULL,'2025-03-31 18:38:46.693334487+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[736d:a0a:e343:6b2c:b48b:7510:ace2:edc]:60377","82.193.154.129:23713","[68:80fa:7b30:3a0:d1fb:3e89:2c73:256b]:30308","[ad42:3917:5edb:3e85:732:1c71:a19e:9fe0]:11799"]','2023-08-05 12:08:48.132161695+02:00','2025-03-31 18:38:46.801242352+02:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11');
INSERT INTO nodes VALUES(23,'mkey:9ab69494a274cba5b22cbcf35b3ada57d4b3d2ee03930a456f80fb34dc69064b','nodekey:0345912b4e39cd9d03dec55edec6fba7f8aca631312884b49538550475332182','discokey:a2c1be2ae50af07e5b96b0a3ee2d3a1b0148fbfc5c1a283bc787e31410d6f74c','web-51','node023',12,'cli','null',NULL,'2024-12-07 19:25:56.935152754+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["9.237.225.227:64622","[46a1:e1e6:6b82:6599:acc7:2273:afea:f09f]:38018","93.129.193.97:13477","184.41.32.72:1026","[f136:8b69:185a:7ec7:94a1:ca58:5d95:ba9f]:21119"]','2023-12-15 08:05:56.592241745+01:00','2024-12-07 19:25:56.935317645+01:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12');
INSERT INTO nodes VALUES(24,'mkey:94d0eadf801d88022019f9353b7c29cafdd060a269a0245396e01f1293953cb0','nodekey:1db769d2ca42bc0f8b4e18b5c89a31fb4595edf0592ce1a534b713ba503f07e9','discokey:912056b78049017764c78a047b65feb3c3b934fa26ac62b44f8d7d561711321a','srv-85','node024',12,'cli',NULL,NULL,'2025-04-02 22:03:44.023075093+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.107.170.69:30767","212.18.227.41:50735","[f774:e89b:980f:975d:fd3e:93f:a9b5:2034]:46054","[7225:d0ce:d29a:59d8:f596:b945:9a02:29ed]:43419","[5a76:d5b0:b51d:6b56:afaa:3968:277b:192c]:19250"]','2023-12-15 11:14:36.765183054+01:00','2025-04-02 22:03:44.02329052+02:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13');
INSERT INTO nodes VALUES(25,'mkey:247cad9ffd7d108f553e7658db14bbad992332458abb9b4bc5a0c0d3a13ead9f','nodekey:bbfb569ac8a34cf4d59d2bc13d0f03660d24aedf22c61b56510a65d20bdf0812','discokey:61f92520602549b9bc684eeed3186f608a38e13794d06d4b8d165c4efbb69a24','laptop-29','node025',6,'cli',NULL,NULL,'2025-04-05 07:56:00.717501781+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597","[320d:6314:eaa2:a098:8594:977d:27b:8442]:12827","163.235.127.125:61230"]','2024-01-05 17:32:40.940566279+01:00','2025-04-05 07:56:00.718576252+02:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14');
INSERT INTO nodes VALUES(26,'mkey:d623495ccdc12a3f219322cf53458a85c29b8795ceff5cef5338bb9c26e329dc','nodekey:781ad44c939f14168ec1c22c3fa2c5422f5ff1a5b0fc163fa80e6ace4e20c4a2','discokey:c474b4d7b9883e70466b6240b885a2a71dbe6efb0e8c84b85277beb584f25690','email-47','node026',6,'cli',NULL,NULL,'2025-04-05 07:53:33.912069529+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["173.144.3.182:33138","[975a:978:5cfb:5e5a:1b6:d272:a1c1:50dd]:3245","[e6e4:7cfc:9ce:b47:62f5:b64e:d2e4:9015]:42369","[26c6:541b:69af:974a:8ea8:6bd0:7c4d:5a82]:10571","[c898:1525:ebe8:704a:243b:de9d:b8c:ea69]:22747","32.167.123.100:57075","[2c67:a9f3:3163:c675:3386:2447:1cc:ed3a]:42590","64.137.67.1:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245"]','2024-01-05 17:34:19.811670479+01:00','2025-04-05 07:53:34.448650057+02:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15');
INSERT INTO nodes VALUES(27,'mkey:d95c13394bdb912ef51f3123fdb0495feef567dc13724efd8dea17b33ce7aa1d','nodekey:fd8be528ea41d74697d46084c8cf560fff1c21b3193bec752ba2d60457396b19','discokey:9ec066ac46492f546a67be34b417eb469dfc95aff8b7be28be3bd8b36bf98653','db-72','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5760:dc4e:eac8:5c38:6c9c:8451:98d6:4e9c]:21573","[e350:bf94:9128:bca7:8c74:ab49:c419:4c50]:18052","222.155.102.116:42746","[e32f:122e:8a:e473:4b83:8ec9:61db:60ce]:37054","154.68.57.163:54048","[c5a0:942c:ed88:2277:3c9a:4f65:a25e:5b40]:27852"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16');
INSERT INTO nodes VALUES(28,'mkey:08347db9fbe8e5e7a968c2ab9ddd1ff530ea98163c0bab7769316307545f4d46','nodekey:b6b03efd7deb52dbe0298708ea37400510ab7589b0b1787eac1a5f9b50aa7c80','discokey:6a0ab2f3329d9fe5f50c76f9f3f1d2e797574af93d823a511df57f45414f647e','srv-42','node028',7,'cli',NULL,NULL,'2025-04-04 14:08:44.348585699+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["42.99.149.47:5231","146.122.164.252:36824","16.15.205.75:58574","82.136.149.34:28707"]','2024-01-15 09:34:54.847632697+01:00','2025-04-04 14:08:44.348711737+02:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17');
INSERT INTO nodes VALUES(29,'mkey:4a6e46330ccd4b3026337cdef37485c27592babda329107565c2a19d97253dcc','nodekey:17de47da1955a8a034788ae671c34fb10083568bf9e2f7494276cb2636065246','discokey:449f5f35a3507974cf03e3ac5c055d890de5122f57a7c2d84a0d3b324998607e','desktop-17','node029',7,'cli',NULL,NULL,'2025-04-04 21:46:12.712212086+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c2f1:82ab:922a:9b9d:f53d:a0b3:bccd:f6af]:299","[d28b:7b33:1f88:7583:7ed7:a923:4c90:9ee0]:62318","[68e3:a070:f02c:708c:a057:b579:aee9:4d25]:11747","[7224:b76a:cd04:e6d2:67fd:fec0:2f14:1837]:29002","173.82.71.57:3159"]','2024-01-15 15:18:12.2871978+01:00','2025-04-04 21:46:12.807613421+02:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18');
INSERT INTO nodes VALUES(30,'mkey:26f1059c45c12a8e56cd57ba6db33dfe104eac76103327af49622cb7810fab7d','nodekey:b157bbdc37aa4634b8d69d6fbc7670780fff69337713176a11f893afafa2a9bc','discokey:4c8c175d0e61ca8f7b2de92a1033cb9be95eaeaf09e9395c767afa5afdf2d9b5','desktop-64','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8a1a:5c17:bb81:bb69:c7db:3513:f14c:ca2d]:52077","123.235.220.59:59925","155.210.184.45:60093","[963:536a:33e9:99fb:c204:d59c:29a8:ac18]:39005","[e84c:35c4:4bd9:a100:c271:8921:ca7:5901]:21828"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19');
INSERT INTO nodes VALUES(31,'mkey:ef048095dd3e937a8617f18797ed42d2c4513d07126dc419a466f257982113d1','nodekey:1c6c367df9b85ab5e1618c70c0a4f8b22e2eeea77523b40059c3ebfef0f4057f','discokey:80fb63a98202437504c700e582eddf800b02dc654577bb95796c60cdf1176793','lt-55','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[cc02:5592:3738:a2ab:8c55:97bf:a5b8:24e6]:41616","129.130.98.189:47833","[99c0:d769:2f38:10e9:c01a:e3d:898e:afc]:17505","[3423:afbf:aa2:e156:81df:bbd3:412a:df65]:5125"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a');
INSERT INTO nodes VALUES(32,'mkey:5b0e391e12914bcbcc6b415d9dd72937d74f9ce92a22c6ec938eb749962ee6ce','nodekey:4fa73acfb54cb140dad6b02bc853f6360f5ed160f819dc57701ad9a4caae9782','discokey:d3e90723a3b90eea513e7710ccaf25f68c0a2d60a85e3d4b9e4385335fddf8e9','srv-15','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[14bd:ee53:6776:c1c0:124a:efbf:38cc:b312]:62180","85.234.248.186:20429"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b');
INSERT INTO nodes VALUES(33,'mkey:ba179b51f3540e619eaac9a6d4bc67403daa7c3cf28a6b579087cd6d284501b4','nodekey:246fadfe2a3606f043aca1fc1fa31b79e9eef9c21ec67e72425e05576707b3c6','discokey:5c64c1a08b88425b6e1e2971f950708d38f951d2d5eed2b85df8dd7d1bb88a44','desktop-32','node033',13,'cli',NULL,NULL,'2025-04-04 21:35:50.079412269+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["106.67.113.92:45634","85.199.78.110:6716","[bc29:715c:cdce:f1f6:8630:4929:ea1e:5c03]:10918","[af8:f5e8:32f0:75ee:d351:c0e9:78e:93d9]:12624"]','2024-02-03 16:33:26.706408143+01:00','2025-04-04 21:35:50.07986885+02:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c');
INSERT INTO nodes VALUES(34,'mkey:6fe02bbbdd40bb09e8aa74cf66b40b5b94f227690fd804a33242f56e18bee64e','nodekey:acc333e66d45e660ff4a31a152340d391547ebef1056f5f046624b629389bfd3','discokey:cf4a1217f85585d74fc5138af6ed9b78a29a9d4f12ad2e1beac660816d8c7b3f','lt-74','node034',13,'cli',NULL,NULL,'2025-04-05 07:35:41.145084059+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[1092:57ce:a60b:141d:ba79:79a3:91ed:66b8]:11037","[f766:14e5:6acc:ba40:8b28:59b7:ef7f:cd51]:46293","[c:e6fc:18ea:2e45:6bef:c1c1:f84e:b1e2]:62296"]','2024-02-03 16:42:32.683785672+01:00','2025-04-05 07:35:41.16521778+02:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d');
INSERT INTO nodes VALUES(35,'mkey:f95240eb788522b37f5513f0253f8bdab2ccf7594ffbf9bb77945fd67e598c05','nodekey:f5a6f47f5a34b4f4c6883e46fb52c0a5f7ca2ce17397cbba751efa8736e0066d','discokey:4dc728a0c0de0ce87530a47dda426d5bf6ad1b2f6cdefcc819c29c1015c3131e','web-44','node035',5,'cli',NULL,NULL,'2025-04-01 19:27:16.8887994+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["136.113.252.147:325","139.180.210.231:32286","171.29.58.211:2336"]','2024-02-03 16:51:52.010016072+01:00','2025-04-01 19:27:16.890057487+02:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e');
INSERT INTO nodes VALUES(36,'mkey:8ac09adfe44b8e60665601726c99627216e71b49ef7e8cc58ae6ba4f997c8652','nodekey:62d8af3310a7f27d84b931eaaa7ee110fe7fe46ea3ca8c817e47b9ce456c9b4a','discokey:bd31ae97729ac879d9b57866a69abb521248fb7fd5663d2149857d4dbf023d85','web-93','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7e9e:219a:507d:d3d:cc77:6195:7ce3:b30e]:25018","203.251.190.122:19081","49.144.40.103:7674","[a641:3f06:63bf:b716:4658:1e5b:ac6f:e14]:13490","197.206.147.31:58506","[b1e8:68a0:4017:a243:61d0:b303:7860:18e]:28633","[e5b8:6c78:ce2f:cf6f:13fb:401f:8223:3f04]:54121"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f');
INSERT INTO nodes VALUES(37,'mkey:c371756901cab84ae432a7d201e47232b008ef55effcf90341f24de7dfc55bb0','nodekey:0f858ae8a6492e1cc63fb502c6453ae90e8723f8b4ea8eba8c67f9f5114dec39','discokey:b6fc59b2a9ec7ddf1ae9573245cd3271259f964cdd730b811fabb019eccb3c81','db-47','node037',5,'cli',NULL,NULL,'2025-04-05 07:56:56.882618261+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b8c2:c792:3329:2c93:f94b:a948:7d11:b9f2]:908","[5925:353c:bd9a:f42e:1916:45b4:c170:e515]:18400","[c2a5:cc2f:e2e8:573f:7b01:4aa:8a1a:fd71]:32146","193.82.125.68:38601","[e9da:1552:e478:f920:c3d6:ff41:9e86:e27e]:48481","[c31d:dd18:321:589:11fa:d85b:695f:1fca]:43064","168.4.78.117:48474","90.45.218.0:29326","90.233.46.138:29846","8.137.133.59:22781","[cb5c:f8d4:ccb0:8333:8ec:170c:a2b0:941d]:26248","[5802:df5c:8853:4851:6dcf:cb83:8208:d143]:24568"]','2024-02-27 12:14:40.452601042+01:00','2025-04-05 07:56:56.896138732+02:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20');
INSERT INTO nodes VALUES(38,'mkey:465de79eadf29db3136d0b230c481876edbe7e05a803281a523618c586fd3c01','nodekey:01614d4aa1bb0be1f6b41e10aa9ea1c7af206ef9a2571bb68c24e85bea697216','discokey:d3eea5725d8408db2ffc560d74c70da0a70c3f3dc40a0d6a6fad9afaaadee9f2','srv-59','node038',6,'cli',NULL,NULL,'2025-04-04 10:17:46.472491162+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8125:ebe4:83e1:4806:f061:5bd9:a08a:8ccc]:6467","114.199.17.195:52817","[de36:fc02:8cf4:c60d:824a:9963:2440:5b5d]:39343"]','2024-05-22 08:08:16.045350656+02:00','2025-04-04 10:17:46.473325907+02:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21');
INSERT INTO nodes VALUES(42,'mkey:ff2ce8eb04d99e45d7babacacc758ec8e031474fcf494b4c0349c7084cc62365','nodekey:660bae997d6da1efccc0135ed712176a379f59ec9ca7a02eddea607a8855cebe','discokey:66ca4169c6be68079a1244ec506d8c922af4133187e0117a1800ed4791ed9a67','web-21','node042',14,'cli',NULL,NULL,'2025-04-03 14:18:40.656342991+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3a3f:717c:1ea3:7c82:81e4:5d9d:765f:7da4]:6540","[bc95:459c:aab:499d:4354:d239:ef14:dcb]:14429","[f673:7912:6d5e:7244:62ca:9500:78f5:31c0]:27677"]','2024-07-03 11:12:29.418355657+02:00','2025-04-03 14:18:40.709062776+02:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25');
INSERT INTO nodes VALUES(43,'mkey:df2afe1643d44e7b5d2b4fe1b78e8b0c8c7871b50b1b580048cf6b184cc99143','nodekey:4512e240f89db2671db1ad974c151afad41491d7d11486b644aa2cf66bc3410e','discokey:f4b10325d44499f510cf0bd61d7c9d116b10c14434b8fab4559f0797f033936a','lt-12','node043',14,'cli',NULL,NULL,'2025-03-31 18:38:47.400103948+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c91c:4366:d3bd:a993:b5e:75c7:ef8e:8166]:46974","191.185.253.85:37427","17.31.200.70:26794","[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274"]','2024-07-03 14:48:50.263910778+02:00','2025-03-31 18:38:48.06470771+02:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22');
INSERT INTO nodes VALUES(44,'mkey:7d71974b3095c1ae476074cf0e7e5628088873768b2a24b827c50699dc9d61d5','nodekey:bf967004b398b7634581159dae489f4f6f9ab3a56b35d5c5bbf5751b2ac73bc8','discokey:5be6e1d98febe4e50f1b907d23635c2bd342e9d5ec9524df24c4349c752ac923','db-53','node044',14,'cli',NULL,NULL,'2025-03-31 18:38:49.196820572+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8dab:7bad:415:97d8:4ecb:2a7e:14ae:64f2]:15771","[b501:efaa:c73b:b492:c3cf:865:d55b:9557]:26172","162.210.141.106:52036","[84ef:a164:d1c:d20d:797c:753e:f8fb:3108]:5767","[c15a:e322:a721:c9a7:a662:ccb8:26b8:e1c4]:63192"]','2024-07-03 15:23:48.066044194+02:00','2025-03-31 18:38:49.528314036+02:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23');
INSERT INTO nodes VALUES(45,'mkey:3f3fa2155a168125fd4d22d58f30d1d101796d67dfbe317a3808721019282ce0','nodekey:edccaae68a3381b0f736db6a23a9d45a8747caf1a8427ac5d680205cc4fed415','discokey:7a91312730081d203379ecdf264707a4325fdf272e1338b0abf770f0050e33ae','email-63','node045',14,'cli',NULL,NULL,'2025-03-31 18:38:48.272123393+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["161.33.154.107:16255","[caa0:946e:b130:39aa:31b0:8f9:7526:4960]:1729","120.102.247.255:41936","28.177.95.32:7841","[fb23:5998:c63d:b6c4:e86a:96b2:61c:e110]:51902"]','2024-07-03 15:54:01.706018896+02:00','2025-03-31 18:38:48.790175394+02:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24');
INSERT INTO nodes VALUES(46,'mkey:d084c15ae8c10c1de1d625c7292df7da48e4fcfd1ad860ca140ce9259254a1fa','nodekey:6ea87964a36dfb6e359a0721fee4e988461cbf585410fd2a49321d49e215eecc','discokey:bc27f1168519c55a34986345caeb0f666d18990faa74a8b84b317d33058987b5','lt-93','node046',14,'cli',NULL,NULL,'2025-03-31 18:38:46.808546326+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2077:6b7:927e:5e5c:a0f0:3352:1490:e1e1]:47997","6.170.76.62:28497"]','2024-07-03 19:38:07.783745318+02:00','2025-03-31 18:38:47.865608242+02:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26');
INSERT INTO nodes VALUES(47,'mkey:6a001dd5eed681d035dc3235ead186e6722d92e80695430ec542664659a82b68','nodekey:4a2155f4fac513f7382187a6bced77ab0a1a1c8fc4bfa93f31eb3236bdeb0308','discokey:76377c4b4a67de97ad3ec8af288ef68b7c917da1845351f9e49f7b588bed2b3d','email-54','node047',14,'cli',NULL,NULL,'2025-03-31 18:38:47.867863816+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d722:f972:c192:4cff:3916:e1e7:6d02:236b]:55695","101.58.151.244:39467"]','2024-07-04 10:38:08.344092869+02:00','2025-03-31 18:38:48.178140996+02:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27');
INSERT INTO nodes VALUES(48,'mkey:479cd91a3b16f2636c609f67817778a3ba3f35a33c5f3a6fad9ef86166ccae38','nodekey:5bf0038573184bd6031b88e9412f42eda5a8ddd2ec5761e1f22b9125b3c349c3','discokey:c7e977fadfc1bbd63183a2a2d82f1fb1f1700aa1b36c03b8c1754d46560fdfd0','lt-53','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["60.228.0.149:54791","45.103.140.120:38129","59.24.21.245:44110","[def3:2f58:1a57:4620:9775:7f2c:3aab:52a2]:50978","[9236:c0c2:b9b4:e60b:99ff:582e:50ee:92b9]:25915","84.253.15.156:7777"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28');
INSERT INTO nodes VALUES(49,'mkey:4d5f9a38fce205b2dfb62f42464172a1408e00221317b01332714a4db55e6ebb','nodekey:415009b46e40247f7a60d9e0f53c938b6a032fd4c11ae70d824e2d95cf170957','discokey:280e5896d458bd63044265484d38ad711ef52a68981f83281ff693e837421a13','web-11','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[475b:3641:5abe:b0a8:8a68:dd51:8e80:3efa]:574","153.151.233.195:41734","[19b0:8be2:708:d27f:4d3d:3c93:9979:e9e8]:50438"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29');
INSERT INTO nodes VALUES(50,'mkey:a35a00c69e2fa10d442ae03a4d9312ee61e56caaa030d1303a4ebab2b26c27eb','nodekey:39bf208ba118345630aecd3c6ed042d40b1e6b4897c9548a21a473c28352ba95','discokey:437f4dda6cfd2d269543f32dfaac1333b8660cec03b279728e296f6cbc67ca69','db-28','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["150.170.146.70:3311","139.117.239.209:33788","[2eac:ffa0:99fd:d109:c120:a35d:ed48:eea3]:51544","[7644:c348:2969:b90:e84f:94d4:b629:f266]:49336","169.247.3.239:36225","[5b4c:bb2:d43f:6ff4:d494:8616:a66a:d059]:50360","203.180.122.83:13344","63.162.234.32:11653"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a');
INSERT INTO nodes VALUES(51,'mkey:38d8adcfb8f6217b6dce62c89e816da260f1b0747a9a980e0ede5de9412aab4b','nodekey:98cb6a87bfa7cd614051008583e5f0904552b44d98854a0fb5d8e0e3c3115949','discokey:104eda6ea8f8fbeae20617662e601bd0acf102511d17ffc829c08db6a7f78872','laptop-32','node051',14,'cli',NULL,NULL,'2025-03-31 18:38:45.515173008+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["33.182.22.166:13283","181.10.243.176:14596"]','2024-08-07 14:19:31.156780417+02:00','2025-03-31 18:38:46.360795928+02:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b');
INSERT INTO nodes VALUES(52,'mkey:3a83699597e3bee8b15df3733dfb54b1d7af3ff9ccc7a4b65df4b0feb4a3f25c','nodekey:86cf80f0bd8bef4888116f2bab1b5ac4b11bd6fa637f7ef0886cd0aa265b2bec','discokey:28e2d745a5216bdaaeb83b4483b19d1c2ae0c149b97c08c06a4b90ca2c742a00','srv-53','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["72.183.239.155:49891","167.46.143.131:51781","[9e9f:93d:a8cf:c86f:17e3:9e2b:dc42:efa6]:3616"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d');
INSERT INTO nodes VALUES(53,'mkey:d1fda0c437a79b121817c1c24e88bce18fdab566d5e74678b8730cb48c1dd574','nodekey:1463eab453b78867448baaae38b88547334df5070c30e77a08cd3410bd721d8a','discokey:4688405d194600e9c1a783e71e274c3e42976a5021d81db4ba4a0506a768cbca','srv-86','node053',17,'cli',NULL,NULL,'2025-04-05 07:53:50.501049438+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["69.219.0.37:43476","[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961","[fad7:2601:d286:4772:3cce:6e89:f66e:9eeb]:5430","216.60.124.11:45041","[d513:c472:d7a:f316:f610:10d0:9851:4feb]:3955","156.228.105.157:61542","102.126.185.0:50694","[156b:e934:d171:2693:8db4:f193:a58c:17b6]:24190","79.255.179.99:56057"]','2024-10-28 10:04:50.084492941+01:00','2025-04-05 07:53:50.501509322+02:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c');
INSERT INTO nodes VALUES(54,'mkey:4eee40f0117b3b8580f4cf3ec7be063bb4d82173cfa3c015c8932431940d9c92','nodekey:4241ffb9768a0e31f38cc0c5b2f240c1de72b8810e7ff3705964316e63c1a055','discokey:3ad8f2ebea95d15109a0adfc69b3a6b566ce02ce82df7a32e68f278538bc05a2','lt-15','node054',14,'cli',NULL,NULL,'2025-03-31 18:38:45.793020142+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9fe:6ddd:ab0:1193:7bb7:4a4b:c036:b910]:63516","158.169.112.249:5480"]','2024-12-09 17:10:55.363593066+01:00','2025-03-31 18:38:45.816484332+02:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e');
INSERT INTO nodes VALUES(55,'mkey:22e4ac4e25b05db4e94b5211e08ed14d983972f92e192f15e0231ff355fd46bf','nodekey:225f907deaffccb674416dc4ba532f0b20304e86d57808eef2d96f15211f2309','discokey:e695b849380f698178e7457311dca3cc10ae13a79b0a71d22130e7c401c4f246','web-26','node055',18,'cli',NULL,NULL,'2025-04-04 15:19:04.171978054+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[ecbc:a9b6:cbb7:695b:62ad:27cb:36f0:2380]:27992","135.238.213.41:64084"]','2024-12-10 13:56:39.287449662+01:00','2025-04-04 15:19:04.174839842+02:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f');
INSERT INTO nodes VALUES(56,'mkey:ad967c824d2c235ed17b1437f6756d4354ad76a2d27b575c0257ecac9a3a5fd2','nodekey:6196332e325e3f1d0c58acb182b48b070340dd673247c616a28d60a7669f5a4a','discokey:3a67fc6fdb9288679886c2d45dba4d1e1ba014af2c48f0f942acd39ef0e0ee64','email-56','node056',19,'cli',NULL,NULL,'2025-04-05 07:53:56.457113205+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["122.41.198.69:28824","[5437:6f4:94c1:c6c1:43ce:7a41:e5c2:65d0]:57161"]','2024-12-17 14:58:39.429211911+01:00','2025-04-05 07:53:56.457486062+02:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30');
INSERT INTO nodes VALUES(57,'mkey:3d9e1a7fc884de338b8391bbc5d3398c7d0ec4c36388b756df5b2304b727fa11','nodekey:9cd5d41c04ae83ade43363dd165c792cbc5386e0d3e005311ca7c79ae7f7acaf','discokey:2d6fad1f43bc97a6d48bcd400c829db2d4f47291b12a59dcbe669d8b1d341c1b','srv-70','node057',20,'cli',NULL,NULL,'2025-03-29 11:27:16.332745436+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a34b:36c0:9f18:1062:2269:92c:1c83:6ec6]:56902","[41e8:60a4:229:a09b:efd3:c73f:b885:d235]:39533","44.230.54.249:64083","29.229.203.183:13","153.68.228.171:36559","138.154.192.66:772"]','2024-12-17 15:17:14.26936913+01:00','2025-03-29 11:27:16.556356179+01:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31');
INSERT INTO nodes VALUES(58,'mkey:97bc215b57ea30368b04727189d5a09f60e682171b2b05355d046f86cd4aa30d','nodekey:33c0e1c36d9762397b6406cba0f71c77dc7d11b8838911c7ce1a1cb632751e1a','discokey:f8394e6be895b3c2261fab8cd62d1f28124d377df6b4b17dac4b9f18c54a3e00','desktop-11','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[2ddd:7c1b:a237:41c8:3baf:e9cc:1f31:9057]:62916","[9c34:190d:7bf0:c940:18d6:f96c:9aca:8c0a]:8787","181.226.177.82:63703"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32');
INSERT INTO nodes VALUES(59,'mkey:4d690637aa5cdd6575d9dbb7fa0b55c83bece3e82bc689e73122c9120f871772','nodekey:8733914d48b0c34a0111ec5f633123ae4ec7de39e597077d659ab8f2354270b9','discokey:ff25bf692a69cc0e79101e1cc1b926ca97b6e3897e65c55e5bd3f09ca1ea6d16','lt-20','node059',21,'cli',NULL,NULL,'2025-04-05 02:21:31.304172899+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[57a6:fde1:814:36cd:f8de:668c:f5fb:4f60]:39714","[f08d:aeaa:107:fc17:5c30:ab9a:e31e:3147]:55879","80.27.167.78:21548","[536b:bf65:da86:c7ca:ecc4:c84a:1811:334e]:24087"]','2025-01-29 11:59:27.291048957+01:00','2025-04-05 02:21:31.304988854+02:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36');
INSERT INTO nodes VALUES(60,'mkey:552ca0e4c611df54a38bd150d7f6c4ef77c66625435073b3751718e44884b92a','nodekey:7b4b25d90935b79af2efc7f0499d3f16a49d5078997314de57b65fb5ce01cf1c','discokey:2118ebb5a0b1c12de379802db2b247fcbf516de56216c4d0ee7a0489dde05071','laptop-14','node060',21,'cli',NULL,NULL,'2025-03-31 18:38:47.60389811+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["67.131.191.86:14533","45.142.234.80:30901","58.251.220.64:42364","[d9a7:5288:3427:e52b:4eb5:794f:11d2:5d6b]:33898"]','2025-01-29 12:01:57.48748166+01:00','2025-03-31 18:38:48.228181117+02:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37');
INSERT INTO nodes VALUES(61,'mkey:f5eaa64ce3d0dbd7539fd9c3f9a494688a4a64b9a3d1fc0b9f40dedc14192ba8','nodekey:ccd6aadf68fdcc95d0d15f6654a0c6bfd5ebbf282491539ee63e5b0848de9ef5','discokey:a492c6d1d0b9de44f6adcf7ac919d49c269058d301b4be21fbb5bf4203b2fa8b','db-97','node061',21,'cli',NULL,NULL,'2025-03-31 18:38:47.847511392+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d002:74d:2b8b:87bb:25cf:5512:50fc:e379]:46829","206.194.47.198:21677","22.203.32.217:28664","112.239.138.73:43954"]','2025-01-29 12:03:01.464646336+01:00','2025-03-31 18:38:48.152116326+02:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38');
INSERT INTO nodes VALUES(62,'mkey:4cbd491b0977f3a8cc92ef9f20a7726b3984f3c0699429ae46a0bceec5febee4','nodekey:66a7e77700fb0f4bae5b282413bdb5ff7c375549dd85c4300c73ff3d8029b4a4','discokey:2e9034fc43993eaa0cf2bc21118d378bb02afb3d197a33cf9f0dd201d176b23c','web-06','node062',21,'cli',NULL,NULL,'2025-03-31 18:38:48.069494509+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["81.51.60.60:63220","12.64.198.119:51541","[5e99:3950:5dc4:45be:bab7:e7ba:2476:14e8]:43360"]','2025-01-29 19:23:14.092804852+01:00','2025-03-31 18:38:48.161442612+02:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39');
INSERT INTO nodes VALUES(63,'mkey:70cc01dc48021a01c44ab1a4bed313bb8270640ef7317fd983019c4b5e593cf3','nodekey:bfff30bca701176ec3b45b2991810cc437e3995207d924c896c4250e0efdb782','discokey:91eb7d9fa7688e3ed641adfae83be298c1ab261fd00dc2b4ad9cb4c269b623fa','laptop-27','node063',21,'cli',NULL,NULL,'2025-04-05 07:46:04.800277542+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["105.95.65.117:11546","[68bb:e8d1:72d8:8b02:608b:2284:c9b3:184d]:20876","[5c17:4014:ea6a:5528:b1a:61b7:5cda:5c5e]:21597"]','2025-01-29 19:41:40.535299057+01:00','2025-04-05 07:46:04.80130455+02:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a');
INSERT INTO nodes VALUES(64,'mkey:ac14ce6b1ecd1a0d79bbf60d279f19d09baf0ebd409f099a401816516953eb30','nodekey:a711e6a5750ec7cceac6a771396b000766d9af8a34327bf5efec3216316e8afc','discokey:0b370e73e9970987dad3fd00317f51c68e4273fbc11b754ef7e84d4d6880002a','srv-33','node064',21,'cli',NULL,NULL,'2025-04-05 07:53:41.648931109+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["145.91.193.5:37126","[2fb6:ea0a:3639:a1cd:9075:a258:6a79:4f5c]:13944","[2384:3000:4d47:a9e7:54ef:99:52c0:e920]:39358"]','2025-01-30 18:18:57.519126133+01:00','2025-04-05 07:53:41.649324054+02:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b');
INSERT INTO nodes VALUES(65,'mkey:899a5048a327c15cade8ca854986909ed306f37b2a7655785bbf838c99285ded','nodekey:11b61191a3fc660e078ddc10a65c29c51459b5d67351d99967a504ac6c791f23','discokey:124857d5d0233a30c595fab8e1e5ca8659c9c3c5164fbd084582e7d697c5f580','srv-60','node065',21,'cli',NULL,NULL,'2025-04-05 07:56:55.874050704+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["167.46.40.4:60291","102.143.230.113:46288","[b341:3259:c5dd:9f91:fd70:c616:3033:2b3b]:59081"]','2025-01-30 18:19:40.354692307+01:00','2025-04-05 07:56:55.875106342+02:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c');
INSERT INTO nodes VALUES(66,'mkey:547a8b97c8c8227d9ba40174ce4d28d0e64f10fae3f39797c60e29742ed59e62','nodekey:cb4a9d1dee6f581036b7c262348cf2c4a96be8b2eea78f7805097e3f7b1a9fcf','discokey:c233a42a4afb5fbf921bf7b3fb4330e6c46273d18570aaf6b7254dbf3c67614f','desktop-82','node066',21,'cli',NULL,NULL,'2025-04-05 07:57:45.102165038+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["21.197.131.68:13997","6.193.99.72:20874","181.248.237.50:21695","171.59.96.217:25726"]','2025-01-31 12:05:28.65297301+01:00','2025-04-05 07:57:45.169550808+02:00',NULL,'100.64.0.61','fd7a:115c:a1e0::3d');
INSERT INTO nodes VALUES(67,'mkey:eb72ad359958c98e28f93485b720b6edef80d1bc33c4f99d772fc17c766039e9','nodekey:9122bd587ae90984e3231e0f48e15aa8abcfbc1b3324becd1f3622bbbe534da1','discokey:7610d45f8d2d3d4d7774c43288a6d50cd798a832732613647caa15e96621a3e3','laptop-93','node067',21,'cli',NULL,NULL,'2025-04-05 07:53:21.399420055+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3022:fc47:6534:7fe3:9d1e:8d49:75b:984b]:10998","60.241.100.13:15037","[9356:40f8:a98c:a1a9:18e6:e781:f169:4277]:63375","[c733:e842:4621:e95d:6576:9ccf:b2c8:1582]:41668"]','2025-01-31 12:06:30.121464114+01:00','2025-04-05 07:53:21.744746916+02:00',NULL,'100.64.0.62','fd7a:115c:a1e0::3e');
INSERT INTO nodes VALUES(68,'mkey:18580a8353c2c11c364849a9b45141ad99c22e2052de3b07c0a3e095ef6ee9cc','nodekey:d375fbb50d508e31b73b4d960272b0d886df1973e1c00b71723d5dcd7c658b5d','discokey:905bd1003c6e9822d22177c87108107c8a84c9f4f99d0f6e452457b7fdc2f23f','email-60','node068',22,'cli',NULL,NULL,'2025-04-05 07:52:45.084976072+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[d89b:6894:a590:e3f7:d152:3a19:3826:ee28]:40749","99.13.253.35:45887"]','2025-02-03 14:16:55.56431345+01:00','2025-04-05 07:52:45.085842656+02:00',NULL,'100.64.0.51','fd7a:115c:a1e0::33');
INSERT INTO nodes VALUES(69,'mkey:9562166c366f1968a5f82aca83bd8152d893541eed4d8682da0a540825cd44e9','nodekey:93ef8b713afeffc4324b0f9a99e185be61dbff43d6e5769efac6d82481b425c9','discokey:9aa3fe84188c317d17132a26604380ec4aaf7aed94b4b759bb6b643dbd53f8d9','desktop-61','node069',22,'cli',NULL,NULL,'2025-04-05 07:49:17.983292316+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["56.191.25.57:54747","74.194.16.233:59572"]','2025-02-03 15:23:16.312084161+01:00','2025-04-05 07:49:17.983430933+02:00',NULL,'100.64.0.52','fd7a:115c:a1e0::34');
INSERT INTO nodes VALUES(70,'mkey:50329891edd2948b53a0905245386567c98b46bc0d566e39e1763768d51cd638','nodekey:e4ebfcbd1e1d653bda175a62b765c6a646b7844b3d6bd49a9955f96a9b284c6a','discokey:f59cb75bac53aef739bbd5be676808891ebb55550aa0560396dc0532658ed893','web-53','node070',21,'cli',NULL,NULL,'2025-04-05 07:51:00.943197398+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["200.133.152.206:14119","28.101.69.72:35202","52.120.18.3:13372","[dc9a:ed1e:f97d:b356:d5f5:5d44:c917:3077]:33994"]','2025-02-03 18:09:35.161109801+01:00','2025-04-05 07:51:00.943819644+02:00',NULL,'100.64.0.53','fd7a:115c:a1e0::35');
INSERT INTO nodes VALUES(71,'mkey:9845e32e5bdac3fde9276125068f931ea329c65dd136081ddad62a644f41a795','nodekey:9a927389db6eb337e83a82882b5d4dc56667d1f1b2b774122f7e907a5511a95b','discokey:9dd163c600f6a522255812bce48ff492eb56771f74a9e40af7514375b221b86f','email-32','node071',21,'cli',NULL,NULL,'2025-04-05 02:20:31.545698826+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a57e:a4c2:c889:ff09:e17e:a0a0:2623:282f]:2539","137.63.201.132:39740"]','2025-02-04 12:03:50.32663805+01:00','2025-04-05 02:20:31.578007599+02:00',NULL,'100.64.0.63','fd7a:115c:a1e0::3f');
INSERT INTO nodes VALUES(72,'mkey:e91a507e388c22494ec286192de1d6f5943c88a7084fbe1f0274f1d1f6169c06','nodekey:341a90749469a79de31683b37038f0bfad8aa8dceb80ad6850ed148f8fdef655','discokey:a2143d31409f3645542e4ec1c2982e6cb4cfaacbe7cb99111ef112afff1907da','laptop-21','node072',21,'cli',NULL,NULL,'2025-04-03 11:30:24.373825692+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["93.35.202.238:41314","212.130.175.245:30054"]','2025-02-04 12:07:36.231437299+01:00','2025-04-03 11:30:24.376835622+02:00',NULL,'100.64.0.64','fd7a:115c:a1e0::40');
INSERT INTO nodes VALUES(73,'mkey:575f781bb36f7c93cde4d9808e3dedef2c8999864ea1d4e5ee73fdd3d53ac217','nodekey:00e3275941e7a0a73a1e5c44cea638a411c60bb2e257812e0f39152ec0c5a21b','discokey:69a8791ea090c8867078eba807d456ce8363aab46f0c998b327f4c7aaed091a7','db-48','node073',21,'cli',NULL,NULL,'2025-03-31 18:38:46.80095927+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["74.253.132.228:65062","20.112.75.120:15833"]','2025-02-04 12:10:26.50545127+01:00','2025-03-31 18:38:47.215533873+02:00',NULL,'100.64.0.65','fd7a:115c:a1e0::41');
INSERT INTO nodes VALUES(74,'mkey:8a4990c19c547da50875ad00613118d5382717652b4ef9897a1d1c060c40a976','nodekey:4894fef93c5af5094e3f9d18b0c7c822b66ade3221829502c95d2e0ae88ae3c4','discokey:fbe18283aa4bc599c8dd8c82c5fe7b236f1f059bf0344ce9a28e1196258811a1','srv-48','node074',21,'cli',NULL,NULL,'2025-03-31 18:39:34.600462031+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["114.141.127.86:11858","[d05b:3c4f:8402:823f:409f:87b2:4dab:4959]:58420"]','2025-02-06 17:33:12.557302525+01:00','2025-03-31 18:39:34.632063451+02:00',NULL,'100.64.0.67','fd7a:115c:a1e0::43');
INSERT INTO nodes VALUES(75,'mkey:fb413a3831a1db1639197bf6eb887a913ff044346d9fc07eeadc50aa96ae196f','nodekey:763f78cdd841a2859c2a7e1b00129ed1a527e97afc193da93d864263fb048c0e','discokey:1c658f44f2e30f60cd35d6d730625710bb86ca1873f0cc55f6a08f0fc62bd814','srv-20','node075',9,'cli',NULL,NULL,'2025-04-05 07:55:19.031501504+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["147.221.39.105:29051","146.211.135.172:35153"]','2025-02-06 18:23:55.709687186+01:00','2025-04-05 07:55:19.031893003+02:00',NULL,'100.64.0.66','fd7a:115c:a1e0::42');
INSERT INTO nodes VALUES(76,'mkey:7a392b19fffc82a338a4a9e640b63b474c918db933a38bb72dc8957dc95fffb8','nodekey:29a892ef6ca08c4691db5272b310b98a0abd3c2f40372702323afc30909517b9','discokey:4ae873b73a87e7282a9275c3d5e9c68227934f68c6601567d92ddfe202d2cd31','laptop-09','node076',21,'cli',NULL,NULL,'2025-04-03 03:19:15.701019816+02:00',NULL,'{"fake":"data"}','["[9768:8d0:63fc:993c:bab0:4be6:571e:9579]:64245","205.167.26.141:5100","140.129.39.90:29397","163.61.27.204:21704"]','2025-02-14 15:29:45.220999928+01:00','2025-04-03 03:19:15.701454834+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d');
INSERT INTO nodes VALUES(77,'mkey:3c49826dc55bc0e0e4643777d4950888452791b9f41b4cdcbce633551c7e4586','nodekey:8c5b96984a77dfba9d9ab0da01c4834e27b4c5e8add2aa9e22be59fa675b58e9','discokey:3f25a8ba8632b6e6dc3148ae42fd90ec433e9c47a98dfcf2f65d326fd030a47c','srv-81','node077',23,'cli',NULL,NULL,'2025-03-31 18:38:48.332406555+02:00',NULL,'{"fake":"data"}','["[734f:219f:40f0:ea33:47c3:ab48:b4f6:a239]:37955","[aade:2619:9aa8:378d:2365:1ab8:8920:a86]:7960","[71ce:8ddc:ec8a:58eb:d01e:2951:a8a7:dff]:31349","209.201.158.153:40013"]','2025-02-14 17:00:54.226657615+01:00','2025-03-31 18:38:48.558712405+02:00',NULL,'100.64.0.68','fd7a:115c:a1e0::44');
INSERT INTO nodes VALUES(78,'mkey:a89496b608c3a9a479a8adcbeac38dd6a856ac638d3ce35c715abb10ef0c278a','nodekey:04e6629fb5fbadb92b0ab1d2c2fa9f77f0b212890b491ddd7913b0d540a346b8','discokey:cd9e6272edc39d50afc27080316aae91de105df7e4f09b27a4301f219217b460','srv-30','node078',23,'cli',NULL,NULL,'2025-03-31 18:38:46.90455425+02:00',NULL,'{"fake":"data"}','["[8dc1:48a1:2e5e:8c45:131e:9d7a:2d85:61ef]:1654","[dbf5:5aac:6a5a:f73c:a62e:69bc:c227:1180]:49484","200.106.54.69:19053","145.76.224.52:32069"]','2025-02-14 18:03:28.401774063+01:00','2025-03-31 18:38:47.149620162+02:00',NULL,'100.64.0.70','fd7a:115c:a1e0::46');
INSERT INTO nodes VALUES(79,'mkey:31e2f2e88d77ea01fc3f7869f672d015dc76b0a12b46829aa1b344fdc0827aae','nodekey:124fde6d53a012efc7626136b2c32df231f87c92aff2c4fe9596c4d79a0c0db1','discokey:796b737943327a0b25ce400e70a628eca55747e61546e6a8a3c84ae8d0a7b491','laptop-17','node079',25,'cli',NULL,NULL,'2025-02-24 18:37:03.584752527+01:00',NULL,'{"fake":"data"}','["61.30.74.244:1071","[4587:514f:e01d:e13b:768f:6402:862c:f470]:52999","105.225.1.28:57634","78.215.20.31:28892","4.11.131.129:50580","61.47.47.240:57553"]','2025-02-15 12:49:11.523904469+01:00','2025-02-24 18:37:03.584913585+01:00',NULL,'100.64.0.71','fd7a:115c:a1e0::47');
INSERT INTO nodes VALUES(80,'mkey:f9c7fccb40e5f809fce3149d8643d3b5459b882837487e19da72f0ec8e9b36c4','nodekey:1fff3539a6acf0e9b8cbb0427824179491ac293b7c0092cd320ff48071eff4a5','discokey:7067ea828bcc4e1e5ee41152c79ea50cdf583a5aca0115cdfe9e2161271e9807','desktop-82','node080',23,'cli',NULL,NULL,'2025-03-31 18:39:08.617771904+02:00',NULL,'{"fake":"data"}','["207.204.17.116:6826","121.94.132.177:17160","[35d1:7781:52e5:8550:72a6:3a02:104e:9380]:34711"]','2025-02-15 21:12:05.434304787+01:00','2025-03-31 18:39:08.727340814+02:00',NULL,'100.64.0.72','fd7a:115c:a1e0::48');
INSERT INTO nodes VALUES(81,'mkey:d089a5917a4b469009a451f834bd93870888f18afd170ef9d7558abcbf7f56e6','nodekey:5c55b563d9796cf68da579cf8fb195a3bfb0d1e80f81d74359ca65b5367b1638','discokey:41a15fa481076c161c6b7bf8120e90ad4e73f3300d711eb81e31b7301d512b83','web-42','node081',23,'cli',NULL,NULL,'2025-03-31 18:38:46.169280974+02:00',NULL,'{"fake":"data"}','["[2b88:a0fa:7305:9a44:6c1f:65d9:5ece:8f1c]:27764","[bd66:349c:a29a:4c05:b3ab:dd92:749c:434e]:27566","69.37.34.188:32687","172.43.25.248:19211"]','2025-02-17 16:05:05.921277876+01:00','2025-03-31 18:38:47.081362641+02:00',NULL,'100.64.0.73','fd7a:115c:a1e0::49');
INSERT INTO nodes VALUES(82,'mkey:9c853f04d1bfe9d438a8719160628329d7bbe56df8dcdb74fbdc4a6570af701b','nodekey:b4a22d5a8c9fad2e1fcc6b5f1693528974a38859285fd67b64bab7e6d3122710','discokey:8cc24fcbe0e6a7fdf36a0cedcbbdc4295194c821cac4a30d5c449cdc4d8723ee','srv-08','node082',23,'cli',NULL,NULL,'2025-04-05 07:04:44.68803226+02:00',NULL,'{"fake":"data"}','["[3c46:906c:ac3:7713:f36c:eef7:3764:7844]:57048","59.217.231.119:10496","[be71:9d1a:fa93:361b:4d94:fbdf:bb45:5421]:15076","[3238:dbe9:f89d:91e1:6338:993d:3e76:8561]:32795"]','2025-02-28 09:21:23.143225002+01:00','2025-04-05 07:04:44.688660094+02:00',NULL,'100.64.0.69','fd7a:115c:a1e0::45');
INSERT INTO nodes VALUES(83,'mkey:0ec54480d16ae9c954b21852540a7e669caf0b1df2ebc3192353058b191d4732','nodekey:981dfbabf258ac252cb4470040b425696d40c15ae9bd70cdbb6541ff47a4f99a','discokey:f77ff65615d1ec4afefd1accd883bfdcad5daf3810a72604fc0a95df2214a1e3','srv-36','node083',26,'cli',NULL,NULL,'2025-04-05 07:53:06.561831453+02:00',NULL,'{"fake":"data"}','["195.8.172.201:53059","[ed13:96e3:daf2:3df4:c6f:3b8d:af9f:eb5b]:10689"]','2025-03-18 09:09:50.849674955+01:00','2025-04-05 07:53:06.562851054+02:00',NULL,'100.64.0.74','fd7a:115c:a1e0::4a');
INSERT INTO nodes VALUES(84,'mkey:911d47d2e7518087e6e43d47074cb58739880e9dfd3912467b8b7d618458f93f','nodekey:87e6089fc13207cdb034bb83d3361be25faca6d35a4a12c1d195d7b5607d726a','discokey:172772172f52d6a3033debe69654f8c9fbd823a7876e36cd890a5a2990eda884','laptop-89','node084',23,'cli',NULL,NULL,'2025-04-01 19:26:08.705667279+02:00',NULL,'{"fake":"data"}','["172.116.24.79:64278","26.140.212.195:18107","[8ea5:bf8c:6205:76f0:a23e:8ac8:f856:f091]:26017","25.10.147.197:36132"]','2025-03-25 10:04:37.147174393+01:00','2025-04-01 19:26:08.706193488+02:00',NULL,'100.64.0.75','fd7a:115c:a1e0::4b');
INSERT INTO nodes VALUES(85,'mkey:0d5a6cbee59cef0dfb24e410466777da40ac48b308d5387c7118371da4dd66c0','nodekey:a3c2435fbaddbe915301fd294f6f7d787f18ea7938b468d0dbc2373585c6e153','discokey:3f4fad81a23a9b13308d6b2e84a217c00a73088d2a31ce5eb15be9192dc7aebb','laptop-35','node085',23,'cli',NULL,NULL,'2025-04-01 23:16:37.04412104+02:00',NULL,'{"fake":"data"}','["[f54b:3eec:1a3d:2bec:d025:cfbb:b951:6e47]:10751","169.51.234.97:16861","16.142.13.19:36771","[ad8a:a3fa:8d4d:c659:5e32:45dd:d95f:abc8]:43118"]','2025-03-25 10:08:52.471661925+01:00','2025-04-01 23:16:37.044513666+02:00',NULL,'100.64.0.76','fd7a:115c:a1e0::4c');
INSERT INTO nodes VALUES(86,'mkey:6e91fa8345d4795f579da2e0c8672463bfdc4035eb5f31fd0a511722e6986ca4','nodekey:0064d45bc62c00ddf68241741547493ef6a6d0f4ead224d963500ea42fb90ae4','discokey:3d63df2a68aa3ac1fd33e0bb8eabc59a5f7f03eec4c8d1e2e3693f69f2fe90ee','laptop-84','node086',27,'cli',NULL,NULL,'2025-04-03 21:56:30.423789526+02:00',NULL,'{"fake":"data"}','["36.19.57.186:49366","[cf88:94d3:5835:2356:c48a:6f91:dafc:9c5d]:24503","[83c:82b4:9941:dec8:30fa:4c7f:de12:fd5c]:60355"]','2025-03-26 10:24:31.473595709+01:00','2025-04-03 21:56:30.424301457+02:00',NULL,'100.64.0.77','fd7a:115c:a1e0::4d');
INSERT INTO nodes VALUES(87,'mkey:ecdf9b138473ce9d2b2b4861bf2a358bfda62032572e1474a9726f45f24e3702','nodekey:69ad63020724d64042e91204bbd382fe4f8e838d2eca106709dc2b61592462a9','discokey:f574c20bb2f8558f787798b4b89918e5bbfc8d3001ef41ab155d8adb4ceda4e0','lt-76','node087',27,'cli',NULL,NULL,'2025-04-05 06:05:53.807723942+02:00',NULL,'{"fake":"data"}','["8.73.3.103:62847","[fd18:384b:ef76:f4b7:6983:bd4e:70af:ce35]:42618","7.111.70.18:4634","85.240.97.0:21327"]','2025-03-26 14:30:57.179694234+01:00','2025-04-05 06:05:53.808074341+02:00',NULL,'100.64.0.78','fd7a:115c:a1e0::4e');
INSERT INTO nodes VALUES(88,'mkey:a4a50964463b8a2bb0778291c014c4ffc1de4b45140278723879e3afd7ad3b53','nodekey:7befe9b0bd2e08bc976c08e2b199069d0fc42d0ea8dbb346ccd706f1771c6d74','discokey:fc3a7797bd83d5c4109b33fb7c52cd4fca772e91d31787f7bb09ddf9d5d8df17','db-62','node088',27,'cli',NULL,NULL,'2025-04-05 06:45:42.584225511+02:00',NULL,'{"fake":"data"}','["48.12.29.120:59556","146.247.211.102:6983","212.18.134.205:41528","190.153.32.51:23708","33.50.209.62:29699"]','2025-03-26 14:37:55.198097806+01:00','2025-04-05 06:45:42.585458518+02:00',NULL,'100.64.0.79','fd7a:115c:a1e0::4f');
INSERT INTO nodes VALUES(89,'mkey:7c3f129f0eb0f541a270bd8d4236991cbcfc984d5fbc422e0f227401b3e33fcb','nodekey:9e8eac7d23ec974e4170fb5437c80c773c8f93b5d99fa479f0a7a92660423f4d','discokey:436409c6a1b9a7e50e2e7b7a07861f6d29f1d1a1f0934f8145d2d7a959b0daeb','srv-64','node089',28,'cli',NULL,NULL,'2025-04-03 21:12:36.172240418+02:00',NULL,'{"fake":"data"}','["165.160.173.41:62002","[d35d:30be:3c0a:c5f2:40ca:40f4:9b64:de92]:54562","[e40f:e89b:a9f5:d5cd:d553:b6:17f3:3d88]:21519","102.217.166.61:13721"]','2025-03-31 18:34:22.574460539+02:00','2025-04-03 21:12:36.172550446+02:00',NULL,'100.64.0.80','fd7a:115c:a1e0::50');
INSERT INTO nodes VALUES(90,'mkey:3aedbb5b71c6de73eeb59138b920c4c5a62debd4f738d4856115412e5f8f9318','nodekey:d7d143dc5680d770fe0ba2273eb3b01004593c2b187edafde8f89709de3d0078','discokey:7c45bed52e4d175be90c88784a39adcd765627238691aa9963191e0acef41624','srv-73','node090',27,'cli',NULL,NULL,'2025-04-05 07:31:24.445741627+02:00',NULL,'{"fake":"data"}','["[bf19:5560:9254:d556:e834:573e:63a8:92f1]:57176","[48b1:5eba:7dda:918d:19ac:f3da:239a:72f8]:6265","104.240.254.212:44730"]','2025-04-03 17:52:02.130025013+02:00','2025-04-05 07:31:24.473509723+02:00',NULL,'100.64.0.81','fd7a:115c:a1e0::51');
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "routes" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`node_id` integer NOT NULL,`prefix` text,`advertised` numeric,`enabled` numeric,`is_primary` numeric,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_routes` FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON DELETE CASCADE);
INSERT INTO routes VALUES(1,'2023-05-19 07:09:23.387641743+02:00','2023-05-22 09:48:18.908103256+02:00',NULL,3,'192.168.224.0/21',1,0,0);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2023-05-17 19:36:55.859473496+02:00',NULL,'user001','','',NULL,NULL,'');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2023-05-17 19:36:57.059073465+02:00',NULL,'user002','','',NULL,NULL,'');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2023-05-18 10:10:36.248939077+02:00',NULL,'user003','','',NULL,NULL,'');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2023-06-10 09:06:13.920718561+02:00',NULL,'user004','','',NULL,NULL,'');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2023-06-11 19:58:32.371218434+02:00',NULL,'user005','','',NULL,NULL,'');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2023-06-17 19:39:53.031565686+02:00',NULL,'user006','','',NULL,NULL,'');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2023-06-20 11:35:09.325846831+02:00',NULL,'user007','','',NULL,NULL,'');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2023-06-21 22:47:48.196234382+02:00',NULL,'user008','','',NULL,NULL,'');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2023-06-22 08:30:35.068995572+02:00',NULL,'user009','','',NULL,NULL,'');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2023-07-03 10:18:32.123226+02:00',NULL,'user010','','',NULL,NULL,'');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2023-07-03 10:18:37.130387602+02:00',NULL,'user011','','',NULL,NULL,'');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2023-12-15 08:05:06.013615212+01:00',NULL,'user012','','',NULL,NULL,'');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2024-02-03 16:32:42.224977233+01:00',NULL,'user013','','',NULL,NULL,'');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2024-05-03 10:12:38.220973042+02:00',NULL,'user014','','',NULL,NULL,'');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2024-07-26 08:08:40.979783263+02:00',NULL,'user015','','',NULL,NULL,'');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2024-08-05 17:32:02.878091894+02:00',NULL,'user016','','',NULL,NULL,'');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2024-09-22 15:48:00.287392203+02:00',NULL,'user017','','',NULL,NULL,'');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2024-12-10 13:55:11.256977421+01:00',NULL,'user018','','',NULL,NULL,'');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2024-12-17 14:57:58.550971236+01:00',NULL,'user019','','',NULL,NULL,'');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2024-12-17 15:02:08.053169491+01:00',NULL,'user020','','',NULL,NULL,'');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-02-06 17:43:41.935399542+01:00',NULL,'user021','','',NULL,'','');
INSERT INTO users VALUES(22,'2025-02-03 14:10:50.491924701+01:00','2025-02-03 14:10:50.491924701+01:00',NULL,'user022','','',NULL,'','');
INSERT INTO users VALUES(23,'2025-02-14 16:58:30.250289644+01:00','2025-02-14 16:58:30.250289644+01:00',NULL,'user023','','',NULL,'','');
INSERT INTO users VALUES(25,'2025-02-15 12:48:14.650995528+01:00','2025-02-15 12:48:14.650995528+01:00',NULL,'user025','','',NULL,'','');
INSERT INTO users VALUES(26,'2025-03-18 09:09:00.456523573+01:00','2025-03-18 09:09:00.456523573+01:00',NULL,'user026','','',NULL,'','');
INSERT INTO users VALUES(27,'2025-03-26 10:23:51.960113834+01:00','2025-03-26 10:23:51.960113834+01:00',NULL,'user027','','',NULL,'','');
INSERT INTO users VALUES(28,'2025-03-31 18:25:26.535133091+02:00','2025-03-31 18:25:26.535133091+02:00',NULL,'user028','','',NULL,'','');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_routes_deleted_at` ON `routes`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,146 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `migrations` (`id` text,PRIMARY KEY (`id`));
INSERT INTO migrations VALUES('202312101416');
INSERT INTO migrations VALUES('202312101430');
INSERT INTO migrations VALUES('202402151347');
INSERT INTO migrations VALUES('2024041121742');
INSERT INTO migrations VALUES('202406021630');
INSERT INTO migrations VALUES('202409271400');
INSERT INTO migrations VALUES('202407191627');
INSERT INTO migrations VALUES('202408181235');
INSERT INTO migrations VALUES('202501221827');
INSERT INTO migrations VALUES('202501311657');
INSERT INTO migrations VALUES('202502070949');
INSERT INTO migrations VALUES('202502131714');
INSERT INTO migrations VALUES('202502171819');
INSERT INTO migrations VALUES('202505091439');
INSERT INTO migrations VALUES('202505141324');
CREATE TABLE IF NOT EXISTS "pre_auth_keys" (`id` integer,`key` text,`user_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime, `tags` text,PRIMARY KEY (`id`),CONSTRAINT `fk_pre_auth_keys_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE);
INSERT INTO pre_auth_keys VALUES(1,'463a8b372963aeaca12400faa0c7ea29e9bfa3b4c59e9622',3,0,0,1,'2023-05-19 05:09:19.66636462+00:00','2023-05-19 05:14:19.664224869+00:00',NULL);
INSERT INTO pre_auth_keys VALUES(2,'77a019cb12c0d0b9347a17ab23fa4c87983814fe36bb2fbb',14,0,0,0,'2024-05-03 08:13:55.8614948+00:00','2024-05-04 08:13:55.85782156+00:00',NULL);
CREATE TABLE IF NOT EXISTS "api_keys" (`id` integer,`prefix` text UNIQUE,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE TABLE IF NOT EXISTS "nodes" (`id` integer,`machine_key` text,`node_key` text,`disco_key` text,`hostname` text,`given_name` varchar(63),`user_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`ipv4` text,`ipv6` text, `approved_routes` text,PRIMARY KEY (`id`),CONSTRAINT `fk_nodes_user` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,CONSTRAINT `fk_nodes_auth_key` FOREIGN KEY (`auth_key_id`) REFERENCES `pre_auth_keys`(`id`) ON DELETE SET NULL);
INSERT INTO nodes VALUES(1,'mkey:38315e39aa0f0ac09b49850ace14a9bffab27d4258daf52bedfcca5d3045cd0c','nodekey:5b55d8314717137fc190e4b42811f5eff1241cf32cd24d768c1e710962884db4','discokey:ac65232fe17445944990c9532faec80c27081443997d02b1d3586e7b481261b3','laptop-74','node001',2,'cli',NULL,NULL,'2025-06-22 07:21:58.271483603+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[bab2:a8b9:e00d:9655:f397:9a5e:c6bb:2300]:9564","[b8f0:cf44:22c8:82d1:f79:c3eb:9144:c24f]:6142","[8e25:af1:e31a:8fcc:7dcf:be1:a3c9:ed6a]:38766","[37a1:215f:bf3d:3fb1:6399:f7cb:4048:3ca8]:51666","137.242.125.72:25376"]','2023-05-17 19:38:13.531518257+02:00','2025-06-22 07:21:58.271647152+02:00',NULL,'100.64.0.1','fd7a:115c:a1e0::1',NULL);
INSERT INTO nodes VALUES(2,'mkey:1e274f40556282a5bbab04b6754985233ccdf971b663e5b38fc027035e833e9a','nodekey:5b16c7e14191ca2e57eccd86ec636db605fa5dc2c8856be5fa7f9b087cf24890','discokey:5fd2f116700fd48ce06e35e8dd11c847ccd7694e01ec4b3f6ef25f67c14ee197','email-21','node002',1,'cli',NULL,NULL,'2025-04-17 20:26:48.332385788+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5aae:55d1:7b5d:628d:bc07:b3e0:eca2:836d]:13912","[5583:8a0e:1564:ac5b:98ab:59a3:126:cba2]:35537","84.23.188.83:48876","44.184.117.89:36643","90.223.136.253:7056","[e43c:be7:7f4e:8217:a009:7f9d:a510:1af6]:18872"]','2023-05-18 10:09:21.757289398+02:00','2025-04-17 20:26:49.018604197+02:00',NULL,'100.64.0.2','fd7a:115c:a1e0::2',NULL);
INSERT INTO nodes VALUES(3,'mkey:5b57ab9712ce9587cd887a650ba629d2aeceb57d83a0bcadf9fa19a33e141a07','nodekey:788dce6f52985afca7b36ad6961dd93b7cd6d102574e243c1f39b14804b370a9','discokey:8b7c85ead8a9e7225cda4c5d1975dc426aefe919b4153f4653228e325c015bfb','desktop-51','node003',3,'authkey','[]',1,'2025-06-20 23:54:25.334614243+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fdbe:7908:805e:6c8f:47c2:2c87:b1c4:44]:48470","188.237.187.170:7622"]','2023-05-19 07:09:21.399903526+02:00','2025-06-20 23:54:25.335360998+02:00',NULL,'100.64.0.3','fd7a:115c:a1e0::3',NULL);
INSERT INTO nodes VALUES(4,'mkey:538f91fe9e485697ce13f9444ee0dadf2aaaed712fdfa03ba102113c6505db37','nodekey:1936bdc567d6758b11b2cc06ea7ff74bb933a44421fb17323965d5a402e39783','discokey:e8b762a384d644175f3b4e4fd36867b2c435e03eb0bf6b9e7ebd4f0ce83c13ef','lt-57','node004',4,'cli',NULL,NULL,'2025-06-28 12:23:20.734405211+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f6d5:e904:28e7:a5a4:12a3:96d8:9391:b22c]:37336","113.59.7.205:48432"]','2023-06-10 09:31:51.940506933+02:00','2025-06-28 12:23:20.735270748+02:00',NULL,'100.64.0.4','fd7a:115c:a1e0::4',NULL);
INSERT INTO nodes VALUES(5,'mkey:12afa721b0310fd9cf7501a19e5f23a2d33c87f989a9b0233bc09e8eb9e5eaa2','nodekey:83e8f99465cfd0ef79190bfb341bb742b39d9ddd7cfeab237153b58858a2fed2','discokey:d4fdc314c7b73e21589efef171f10158379ade1adbdc281482a62c6c20fc2ed8','lt-50','node005',4,'cli',NULL,NULL,'2025-06-28 12:20:57.298589096+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[8105:c5c2:647f:e97e:85b7:577b:20b0:e4f]:16947","1.79.159.39:34092","[b12e:af88:3c55:41f8:5fba:2aa3:3248:15c1]:23643","186.84.191.82:2621","[c9d0:4e15:513a:171b:9911:f9a0:cccf:cd83]:24151"]','2023-06-11 13:56:42.694329408+02:00','2025-06-28 12:20:57.298996156+02:00',NULL,'100.64.0.5','fd7a:115c:a1e0::5',NULL);
INSERT INTO nodes VALUES(6,'mkey:229f561cff2994f922e02f0e286f6afacdb603245fa1a9c234ddb81f79674fd2','nodekey:edde606fce52c6196c994a72eb0f24ee4d4b8047d22e16dfef3f6531a8eaeb4f','discokey:2814289eb6e7bbd6093798f51410a2babab3f6a0d9ca105136d1ed387cb2ceb6','srv-66','node006',4,'cli',NULL,NULL,'2025-06-28 12:22:36.34542317+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["128.160.129.121:10590","48.173.178.104:58309","102.207.203.66:23963","153.152.90.188:59135","187.96.173.136:34092"]','2023-06-11 13:57:44.975695604+02:00','2025-06-28 12:22:36.364369698+02:00',NULL,'100.64.0.6','fd7a:115c:a1e0::6',NULL);
INSERT INTO nodes VALUES(7,'mkey:1634b8df4138ea0986578531f3be5bc398d11c83b226674d9b4b0d6daade5268','nodekey:9fa6e75dec8ed3e22a1f201fe661e67fe03de2583bb2e16ec1e97ec8b34a1ede','discokey:d4408013dd173b024ca49301592fd89d89260615f83253780b6d2c9af652f75d','web-46','node007',4,'cli',NULL,NULL,'2025-06-28 12:23:01.214171138+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["189.17.47.14:59833","[fa71:f70b:e65d:59b5:f599:8597:2bc9:56b6]:12277","[8ddd:4aae:2b94:4c1a:d05f:65d2:2bdb:b400]:42839","[c493:a941:58b6:7634:6221:70ba:20e6:40c4]:35486","[9b54:61a6:c678:edac:956f:741e:5e2c:9ec9]:17930","[cd3f:af1c:fcb4:bcb3:806e:adf4:3f3f:ab36]:58513"]','2023-06-11 14:16:56.951313537+02:00','2025-06-28 12:23:01.214662148+02:00',NULL,'100.64.0.7','fd7a:115c:a1e0::7',NULL);
INSERT INTO nodes VALUES(8,'mkey:c841efdb3731e5e826ebfecbcb50460016e7020a2b73ac202aaffc69f1260ca4','nodekey:9bbd9e2ed99a94a3284391ef3e949806578fe58f5c7e5f444cfd72e1068c7252','discokey:c763a94031000944026c3243e175a7dde5ec85ad92dffadf2ba365b8d6b4fdf4','email-75','node008',5,'cli',NULL,NULL,'2025-06-28 12:23:04.274230621+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[dd24:c2dc:debd:ad2f:ae50:cd15:9cd2:b296]:24266","[489b:6c59:1877:6215:ddc8:57f8:78dc:321c]:3025","77.213.161.20:47662"]','2023-06-11 19:59:30.401970393+02:00','2025-06-28 12:23:04.275091119+02:00',NULL,'100.64.0.8','fd7a:115c:a1e0::8',NULL);
INSERT INTO nodes VALUES(9,'mkey:b1e7fb42e35b0219c318fee0717c988ab851714c6f487bb26a184b8340920d87','nodekey:da9ddc2fadd4a47eefa8a541e9c3e316353a5650a26d30d258d60ee9fce9c899','discokey:c52edf1d688d73febbc73c977c723a638da546afcb3813de4e716c1e013404ba','lt-35','node009',6,'cli',NULL,NULL,'2025-06-22 06:38:00.485835142+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b9f9:eec0:d656:cd83:8595:46fc:b677:6ade]:17494","126.251.133.86:44347"]','2023-06-17 19:40:45.468789461+02:00','2025-06-22 06:38:00.486219076+02:00',NULL,'100.64.0.9','fd7a:115c:a1e0::9',NULL);
INSERT INTO nodes VALUES(10,'mkey:dc84e5b1cf58ec8f7200ec0a655c1d5843c520ea59aa7ddd111ad5c9beba9bd8','nodekey:3c06f5a6d7f267023044ab632892b51f5af1ce4d84f0739e88823bc22cda6c57','discokey:3c1aa008a7811012038cd6658b6f290b3d252074c47d23cf1766f878340a30bf','desktop-75','node010',6,'cli',NULL,NULL,'2025-06-24 15:38:08.972653514+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["187.166.20.165:11208","78.47.168.253:34957","[1d14:fb12:d0a0:ad7a:ad7d:496b:154a:7042]:33635","41.172.94.101:32111","223.204.123.230:38090"]','2023-06-20 11:18:35.905417341+02:00','2025-06-24 15:38:08.973364357+02:00',NULL,'100.64.0.10','fd7a:115c:a1e0::a',NULL);
INSERT INTO nodes VALUES(11,'mkey:94da5084f8fc1cfe7671b94a0d7ef767719bd0fed89f16bc2726728db4cd9d25','nodekey:e6527563ef7a2647b6c719e0c9c95c1ab2a2eeef7fbb3f46a108ee0fbca026f0','discokey:f76230afd20bfcce74fd0d689b35e82cab5bfdf4cd1530073e87b1acae513c2b','web-50','node011',7,'cli',NULL,NULL,'2025-06-27 16:44:35.818823257+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[bed5:a4c2:8547:c044:9956:2566:d794:c918]:56801","113.147.88.203:61138","22.207.212.228:27547","[2c3e:2260:8c34:275:2287:b721:1bdb:d462]:59540"]','2023-06-20 11:35:15.063855316+02:00','2025-06-27 16:44:35.81914126+02:00',NULL,'100.64.0.11','fd7a:115c:a1e0::b',NULL);
INSERT INTO nodes VALUES(12,'mkey:4d2ff8526b10e056a5d073d5640fd28002ca21b561c55407175712a98e37ada7','nodekey:a1835798e4fefbece3000abb9afdd3cb01e5a4eebafc1218ed627cde2175c1f1','discokey:24b8f6da3ef9e024e273918de8869fdfebc45f789d14c4a50a592cc27259f1c1','db-64','node012',5,'cli',NULL,NULL,'2025-06-28 12:22:57.399153574+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f1ba:2aea:9e9e:2802:ebb9:ba04:a564:7998]:52919","[ede2:462a:f99c:24c3:b1b5:8b97:abe2:3ddb]:65141","[dfe7:6f6b:a382:4fc:a3f6:eb9:9ebc:5798]:1474"]','2023-06-20 18:22:35.061914624+02:00','2025-06-28 12:22:57.400249031+02:00',NULL,'100.64.0.12','fd7a:115c:a1e0::c',NULL);
INSERT INTO nodes VALUES(18,'mkey:5e192b1b323439fcc3b921c4f523ce9b7cce867220bd092d23be2451ce93a4a5','nodekey:1452cb2c8f26c8988cd8d8ed42957c78e3ab922bdf9773978c853e4254e23fbb','discokey:b7b41dc5de1fdcc4bd609dc72f79d27269367dbf72ab73ab61e998aa31eac6a2','web-19','node018',9,'cli',NULL,NULL,'2025-06-27 21:23:45.610301586+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["60.5.210.145:1193","[5698:e318:b38c:4331:5152:c2df:743f:8ead]:34839","33.51.84.119:46756","[c844:704e:c3c0:e709:8f94:3564:1b4d:d2d9]:8357"]','2023-06-22 08:30:54.08720463+02:00','2025-06-27 21:23:45.610590171+02:00',NULL,'100.64.0.16','fd7a:115c:a1e0::10',NULL);
INSERT INTO nodes VALUES(20,'mkey:29574231af6530b1386ebe61550e3b14263500b7a70395e7b540a54ddc3fc777','nodekey:c1d6f11f1bdc2756be5836e556e2a8c10f50aed84c969662b67ebd942db8b8ce','discokey:dd5d8c17120e8560f2698b44d571ca1b0bb90e012dd34be9d31ae169d26ca344','laptop-98','node020',11,'cli',NULL,NULL,'2025-06-27 12:57:39.754859479+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["26.88.253.147:32968","[3138:83c6:ae09:a073:7888:71e0:494:3863]:59700","191.156.96.176:5489","[166e:c30:4d73:440f:456a:22be:71e1:142b]:33036","[6d05:6bb8:3bec:c76c:1890:ca9c:2684:1bbb]:31223","173.218.108.179:51272"]','2023-07-10 12:40:34.838579199+02:00','2025-06-27 12:57:39.755061411+02:00',NULL,'100.64.0.14','fd7a:115c:a1e0::e',NULL);
INSERT INTO nodes VALUES(21,'mkey:94ebb2a00b9bbfe15d9a19a85409c5af01aa1b518319fbb394421888fa9fb7f9','nodekey:9109c5a733073fe487b72a328742f98f4e6e71748f1380562c46b1aaa2aa3f7e','discokey:1f11ce0393834879b2b9bd10b5fe034c85615ce94b30f67fe6153747b65653dc','laptop-07','node021',11,'cli','null',NULL,'2023-11-20 07:19:19.447470862+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["85.50.19.51:63246","[cff3:24ee:4692:f8a0:842b:c26b:e549:1f3a]:31064","207.187.74.99:12216","63.3.67.150:22907"]','2023-07-10 12:42:43.290469734+02:00','2024-09-18 16:15:14.03886353+02:00',NULL,'100.64.0.15','fd7a:115c:a1e0::f',NULL);
INSERT INTO nodes VALUES(22,'mkey:ec629722edab9383e9f816b50c2221486d52a55dd0735be575d20441b6e0c0cd','nodekey:8fc1644973c6614621da30be00b52f277c5e57f80032c681ac084354e7974665','discokey:286e95bbaca154ac900767ecd1f028764528a176cdc7c6e0bd3e0d2fff71207c','laptop-16','node022',6,'cli',NULL,NULL,'2025-06-26 08:55:27.018436146+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fc33:9337:6f8c:253d:d87e:2d45:d618:5830]:33733","[6f37:bdc3:19c5:7d22:190e:a9d4:1ca1:e1cc]:59098","[4b06:6a05:94bd:4bca:676:93a4:2e20:b923]:23713","[68:80fa:7b30:3a0:d1fb:3e89:2c73:256b]:30308"]','2023-08-05 12:08:48.132161695+02:00','2025-06-26 08:55:27.028290638+02:00',NULL,'100.64.0.17','fd7a:115c:a1e0::11',NULL);
INSERT INTO nodes VALUES(23,'mkey:0323ca3e9858de1b53d0e3750e441d4da9a63f7e526be63b98430dbb51c66ebb','nodekey:8cd1023d1cdebd18f0f05d30852cde076e87cda3d6bc8a2785ef8f7ef37df099','discokey:0dd0075a712979849441f180da7e62bc73069050a4d25789e6f6afbcd4acb072','db-17','node023',12,'cli',NULL,NULL,'2025-06-08 16:50:57.344745353+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[f371:f639:cf31:c836:19ec:b41f:f0cd:4487]:36912","27.211.232.205:36366","[e83e:63c5:7e37:2195:1ede:1e3b:f549:85d0]:56150","[92ea:991a:46a1:e1e6:6b82:659a:acc7:2272]:38018","93.129.193.97:13477"]','2023-12-15 08:05:56.592241745+01:00','2025-06-08 16:50:57.344868501+02:00',NULL,'100.64.0.18','fd7a:115c:a1e0::12',NULL);
INSERT INTO nodes VALUES(24,'mkey:f24720736968f27b5c78d9c7734a083464275b63b50662adfce0d0ad5304e4d3','nodekey:b254e68666635d7fdae5c391f6ce81b802e018cf431408646f604c5ca8dbdb8c','discokey:498b9f4eca5fb3725cec3570d70c768660e124d3e88a85949706bc7384109de6','db-59','node024',12,'cli',NULL,NULL,'2025-06-27 21:59:35.663631021+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["43.114.58.145:47143","[758f:df49:401f:abcb:57ff:c04b:79e6:8519]:62313","[2458:76c5:7d48:c26f:34e:1663:6911:ff6e]:22202","66.66.46.14:16686","[fd3e:93e:a9b5:2034:a98e:4ab1:6317:f13a]:46054"]','2023-12-15 11:14:36.765183054+01:00','2025-06-27 21:59:35.663899525+02:00',NULL,'100.64.0.19','fd7a:115c:a1e0::13',NULL);
INSERT INTO nodes VALUES(25,'mkey:f10b7f9f385e48dc99ec0944b8a04ec4d3e5613587419c134440121fa747ee75','nodekey:9559349d25dd3fa88b9595cb4ccebeeb4712338757a209e936afe37ec2643dbc','discokey:b9a07315c1eb2e074871feebe899bd2ecae64d98a8edf08883785130ef386728','laptop-25','node025',6,'cli',NULL,NULL,'2025-06-28 12:22:37.905312423+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9e60:1bb7:b542:2f50:269f:5ef:72b6:f4ba]:34677","159.52.2.200:7205","[5b7b:e424:ea77:aa8a:f835:d6bb:2e1f:52ea]:19152","[bb06:d322:7cec:426b:ef38:55d0:e7ce:95bc]:31597"]','2024-01-05 17:32:40.940566279+01:00','2025-06-28 12:22:37.906446459+02:00',NULL,'100.64.0.20','fd7a:115c:a1e0::14',NULL);
INSERT INTO nodes VALUES(26,'mkey:b07183e67f21f2d1b4f7f4eccb393c57257683629a59758f393c47b759f5da81','nodekey:b246eeb06f7aa31c0f92aa63a6836e6ecde5cccb73d0c03e103601a7cded51b6','discokey:30fbedab81413cac0736dcd7b473511905658726861a326a556bb2df80bf15b6','db-13','node026',6,'cli',NULL,NULL,'2025-06-28 12:23:07.762159769+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[769:97e6:7060:f428:ee55:f77:43a7:8d18]:61446","[630f:7c1f:d48b:ea66:23d7:1ab9:8bd1:10f3]:25600","160.27.109.39:47606","[62f5:b64d:d2e4:9015:b03a:c64e:656:8c59]:5020","3.166.190.93:19852","[243b:de9c:b8c:ea69:b66d:b3ce:14a5:9671]:22747","32.167.123.100:57075","[2c67:a9f3:3163:c675:3386:2447:1cc:ed3a]:42590","64.137.67.1:56198","163.42.128.241:47535","49.160.22.202:42427","[1526:e34a:8857:394e:bbe0:c043:4b37:68d4]:5245"]','2024-01-05 17:34:19.811670479+01:00','2025-06-28 12:23:07.762465037+02:00',NULL,'100.64.0.21','fd7a:115c:a1e0::15',NULL);
INSERT INTO nodes VALUES(27,'mkey:d95c13394bdb912ef51f3123fdb0495feef567dc13724efd8dea17b33ce7aa1d','nodekey:fd8be528ea41d74697d46084c8cf560fff1c21b3193bec752ba2d60457396b19','discokey:9ec066ac46492f546a67be34b417eb469dfc95aff8b7be28be3bd8b36bf98653','db-72','node027',6,'cli','null',NULL,'2024-01-16 14:32:21.570104175+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5760:dc4e:eac8:5c38:6c9c:8451:98d6:4e9c]:21573","[e350:bf94:9128:bca7:8c74:ab49:c419:4c50]:18052","222.155.102.116:42746","[e32f:122e:8a:e473:4b83:8ec9:61db:60ce]:37054","154.68.57.163:54048","[c5a0:942c:ed88:2277:3c9a:4f65:a25e:5b40]:27852"]','2024-01-05 17:48:25.466030859+01:00','2024-09-18 16:15:14.040766068+02:00',NULL,'100.64.0.22','fd7a:115c:a1e0::16',NULL);
INSERT INTO nodes VALUES(28,'mkey:08347db9fbe8e5e7a968c2ab9ddd1ff530ea98163c0bab7769316307545f4d46','nodekey:b6b03efd7deb52dbe0298708ea37400510ab7589b0b1787eac1a5f9b50aa7c80','discokey:6a0ab2f3329d9fe5f50c76f9f3f1d2e797574af93d823a511df57f45414f647e','srv-42','node028',7,'cli',NULL,NULL,'2025-06-23 17:14:19.693135279+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["42.99.149.47:5231","146.122.164.252:36824","16.15.205.75:58574","82.136.149.34:28707"]','2024-01-15 09:34:54.847632697+01:00','2025-06-23 17:14:19.693240007+02:00',NULL,'100.64.0.23','fd7a:115c:a1e0::17',NULL);
INSERT INTO nodes VALUES(29,'mkey:4a6e46330ccd4b3026337cdef37485c27592babda329107565c2a19d97253dcc','nodekey:17de47da1955a8a034788ae671c34fb10083568bf9e2f7494276cb2636065246','discokey:449f5f35a3507974cf03e3ac5c055d890de5122f57a7c2d84a0d3b324998607e','desktop-17','node029',7,'cli',NULL,NULL,'2025-06-27 14:00:54.026931428+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c2f1:82ab:922a:9b9d:f53d:a0b3:bccd:f6af]:299","[d28b:7b33:1f88:7583:7ed7:a923:4c90:9ee0]:62318","[68e3:a070:f02c:708c:a057:b579:aee9:4d25]:11747","[7224:b76a:cd04:e6d2:67fd:fec0:2f14:1837]:29002"]','2024-01-15 15:18:12.2871978+01:00','2025-06-27 14:00:54.02708773+02:00',NULL,'100.64.0.24','fd7a:115c:a1e0::18',NULL);
INSERT INTO nodes VALUES(30,'mkey:6472928030d718e6e2802fb3bceba7c14b4716d994be1b3562a1d03104fd37a9','nodekey:78bd59aba83429486e0ed2d50873211974650b2e2ad8f79dbc07c5d13d00c5a5','discokey:86ead449e1be5a300287e690fb9522ba4da3e5bdeb593d6261e4117708fe3ade','lt-82','node030',7,'cli','null',NULL,'2024-02-05 12:14:40.065688294+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[fd0d:f112:f642:c343:ac14:8ede:dc04:e2d9]:58412","[8a1a:5c17:bb81:bb69:c7db:3513:f14c:ca2d]:52077","123.235.220.59:59925","155.210.184.45:60093","[963:536a:33e9:99fb:c204:d59c:29a8:ac18]:39005"]','2024-01-15 15:21:43.217136004+01:00','2024-09-18 16:15:14.041757308+02:00',NULL,'100.64.0.25','fd7a:115c:a1e0::19',NULL);
INSERT INTO nodes VALUES(31,'mkey:212b1ffd20a790e4f3fccc87a3f2d76a0c6149d4f2472f4eba76b40671f500af','nodekey:7b88563747cd8ad8526dd795e1dc858d84b4a9fabf3b009ad2ec5f6e7cecdfd6','discokey:660bda5c0e80a6bb18ed7d69dc80de790fc3f4a64bf5a6bebb69ce73ff3d6755','email-99','node031',7,'cli','null',NULL,'2024-02-22 08:35:27.098819037+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[7016:b48d:8bcf:4ccd:8679:8c47:1c66:cd1e]:41980","22.231.20.85:41616","129.130.98.189:47833","[99c0:d769:2f38:10e9:c01a:e3d:898e:afc]:17505"]','2024-01-29 16:05:35.338524634+01:00','2024-09-18 16:15:14.042191514+02:00',NULL,'100.64.0.26','fd7a:115c:a1e0::1a',NULL);
INSERT INTO nodes VALUES(32,'mkey:c4853fdd63bed5a98baaf74df437eff743f8a968fda613fdf1f2a111e7c1b100','nodekey:9fc3f32ce92ab7f8ab987f16258b11265037a47cd9a1a68ac0e07bd3c279c183','discokey:e52f22aa8e170b6a031e682b5ed6e5f790f2d6ae1eecb752de1b362a1cce7bd4','web-89','node032',7,'cli','null',NULL,'2024-04-09 13:59:43.37062537+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["133.177.207.78:47765","[d1b1:653:cd17:f39c:8a89:85d0:c7aa:b53]:5279"]','2024-01-30 10:41:58.31917869+01:00','2024-09-18 16:15:14.042506082+02:00',NULL,'100.64.0.27','fd7a:115c:a1e0::1b',NULL);
INSERT INTO nodes VALUES(33,'mkey:805d05918a94047740c914235c3c614042b05d18458f331ba0a46ee22d2187e6','nodekey:ebc009009bc015bc45f6499b04b7af9ff2ceff22c0f9676749b10c92f422a8ad','discokey:b6d83e1f6f0e86c3808cffb227cb6649bffcf5d4ba1596f6fd58f41b8b727133','db-70','node033',13,'cli',NULL,NULL,'2025-06-27 21:25:43.528971537+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a1ed:3568:9b48:6735:e553:a273:ea02:7271]:46613","90.225.231.207:5490","176.14.56.16:22127","[6224:9e4:5921:7fda:2437:15c6:a1b1:adf4]:15557"]','2024-02-03 16:33:26.706408143+01:00','2025-06-27 21:25:43.529881502+02:00',NULL,'100.64.0.28','fd7a:115c:a1e0::1c',NULL);
INSERT INTO nodes VALUES(34,'mkey:a404e578d3edd3e3d879e9f1946c859b5982c59f5e528bf6b987bd55de00b25b','nodekey:ad3013f116c370866fc9134b66999bb05e2dc10a8e2944230c3d9893c0a94c67','discokey:4fc6b881a4f170158e94336444d2cf0dea6a387b06dfc5fde08ed15d0f391c90','lt-08','node034',13,'cli',NULL,NULL,'2025-06-28 11:18:54.787303405+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["172.87.199.175:12624","71.151.27.31:51063","[f0d6:21dc:48f5:63f4:daff:a3c4:7d60:51ea]:17286"]','2024-02-03 16:42:32.683785672+01:00','2025-06-28 11:18:54.78775904+02:00',NULL,'100.64.0.29','fd7a:115c:a1e0::1d',NULL);
INSERT INTO nodes VALUES(35,'mkey:06f7b17a75e55b445cc41ad693565fd93da6f4d690a305f8e207d69b028bf859','nodekey:0f4a7ade77ba260d9b318ac18c6c1f2f0606af7edc29128a33984558b6a047b1','discokey:e3cc18eacc630c61f2a2ad6a4152ee2af4b93f0ff767122676a6e02f58f5f01e','lt-11','node035',5,'cli',NULL,NULL,'2025-06-28 09:59:51.80761163+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["94.107.22.1:45906","68.64.112.147:37449","175.25.134.28:16830"]','2024-02-03 16:51:52.010016072+01:00','2025-06-28 09:59:51.808121221+02:00',NULL,'100.64.0.30','fd7a:115c:a1e0::1e',NULL);
INSERT INTO nodes VALUES(36,'mkey:37a68d32b77a701b08f9aab0e407525cad61a79aae25512a47e834e67070caa4','nodekey:ac40d87508d60cd5ffa0c21bc569b85685667e418434e5d83cee138ef1552ac0','discokey:dc90acbf7b156f6a5dd8e2f0a36638a99994148f16138230269ced79ff89fb8b','db-19','node036',13,'cli','null',NULL,'2025-01-19 14:01:48.956567669+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["68.209.122.217:6048","[edcb:62c0:3e8f:3a8c:93dd:1672:b477:ce1a]:18240","[bbb7:5b4d:218d:55ff:ac9b:1fb6:c933:9a55]:63943","18.156.132.228:63356","122.50.5.12:7674","[a641:3f06:63bf:b716:4658:1e5b:ac6f:e14]:13490","197.206.147.31:58506"]','2024-02-09 12:34:57.879970954+01:00','2025-01-19 14:01:48.956830267+01:00',NULL,'100.64.0.31','fd7a:115c:a1e0::1f',NULL);
INSERT INTO nodes VALUES(37,'mkey:2a302116eb66f119bc13369abf20be603cc433e83e4607480a6731e38ba9e8bf','nodekey:9f97afa1f234c491e12dbf3e613e4f4525d64aaa90cd40dba2919e8d315cbd27','discokey:7470aa5ff096df380fc115e26326342355093e00a5b1c7d9e6a6e91228bd2e19','srv-81','node037',5,'cli',NULL,NULL,'2025-06-28 12:21:12.129795624+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[5071:881b:75ae:d129:45ec:cfba:1a25:63df]:48282","[f94b:a947:7d11:b9f2:7758:640d:478a:1da8]:26194","[6b8d:8778:d67a:4cb3:1c6:1986:f223:15a9]:12844","[e1b5:d8f1:23f0:93f:bf72:7b6a:5925:353c]:52615","[3ec9:71d2:c2a5:cc2f:e2e8:5740:7b01:4a9]:29794","[4b64:fce2:293e:a24a:9995:b0fa:ff27:5401]:58695","[5eb0:a5cb:e9da:1552:e478:f921:c3d6:ff40]:57647","[8c40:dd59:c31d:dd18:321:58a:11fa:d85a]:43064","168.4.78.117:48474","90.45.218.0:29326"]','2024-02-27 12:14:40.452601042+01:00','2025-06-28 12:21:12.130426228+02:00',NULL,'100.64.0.32','fd7a:115c:a1e0::20',NULL);
INSERT INTO nodes VALUES(38,'mkey:0cb7a61e162c150a2397b17feaa98b86ecd8eb2cb899f406f9cffc5f94bed186','nodekey:aaf8f2337e0809d347caec27b07a8a5ffbb41110569b50a386ed852b61a4b1d1','discokey:b8c6a5277eeb27573ce8647557540773904cd4559a9b2fc38c8ed0fe0c9d3b01','srv-58','node038',6,'cli',NULL,NULL,'2025-06-28 12:22:38.364224551+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["189.185.249.112:45061","117.137.197.148:33075","165.145.180.67:23334"]','2024-05-22 08:08:16.045350656+02:00','2025-06-28 12:22:38.364913686+02:00',NULL,'100.64.0.33','fd7a:115c:a1e0::21',NULL);
INSERT INTO nodes VALUES(42,'mkey:08032558a6f70b2a3125f92860e4e3261cb87d9fa5507ad75b00d14d506e42ed','nodekey:d7a05dda88f80df694090cfdd8c5e0fccead6014378741fdc8166bce304eac7b','discokey:adecd0e23ec16e2ad50c7df1d855cc7d2ac016adf103f4d9373ab4d9da6d38dc','lt-88','node042',14,'cli',NULL,NULL,'2025-06-06 20:55:32.708129231+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[a393:f17f:6728:82e4:c1e7:2367:82d0:daaf]:18560","[d192:9897:4cd7:bfb5:de36:fc03:8cf4:c60d]:25096","212.199.67.213:11150"]','2024-07-03 11:12:29.418355657+02:00','2025-06-06 20:55:32.710128529+02:00',NULL,'100.64.0.37','fd7a:115c:a1e0::25',NULL);
INSERT INTO nodes VALUES(43,'mkey:33e764ae40265089c5e7dbfc8571aa23bb390fc7e1e8bd2f3e0cd6891c308214','nodekey:c444c9ff652ba29181a5f7fdf991f91f704e6698237ee18b0649c81879ec932f','discokey:2e1db3a1eea266673acf7826aa44b5aa6fdd23c6ba41330562b37c5a523ba358','laptop-81','node043',14,'cli',NULL,NULL,'2025-06-06 20:55:32.888930994+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["190.179.215.222:61930","45.131.187.230:22916","[510f:af99:ed4d:f53a:fc21:8640:9ad9:4930]:16050","[5ea4:3410:eaa2:9da:b8d:b61a:2d9d:edaa]:3526","209.107.206.184:46974"]','2024-07-03 14:48:50.263910778+02:00','2025-06-06 20:55:32.892202297+02:00',NULL,'100.64.0.34','fd7a:115c:a1e0::22',NULL);
INSERT INTO nodes VALUES(44,'mkey:1099debb0ba187ef1f43f001c75abc118eaf017bf3bd6b48ca333fb046b98de9','nodekey:d49ef9ad4a7ecbdabcd24cae92d9ac32fbb765467cbc20abe61b4bda6ef15f1f','discokey:9f2faf39514eccb7f3d7d66ebcaf804474f75284d8b1aedbf97aee6ccdf47ed5','laptop-84','node044',14,'cli',NULL,NULL,'2025-06-06 20:55:32.852055717+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[183d:f2d6:b80:36c5:318e:64e9:7f4a:b389]:12440","169.173.198.12:15274","[e5df:1889:6ac5:7d21:4dfd:614b:7eb9:d93c]:792","119.123.40.237:58615","[415:97d8:4ecb:2a7d:14ae:64f3:7a01:471f]:15771"]','2024-07-03 15:23:48.066044194+02:00','2025-06-06 20:55:32.876004334+02:00',NULL,'100.64.0.35','fd7a:115c:a1e0::23',NULL);
INSERT INTO nodes VALUES(45,'mkey:29eedea8083105a21470a51112b2486ae4c79221e2b6b17e4c3c84f965013513','nodekey:b3249157ebc705f134a366e28beb2d7646a40bc4171bb6d6fece1e750c85379b','discokey:64cb6eaee39eca7e3ad7f1225c216bf2826a8a951b91a631cfacf3b5ec99c2db','web-31','node045',14,'cli',NULL,NULL,'2025-06-06 20:55:32.853701621+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["14.153.231.75:19825","[acd8:3779:7b6c:3a71:c15a:e323:a721:c9a7]:63377","[6816:3377:edb0:3f8e:a65b:bd60:461b:ceb]:24642","147.3.7.139:46940","[7526:4960:73a9:911a:1fbf:92bf:1219:a6bf]:25440"]','2024-07-03 15:54:01.706018896+02:00','2025-06-06 20:55:32.862645337+02:00',NULL,'100.64.0.36','fd7a:115c:a1e0::24',NULL);
INSERT INTO nodes VALUES(46,'mkey:8c948629fd6a1b66977db7f1c6f11c30f1ef99da371f2f88f6bb77d79a3fd157','nodekey:af7e300b7119ffd77488c76a756660fec6ce7b4036c9e6c5159e1dca503dbb3a','discokey:a266b60014f0798c0e31f9e11ad5eb09082bd1178e3a2a0d5791801c1f2fc415','srv-47','node046',14,'cli',NULL,NULL,'2025-06-06 20:55:32.644737833+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["57.87.213.13:62573","160.29.16.50:26152","217.233.117.213:34230"]','2024-07-03 19:38:07.783745318+02:00','2025-06-06 20:55:32.659793776+02:00',NULL,'100.64.0.38','fd7a:115c:a1e0::26',NULL);
INSERT INTO nodes VALUES(47,'mkey:bfd4f59c7df7a9f7c3ed7736b35aff1895318a2ba2de7dbeb8c5911a9fdab6c2','nodekey:18f4f5a2905ba4ddd20ab6fc31945f78cc312cf8b453a544cc6c5d7456a1f8e0','discokey:dc5f0a3318228e929379c1b82984b0b955988131f3cf1522f547680420acf39d','web-50','node047',14,'cli',NULL,NULL,'2025-06-06 20:55:32.624765906+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["55.20.245.10:37304","98.38.29.194:12660"]','2024-07-04 10:38:08.344092869+02:00','2025-06-06 20:55:32.642819932+02:00',NULL,'100.64.0.39','fd7a:115c:a1e0::27',NULL);
INSERT INTO nodes VALUES(48,'mkey:5bbb77092f21b4835b0ae1af3871fc48445819c9b6e5ff9c46ad4a623b662ae8','nodekey:191c7cc089ee160c07b63e2b6b5ef0701d76d914009420baddad9bfce13e3f2d','discokey:712cadffd23f106abeea82ae70bbae8e06c2a58f3db617afd0d149b3012c64fb','web-61','node048',15,'cli','null',NULL,'2024-10-20 13:53:33.831192385+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["186.118.23.242:32373","[5bd8:a5a8:1b3:5e41:3c4d:5fc:4c0:c6cc]:24847","193.95.63.195:40587","166.176.60.55:23674","[33c0:859c:4a78:8bdb:359e:31e4:1e71:7e39]:50383","[3aab:52a2:b9d3:1816:5627:336:6c60:57d7]:13486"]','2024-07-26 08:09:56.608302315+02:00','2024-10-20 13:53:33.831387627+02:00',NULL,'100.64.0.40','fd7a:115c:a1e0::28',NULL);
INSERT INTO nodes VALUES(49,'mkey:0aeb63f409c65f5e3fb88049d610c3b58476d4d9ffa41502e928b526888f937b','nodekey:39c2ec4b5e9e4ffabfbf2b0e77e12d71b281e75945e80ab2318b600cb7a2794a','discokey:36e41b77ca844d02104807b6ad0eabe3b14252fe06b0e4c3ee6d0ecb51abbbeb','lt-93','node049',16,'cli','null',NULL,'2024-09-19 09:07:18.28136023+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[4451:be15:8bc9:696f:fced:a453:f30:99db]:40973","[ff9c:d2f4:d4ae:92b3:1da6:15b:cb40:b9a7]:10893","[76ef:e160:820:d8ed:de32:25f4:7874:de94]:23150"]','2024-08-05 17:32:41.937626584+02:00','2024-09-19 09:07:18.281618912+02:00',NULL,'100.64.0.41','fd7a:115c:a1e0::29',NULL);
INSERT INTO nodes VALUES(50,'mkey:f368047f0ade97d2e85be32da245e474ebdceb640b35947a5403ea4ec17dba20','nodekey:fb33e7e55c17bc7ddfc809cf37470a044cbdae049633f8e2f77009205685a318','discokey:17b46a4dd1b090347f47ff0f980521faf4cab279f97133bc03cbe0f1750187e3','desktop-00','node050',10,'cli','null',NULL,'2024-08-07 10:10:06.595550455+00:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["220.80.110.172:44100","[2523:fe65:400:15c0:a5a1:b955:1454:70c7]:54632","[a8a7:bda:7d93:b992:48e5:f2c1:91e2:54c6]:19368","150.170.146.70:3311","139.117.239.209:33788","[2eac:ffa0:99fd:d109:c120:a35d:ed48:eea3]:51544","[7644:c348:2969:b90:e84f:94d4:b629:f266]:49336","169.247.3.239:36225"]','2024-08-07 11:50:54.144157179+02:00','2024-09-18 16:15:14.050033969+02:00',NULL,'100.64.0.42','fd7a:115c:a1e0::2a',NULL);
INSERT INTO nodes VALUES(51,'mkey:735ea22d4d96ae83e77aa73b97a50a1b34636cd05384bad6a9b9256ca20d7290','nodekey:7fa08d819358ea2114540aca2eb712f6a85f7610e888e9e34d1e40e2900114cc','discokey:330eb26ff5d9403bd755091b57a42aedb2c3b46583576ca6d979f9a703234cd2','web-65','node051',14,'cli',NULL,NULL,'2025-06-06 20:55:30.776282094+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[c5c6:6d5f:96bc:5d51:16c2:9fb8:d390:bea8]:54983","[2300:cb9f:25a7:8450:3dd7:1ed5:6362:63d0]:47837"]','2024-08-07 14:19:31.156780417+02:00','2025-06-06 20:55:30.792088043+02:00',NULL,'100.64.0.43','fd7a:115c:a1e0::2b',NULL);
INSERT INTO nodes VALUES(52,'mkey:a1c649017ddbb4dcd4554acf5286329de306c9053b6ba103684683bc4b825b9c','nodekey:2676428ddde9161b1de90dc62ac99f436c3ac780e43719bed6313c680743ac06','discokey:f16bd3d12b57ee652bf20e358a184111d2be864bee16195053b68d21b5357384','email-01','node052',17,'cli','null',NULL,'2024-12-25 17:27:58.515851096+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[1c82:2ff1:f85f:9c4c:9bef:6197:b9b0:5e38]:29991","[2fd4:63f:f9f:ec1d:1ad9:621a:4155:8a19]:46781","[32:2239:56ed:558:32d5:7b03:dcdb:e5d0]:53865"]','2024-09-22 15:48:41.385301399+02:00','2024-12-25 17:27:58.517153789+01:00',NULL,'100.64.0.45','fd7a:115c:a1e0::2d',NULL);
INSERT INTO nodes VALUES(53,'mkey:3b2b622721b0c64d215283349a2df3b86a2a4e107b92e6ca4450204061ce53d4','nodekey:0e64072dafa5f9e49266b41fc4b21ff7d287be8f4e5f2b6c395487d632f1cf3f','discokey:2f77bb8cbeb426bcded5ad9fc6da44b0b76b8d6759f10a8db28e634290760ee7','srv-65','node053',17,'cli',NULL,NULL,'2025-06-28 12:20:35.189820653+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[977f:5596:9908:14e0:8983:810e:9e9f:93d]:3616","[911d:ef36:743c:8085:8a4c:a5c8:9f35:27fc]:23538"]','2024-10-28 10:04:50.084492941+01:00','2025-06-28 12:20:35.190401013+02:00',NULL,'100.64.0.44','fd7a:115c:a1e0::2c',NULL);
INSERT INTO nodes VALUES(54,'mkey:a996b2df08089ba5a36bf00f4f0a337aa876a58f3214114862f76cf570c317f1','nodekey:241d83b165073dfebc00ef12480032b008e7d305957fe3e7b14938125b7fd788','discokey:1c36d23ccdc5d359c1f4b0626c27e0df4be0b8165553005771b638effc36249a','lt-94','node054',14,'cli',NULL,NULL,'2025-06-06 20:55:32.691473004+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["69.219.0.37:43476","[6084:ee60:1697:864e:4a61:cf6e:e9b6:4c05]:63961"]','2024-12-09 17:10:55.363593066+01:00','2025-06-06 20:55:32.700659203+02:00',NULL,'100.64.0.46','fd7a:115c:a1e0::2e',NULL);
INSERT INTO nodes VALUES(55,'mkey:ad8d2836fc3e281ea45c14de854da61abc9ab333e94ebe3de2435e9c4c7f5ea0','nodekey:30b87abf366b736d7e782d74536382f1853f9de785d2bd532b63c5efb3d7c6cc','discokey:2ecc9071b240d067246a96ba329af5d3385cf430708f93a8aaa553e49ae225ac','web-20','node055',18,'cli',NULL,NULL,'2025-06-23 17:13:34.971389477+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["172.87.149.191:59171","[1fae:4025:aab6:7bd4:33bb:9306:1e8f:991b]:50694"]','2024-12-10 13:56:39.287449662+01:00','2025-06-23 17:16:24.577468282+02:00',NULL,'100.64.0.47','fd7a:115c:a1e0::2f',NULL);
INSERT INTO nodes VALUES(56,'mkey:7ad9c5af6111cc3286256127e6b6a939f1fb87e08c9018bd7bd8671c4b9cefc2','nodekey:84fec35781c2032d05c7e8524bada9f7242165e9ab5df5d66f993266cc6f090d','discokey:ad9158862b9c58848c37b519543415166938b6be3dfe3a8463842ebbd09eb00e','srv-14','node056',19,'cli',NULL,NULL,'2025-06-28 12:22:44.430647515+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[e669:9684:b8bf:9a64:8ec7:bec:6369:4412]:16090","23.0.29.75:24889"]','2024-12-17 14:58:39.429211911+01:00','2025-06-28 12:22:44.431119935+02:00',NULL,'100.64.0.48','fd7a:115c:a1e0::30',NULL);
INSERT INTO nodes VALUES(57,'mkey:ae8c967065558f9f03a95979d2181b3aa2b3537c25a894046a65554beaf553e7','nodekey:bc9cbaeb5cd70e708b5a23565ffb1fb6e1c18f35b1861083196209dcc1e0e20c','discokey:f8647d1a8ab876931f49a8abf785d429f7f21bd1fe6317528bfbf78e38d7aafe','db-73','node057',20,'cli',NULL,NULL,'2025-06-28 12:22:11.086950088+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[caa3:7372:5199:2416:357:7b48:3127:85f1]:21026","[e2a5:db96:e7e3:6335:8bdc:90b4:40ff:920d]:28128","163.106.192.242:30271","[7d2a:9d5:1fbb:54a7:fe7a:bc40:5ea2:ca20]:3534","[f630:8bb5:a4ff:95b1:6d95:decb:a5d2:373b]:42456","[6cc8:4fca:c46e:ed25:e9ef:43e:f0ea:121a]:60965"]','2024-12-17 15:17:14.26936913+01:00','2025-06-28 12:22:11.087909892+02:00',NULL,'100.64.0.49','fd7a:115c:a1e0::31',NULL);
INSERT INTO nodes VALUES(58,'mkey:5bb86c2f730c0b247b01634f73a4f67a19bf271de3ee39cf13f879db671da5b1','nodekey:64f016a04093cc91f7d2ca3639a07a17ae8f95f246a7ad759141d598136bd060','discokey:066b4845ec135e6251d6ef6119c832b46e2bc310332d3ea836c5f39896538b38','lt-49','node058',12,'cli',NULL,NULL,'2025-01-25 18:41:03.881898904+01:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["128.102.246.147:15968","[d0d3:beb7:361b:71d1:af88:4105:6b5f:343e]:14598","155.200.222.111:64410"]','2025-01-17 10:17:23.455895657+01:00','2025-01-25 18:41:03.882180987+01:00',NULL,'100.64.0.50','fd7a:115c:a1e0::32',NULL);
INSERT INTO nodes VALUES(59,'mkey:86289561abe2eff47dd9c23c0bd1e076c0ff7b4306569d6c2ab63aa2ae5096a1','nodekey:1ac8d1434fe581284ae297cc9063685fc2afd854c45ed3cf0809c95b6ecbc037','discokey:44567ca0878c3505bb078f76a993fe3b381f17325a3c0f3df1125bba5eca1a92','desktop-26','node059',21,'cli',NULL,NULL,'2025-06-06 20:55:38.816110199+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[9875:c11c:289c:3b14:dc40:d7af:6:8372]:51751","125.170.153.154:21718","68.3.248.154:42390","[f621:b605:bd04:a964:160c:314a:141a:2e8d]:58563"]','2025-01-29 11:59:27.291048957+01:00','2025-06-06 20:55:38.890138267+02:00',NULL,'100.64.0.54','fd7a:115c:a1e0::36',NULL);
INSERT INTO nodes VALUES(60,'mkey:06bd440cb68a2856dcab4ae09ba4c4e7969b78a99a1d06bbacebc9d1fba037b7','nodekey:c0a2b88f5f4b9aee6a50df28b6ff5e5c495053c26d969100ef23f13a51349bec','discokey:4023ff7bfd754262fe36745731a9d1175cc0b49d7acac56123cfbf0c633fa0c6','db-32','node060',21,'cli',NULL,NULL,'2025-06-06 20:55:32.690648751+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["50.133.88.187:24107","[ed61:9d51:b21f:7096:32fa:e473:f6d4:9f69]:17106","110.235.245.179:61572","[57a6:fde1:814:36cd:f8de:668c:f5fb:4f60]:39714"]','2025-01-29 12:01:57.48748166+01:00','2025-06-06 20:55:32.699638826+02:00',NULL,'100.64.0.55','fd7a:115c:a1e0::37',NULL);
INSERT INTO nodes VALUES(61,'mkey:6841756817cebda15bcacc15dc8e13134d3189a709a4b01cfe7f140a0ff928f4','nodekey:c9ad34579c8f83c989958c188d366b58bddfcfc8623f0ed478e86ae9ad9001c6','discokey:4de34c0ddff8819b97b39c2f31a2568db15e7c0ac6c1d75879b6c5247a5dd9a5','desktop-04','node061',21,'cli',NULL,NULL,'2025-06-06 20:55:32.705457818+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[507f:3427:b2a0:12b7:abaf:dd7d:2f0b:9a7b]:26021","51.210.182.192:52299","[2e30:4d2d:4925:201f:e845:2a12:503c:9524]:34552","105.198.43.87:48215"]','2025-01-29 12:03:01.464646336+01:00','2025-06-06 20:55:32.706102582+02:00',NULL,'100.64.0.56','fd7a:115c:a1e0::38',NULL);
INSERT INTO nodes VALUES(62,'mkey:f5a8d012556138cec4b6a6dbd5f36669d16e025962edf3367789b24a01cd54ab','nodekey:4ed3e288b9820dab0f68f070d6b36cb71e969d35804fdca8692c66b68538e8f0','discokey:0d6aa1b3942712032ff7936507a5eb7df01e40d068092e717d1469c3e683e8d7','web-15','node062',21,'cli',NULL,NULL,'2025-06-27 21:55:15.517052697+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["48.141.84.207:348","[ac:5c65:da8d:d68c:eb0d:3692:d441:5363]:63612"]','2025-01-29 19:23:14.092804852+01:00','2025-06-27 21:55:15.518034318+02:00',NULL,'100.64.0.57','fd7a:115c:a1e0::39','[]');
INSERT INTO nodes VALUES(63,'mkey:4be52a5e6b73a19d10d6cb424f776651633802f78caff3e2f6a45cf23eb529ae','nodekey:d4881065396d3d9b479137f2fa50504da55869d3b03120f991dcf3a9d7c733ab','discokey:77289acf81d715492dcbf00468f6297621efc9abb9d7934426babfde0c41206e','lt-52','node063',21,'cli',NULL,NULL,'2025-06-28 12:17:33.005602929+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[912a:9b6c:5845:f8d4:f476:491f:cdef:8b7d]:21677","22.203.32.217:28664","112.239.138.73:43954"]','2025-01-29 19:41:40.535299057+01:00','2025-06-28 12:17:33.174275791+02:00',NULL,'100.64.0.58','fd7a:115c:a1e0::3a',NULL);
INSERT INTO nodes VALUES(64,'mkey:4cbd491b0977f3a8cc92ef9f20a7726b3984f3c0699429ae46a0bceec5febee4','nodekey:66a7e77700fb0f4bae5b282413bdb5ff7c375549dd85c4300c73ff3d8029b4a4','discokey:2e9034fc43993eaa0cf2bc21118d378bb02afb3d197a33cf9f0dd201d176b23c','web-06','node064',21,'cli',NULL,NULL,'2025-06-28 12:00:16.139095833+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["81.51.60.60:63220","12.64.198.119:51541","[5e99:3950:5dc4:45be:bab7:e7ba:2476:14e8]:43360"]','2025-01-30 18:18:57.519126133+01:00','2025-06-28 12:00:16.139426752+02:00',NULL,'100.64.0.59','fd7a:115c:a1e0::3b',NULL);
INSERT INTO nodes VALUES(65,'mkey:70cc01dc48021a01c44ab1a4bed313bb8270640ef7317fd983019c4b5e593cf3','nodekey:bfff30bca701176ec3b45b2991810cc437e3995207d924c896c4250e0efdb782','discokey:91eb7d9fa7688e3ed641adfae83be298c1ab261fd00dc2b4ad9cb4c269b623fa','laptop-27','node065',21,'cli',NULL,NULL,'2025-06-28 12:20:11.981310509+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["105.95.65.117:11546","[68bb:e8d1:72d8:8b02:608b:2284:c9b3:184d]:20876","[5c17:4014:ea6a:5528:b1a:61b7:5cda:5c5e]:21597"]','2025-01-30 18:19:40.354692307+01:00','2025-06-28 12:20:11.982409032+02:00',NULL,'100.64.0.60','fd7a:115c:a1e0::3c',NULL);
INSERT INTO nodes VALUES(66,'mkey:ac14ce6b1ecd1a0d79bbf60d279f19d09baf0ebd409f099a401816516953eb30','nodekey:a711e6a5750ec7cceac6a771396b000766d9af8a34327bf5efec3216316e8afc','discokey:0b370e73e9970987dad3fd00317f51c68e4273fbc11b754ef7e84d4d6880002a','srv-33','node066',21,'cli',NULL,NULL,'2025-06-28 11:59:14.080155658+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["145.91.193.5:37126","[2fb6:ea0a:3639:a1cd:9075:a258:6a79:4f5c]:13944","[2384:3000:4d47:a9e7:54ef:99:52c0:e920]:39358","130.195.116.24:53838"]','2025-01-31 12:05:28.65297301+01:00','2025-06-28 11:59:14.080969357+02:00',NULL,'100.64.0.61','fd7a:115c:a1e0::3d',NULL);
INSERT INTO nodes VALUES(67,'mkey:fe494a29de4149025e3c41744cabfaaa2ae9a95795bdb6425e3beee27048e0f6','nodekey:2b078ccb547dc8b01f19749735f5fc43e65e4d468357a08a880fa54dc0a1e00d','discokey:cb991d6c0a14b0213e6f807e9c37a837b181c889a1e2d25e10d65d4a7e8b2b05','laptop-33','node067',21,'cli',NULL,NULL,'2025-06-28 12:16:35.347217701+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["54.154.28.86:64790","197.205.147.181:38523","[5e11:9ab9:6805:dec0:99aa:65e6:d1fe:6e58]:45247","[34f8:19dc:cc84:1e6a:d280:ac0e:2dd9:6fe5]:39241"]','2025-01-31 12:06:30.121464114+01:00','2025-06-28 12:16:35.34788428+02:00',NULL,'100.64.0.62','fd7a:115c:a1e0::3e',NULL);
INSERT INTO nodes VALUES(68,'mkey:de86679045cb8624f1a83852679a58cffd9066814aa8994f4ac0a9213b83175f','nodekey:b62e575e38a00afe79418224f7b954210702ac0a6d450eb8dbf7b5720b1eb5a5','discokey:6492f53782aab503155db83aa2d3a9e7698382da589b8c078d7850373332734b','desktop-65','node068',22,'cli',NULL,NULL,'2025-06-28 12:23:23.107075566+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[b84:67b1:28c5:14f:aab8:916c:582c:6917]:24462","51.182.13.145:25726"]','2025-02-03 14:16:55.56431345+01:00','2025-06-28 12:23:23.107666016+02:00',NULL,'100.64.0.51','fd7a:115c:a1e0::33',NULL);
INSERT INTO nodes VALUES(69,'mkey:eb72ad359958c98e28f93485b720b6edef80d1bc33c4f99d772fc17c766039e9','nodekey:9122bd587ae90984e3231e0f48e15aa8abcfbc1b3324becd1f3622bbbe534da1','discokey:7610d45f8d2d3d4d7774c43288a6d50cd798a832732613647caa15e96621a3e3','laptop-93','node069',22,'cli',NULL,NULL,'2025-05-22 19:56:30.861469961+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[3022:fc47:6534:7fe3:9d1e:8d49:75b:984b]:10998","60.241.100.13:15037"]','2025-02-03 15:23:16.312084161+01:00','2025-05-22 19:56:30.892062591+02:00',NULL,'100.64.0.52','fd7a:115c:a1e0::34',NULL);
INSERT INTO nodes VALUES(70,'mkey:8c5837a59e69539df974f244ee29ea29968a617072d4fdc6dfef564eea6a4061','nodekey:05ebbe5cdc96a19feb16211d4a62a2318e9448e15e1a3a90f0aa556fccba8142','discokey:cf7b3319a18ac04f588e2c5a95de9a24a37f5545338c3532d9703b861a43e3fc','laptop-86','node070',21,'cli',NULL,NULL,'2025-06-28 11:26:01.538093141+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[abf1:9c06:f1de:eef4:f14a:d431:8f2:4995]:52788","[8ac8:a469:4cc:90b5:c84b:f4f:5cb:49e1]:35646","[d152:3a18:3826:ee28:a323:74d6:7140:ca5]:40749","99.13.253.35:45887"]','2025-02-03 18:09:35.161109801+01:00','2025-06-28 11:26:01.539046342+02:00',NULL,'100.64.0.53','fd7a:115c:a1e0::35',NULL);
INSERT INTO nodes VALUES(71,'mkey:9562166c366f1968a5f82aca83bd8152d893541eed4d8682da0a540825cd44e9','nodekey:93ef8b713afeffc4324b0f9a99e185be61dbff43d6e5769efac6d82481b425c9','discokey:9aa3fe84188c317d17132a26604380ec4aaf7aed94b4b759bb6b643dbd53f8d9','desktop-61','node071',21,'cli',NULL,NULL,'2025-06-27 07:45:53.640560103+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["56.191.25.57:54747","74.194.16.233:59572"]','2025-02-04 12:03:50.32663805+01:00','2025-06-27 07:45:53.64117544+02:00',NULL,'100.64.0.63','fd7a:115c:a1e0::3f',NULL);
INSERT INTO nodes VALUES(72,'mkey:50329891edd2948b53a0905245386567c98b46bc0d566e39e1763768d51cd638','nodekey:e4ebfcbd1e1d653bda175a62b765c6a646b7844b3d6bd49a9955f96a9b284c6a','discokey:f59cb75bac53aef739bbd5be676808891ebb55550aa0560396dc0532658ed893','web-53','node072',21,'cli',NULL,NULL,'2025-06-06 20:55:32.885806537+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["200.133.152.206:14119","28.101.69.72:35202"]','2025-02-04 12:07:36.231437299+01:00','2025-06-06 20:55:32.902608355+02:00',NULL,'100.64.0.64','fd7a:115c:a1e0::40',NULL);
INSERT INTO nodes VALUES(73,'mkey:fc9d5a1c4658644beeb3130cf62b19042698652298ef36899d41f588bec371ab','nodekey:d44ef585e416773d29e627cf9a6e590af9b676d23a0a816865d05d775517ab4b','discokey:0c87d487f7a4f4ec5e045ff0c83c1b6c54453f7afe0e5f13c7ce90746e18da49','lt-48','node073',21,'cli',NULL,NULL,'2025-06-06 20:55:32.909812195+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["126.19.171.233:19526","[91e1:a8d7:5c43:b695:4f5:b147:b5f7:9f75]:62218"]','2025-02-04 12:10:26.50545127+01:00','2025-06-06 20:55:32.911837947+02:00',NULL,'100.64.0.65','fd7a:115c:a1e0::41',NULL);
INSERT INTO nodes VALUES(74,'mkey:a46b92cea88a9bac37dcb612a4a50dee75684f736c8c7f2aab812fa5fb9d463f','nodekey:1bbfdddf7b2a929a3da1e69236aa8b8fbd4b25d1839e57aaecf2ab910592bc78','discokey:c2188df6632aded7862de4b5d07c3993b3e908c59ce38f9d481f4840d85448c7','srv-06','node074',21,'cli',NULL,NULL,'2025-06-27 12:16:51.183868148+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["[99f:9853:60cd:a4c5:e9d7:2a40:f86:742b]:782","[99cd:c956:e0f9:b633:5f8b:5c6a:50b1:571]:18474"]','2025-02-06 17:33:12.557302525+01:00','2025-06-27 12:16:51.184524169+02:00',NULL,'100.64.0.67','fd7a:115c:a1e0::43',NULL);
INSERT INTO nodes VALUES(75,'mkey:2c018031737bb172064fe31674acafe1b8b4d62d2b82db835e2c38061c5bfdbb','nodekey:575f781bb36f7c93cde4d9808e3dedef2c8999864ea1d4e5ee73fdd3d53ac217','discokey:00e3275941e7a0a73a1e5c44cea638a411c60bb2e257812e0f39152ec0c5a21b','lt-01','node075',9,'cli',NULL,NULL,'2025-06-28 12:12:54.498870123+02:00','0001-01-01 00:00:00+00:00','{"fake":"data"}','["56.80.126.49:13907","95.196.223.110:47343"]','2025-02-06 18:23:55.709687186+01:00','2025-06-28 12:12:54.499413173+02:00',NULL,'100.64.0.66','fd7a:115c:a1e0::42',NULL);
INSERT INTO nodes VALUES(76,'mkey:a5a8194cef984a1cc2081212405c10c8cc1061d3d00e6aa7e1415c854e3ded72','nodekey:ca37a131e58c14ebec3a6e179549d7c8742a31b42ed0e6e52aed138ecc176907','discokey:8a4990c19c547da50875ad00613118d5382717652b4ef9897a1d1c060c40a976','laptop-71','node076',21,'cli',NULL,NULL,'2025-06-21 21:24:09.453652526+02:00',NULL,'{"fake":"data"}','["114.141.127.86:11858","[d05b:3c4f:8402:823f:409f:87b2:4dab:4959]:58420","130.243.34.21:50806","104.255.105.25:5817"]','2025-02-14 15:29:45.220999928+01:00','2025-06-21 21:24:09.453999154+02:00',NULL,'100.64.0.13','fd7a:115c:a1e0::d',NULL);
INSERT INTO nodes VALUES(77,'mkey:51f0f5c2b892846f926abf826f5ff56a52fc4a466be7a1073f16028ef2c6aabb','nodekey:0138c27376e8289255c1d505ba8e8d0e9e8e6785198b87984763531273d0c540','discokey:5bbb476ee437efaa55c10931313e35c4c8c6e30015e7f3eb015f4736897abb12','desktop-50','node077',23,'cli',NULL,NULL,'2025-06-25 09:52:57.106038118+02:00',NULL,'{"fake":"data"}','["57.247.45.203:47518","[1709:1d2d:9e92:a2c5:f5a0:fbca:6d9:dcbb]:31824","59.75.44.185:44605","[1294:31c8:7d7a:efc5:9768:8d1:63fc:993c]:62533"]','2025-02-14 17:00:54.226657615+01:00','2025-06-25 09:52:57.123618657+02:00',NULL,'100.64.0.68','fd7a:115c:a1e0::44',NULL);
INSERT INTO nodes VALUES(78,'mkey:138104bf35231052caaaf0f55c18b5c3beb552669360dbdc4a5246a25d3ef8f5','nodekey:c4ae5fe468012696b6a85e95b23e1391f472b17ca834efe8d61578c186efb9d9','discokey:32d79e04d128c17209805e7641c0c4f3415690430afb344699f4cdaabb2ab28e','lt-38','node078',23,'cli',NULL,NULL,'2025-06-26 08:56:45.225612029+02:00',NULL,'{"fake":"data"}','["107.221.8.103:1156","[1cbd:d52d:8b7f:a698:2d0c:98f5:bbef:4d38]:43009","[6d9d:7cf0:440e:2ee6:8dc8:fdfe:3e87:f2f9]:6993","[734f:219f:40f0:ea33:47c3:ab48:b4f6:a239]:37955"]','2025-02-14 18:03:28.401774063+01:00','2025-06-26 08:56:45.232919473+02:00',NULL,'100.64.0.70','fd7a:115c:a1e0::46',NULL);
INSERT INTO nodes VALUES(79,'mkey:8dda457abd80238812f15bbc816248c5477f1c7f2a31b180e6d1917bb4cda3dd','nodekey:bee17b81a1b62eb551d672bbc6ab5c7900cc39951a3eb1be98b05e813c7a5671','discokey:aafde40e00db7577b135254c85e37e76348876996bd5b5e5b93cd9cf994cabff','email-79','node079',25,'cli',NULL,NULL,'2025-02-24 18:37:03.584752527+01:00',NULL,'{"fake":"data"}','["32.188.178.139:7110","177.149.150.247:56583","[e188:6623:d389:230b:a467:ab3b:2883:5196]:59813","[8dc1:48a1:2e5e:8c45:131e:9d7a:2d85:61ef]:1654","[dbf5:5aac:6a5a:f73c:a62e:69bc:c227:1180]:49484","200.106.54.69:19053"]','2025-02-15 12:49:11.523904469+01:00','2025-02-24 18:37:03.584913585+01:00',NULL,'100.64.0.71','fd7a:115c:a1e0::47',NULL);
INSERT INTO nodes VALUES(80,'mkey:94a77d61756e11d471ee47d55a1cb2eae0c0faacbe5b94ed8256ee68efabf715','nodekey:0b13795cf68e3a5adb091b3b97e0c2ac4884f8295245011f60c074693fe1d3f7','discokey:5ee7570d8f70a4078d7b9afe0cadc5441cb77ef9e2f849301e1082411e04c0f7','srv-48','node080',23,'cli',NULL,NULL,'2025-06-24 13:47:09.058273693+02:00',NULL,'{"fake":"data"}','["[231a:c601:4e16:b5a3:aafd:6b2a:8d59:33b6]:51062","194.8.95.111:60702","42.58.107.175:62253","[90eb:ca6c:1e10:11cc:fd29:4682:aaaa:fd20]:57634"]','2025-02-15 21:12:05.434304787+01:00','2025-06-24 13:47:09.058652899+02:00',NULL,'100.64.0.72','fd7a:115c:a1e0::48',NULL);
INSERT INTO nodes VALUES(81,'mkey:c63e8e0bd19c1d1433056fbffb0d8b66387fec012a75060189fe896296834a81','nodekey:fa2e09d0c11508bfef7f3b63cf2f0aa752a092565cc28a1a7007cfe1d44addae','discokey:37c9fd82db6d47f8dfeec0ed6d764f8b604fb06ddf8f2cdf44eea45a840b16ff','srv-28','node081',23,'cli',NULL,NULL,'2025-06-06 20:55:32.713163573+02:00',NULL,'{"fake":"data"}','["175.165.229.254:57553","107.46.106.255:64756","7.81.60.25:36846","[16f5:5847:5615:9f6f:b38a:e4eb:d340:c800]:62212"]','2025-02-17 16:05:05.921277876+01:00','2025-06-26 08:56:46.063988329+02:00',NULL,'100.64.0.73','fd7a:115c:a1e0::49',NULL);
INSERT INTO nodes VALUES(82,'mkey:9cff47309a04474303f70c020f06f8bb795bccfc71b2ebee64b5d2c5fa862f97','nodekey:538480654e054ac4e41a1249cf3a7780a48681ac2ed5c7f758fb5d1abe750389','discokey:9511b469afd6ac8c4644f6464873d440c6c4e4fc706e53d799bf7819556962e4','web-22','node082',23,'cli',NULL,NULL,'2025-06-28 11:30:16.497956346+02:00',NULL,'{"fake":"data"}','["[8c86:53d3:80d7:bd12:aa96:5eb6:7e53:dfbe]:39629","177.106.74.193:23401","153.144.178.85:48541","[a7b3:18ce:8c59:ff04:2b88:a0fb:7305:9a44]:27764"]','2025-02-28 09:21:23.143225002+01:00','2025-06-28 11:30:16.498254852+02:00',NULL,'100.64.0.69','fd7a:115c:a1e0::45',NULL);
INSERT INTO nodes VALUES(83,'mkey:619cc5464a91d8f554d47b641eb33921721d77cc277d1d4e662cb9a7e9a52b48','nodekey:8494fd062128da2a0b6cde389888fffe2e7384b5ea4f254c23392e62f7dc6962','discokey:4efe7a6440876724d36fa7380d9c73c43eb5d11a2b7c244628f878406fb166b3','db-00','node083',26,'cli',NULL,NULL,'2025-06-28 11:33:20.425827891+02:00',NULL,'{"fake":"data"}','["[f57a:5d73:f1b4:e8ff:6b9:ae85:1d9:244]:19001","3.20.49.173:50146"]','2025-03-18 09:09:50.849674955+01:00','2025-06-28 11:33:20.426570852+02:00',NULL,'100.64.0.74','fd7a:115c:a1e0::4a',NULL);
INSERT INTO nodes VALUES(84,'mkey:57b63829d09076ea08e0bacc6c66e99112804d4d05804fcd142550188928efc3','nodekey:f4506c8002304d533a91c84d4b8b450f0ead78a853dd1d962421d09f7fe323b5','discokey:e8b549a18c4ad009efe91b011ec3992d86cadb5fdc5838668835035d9442add7','srv-03','node084',23,'cli',NULL,NULL,'2025-06-06 20:55:32.855833618+02:00',NULL,'{"fake":"data"}','["195.54.83.239:15076","[3238:dbe9:f89d:91e1:6338:993d:3e76:8561]:32795","[b501:f57f:99da:e5f1:65fa:1d84:7d10:7d66]:24427","186.27.91.14:37325"]','2025-03-25 10:04:37.147174393+01:00','2025-06-06 20:55:32.866553475+02:00',NULL,'100.64.0.75','fd7a:115c:a1e0::4b',NULL);
INSERT INTO nodes VALUES(85,'mkey:569dd1b12fb2b9920f0366c57bdbf359f0e0239e6ef62cf7a1f29554f3e3ffe5','nodekey:94d32c5d5da99b19bd320ec4b7fe883e2d5bf137ede9262d035880f36610a39f','discokey:d25d5f42aee8b5d8e22b9ba1fa40e7295ad0f2b00c466d03c267ac9c0e00d152','email-49','node085',23,'cli',NULL,NULL,'2025-06-06 20:55:32.134989319+02:00',NULL,'{"fake":"data"}','["[b0bf:223c:e0af:4993:14e0:acb1:936e:4db2]:39578","222.45.50.133:6908","223.57.18.237:24236","172.116.24.79:64278"]','2025-03-25 10:08:52.471661925+01:00','2025-06-06 20:55:32.135474025+02:00',NULL,'100.64.0.76','fd7a:115c:a1e0::4c',NULL);
INSERT INTO nodes VALUES(86,'mkey:41dcb7bf690ffde927829637a6fc7c98b2600a504561ce7b0667f0f2aa1f3ab2','nodekey:633596e036705ce9ba03ce044cb7b5cd008f7045caee57fa594803a3b95c564a','discokey:9d96b830729e50d763debfefcd3af6f91ee9bb9daf53d6890652a25f3263f823','srv-96','node086',27,'cli',NULL,NULL,'2025-06-20 08:34:16.969649646+02:00',NULL,'{"fake":"data"}','["[a09b:5970:b127:fdfc:e68e:e496:bdee:6f12]:36132","51.12.68.23:57633","33.175.40.132:2790"]','2025-03-26 10:24:31.473595709+01:00','2025-06-20 08:34:16.970146755+02:00',NULL,'100.64.0.77','fd7a:115c:a1e0::4d',NULL);
INSERT INTO nodes VALUES(87,'mkey:3944556a65c99ee2890a8bd572dc3001f71f1eeebc580a026146eaa8def09009','nodekey:11966e544db141f610b5a1a864bd4be18373952b3a8ced40214105ef7371127f','discokey:a77a4b657a9ac80ad760d1e7348065578555373d8843162326e6366b0c54e444','web-11','node087',27,'cli',NULL,NULL,'2025-06-20 08:29:06.936731549+02:00',NULL,'{"fake":"data"}','["16.142.13.19:36771","[ad8a:a3fa:8d4d:c659:5e32:45dd:d95f:abc8]:43118","[797c:a12f:a521:102b:e357:ad81:247:fdcf]:61479","[5f8:a29a:bcab:9a90:4bdc:7d00:46bc:a69e]:16041"]','2025-03-26 14:30:57.179694234+01:00','2025-06-20 08:29:10.787309705+02:00',NULL,'100.64.0.78','fd7a:115c:a1e0::4e',NULL);
INSERT INTO nodes VALUES(88,'mkey:8ba458a88b40b125982bf763462a8f252fc3e80fdf8f472ab1545842af53494f','nodekey:09e6884692ec3f7f53bcc16bea60e1d4dfab44dd459af7dc42ab263e1d78920b','discokey:a09ed63f785315ae2ab524c3b34aad6f12d23a96771def70a3e0fb2de7ae7416','laptop-52','node088',27,'cli',NULL,NULL,'2025-06-19 08:39:43.92787588+02:00',NULL,'{"fake":"data"}','["54.165.39.252:59066","[127c:b334:8ae3:358c:4178:fae4:9f31:521c]:33026","104.73.3.103:62847","[fd18:384b:ef76:f4b7:6983:bd4e:70af:ce35]:42618","7.111.70.18:4634"]','2025-03-26 14:37:55.198097806+01:00','2025-06-19 08:39:48.020920495+02:00',NULL,'100.64.0.79','fd7a:115c:a1e0::4f',NULL);
INSERT INTO nodes VALUES(89,'mkey:3a17d7f9a8e51885b842e63fffad7374b06e1804f3a48e9362c2cc3e46df0af7','nodekey:4c771b227735fcb0f7e6cef27350852bffa406ad446fd37cf60f98ecbacc04a7','discokey:6a2091fd8a448626ad02024b66216b22ed02926807c2b7a18877f300e1d1d632','srv-52','node089',28,'cli',NULL,NULL,'2025-06-28 07:45:05.917078332+02:00',NULL,'{"fake":"data"}','["[3769:2186:2b73:8e38:b9bb:54c6:e48a:6e65]:33253","[460c:9b85:4ea7:ea85:e205:aa7:210e:c098]:44172","222.138.65.141:16368","[4bdf:4d9a:f0d3:2bea:deb9:33d4:c163:513]:6983","212.18.134.205:41528","190.153.32.51:23708"]','2025-03-31 18:34:22.574460539+02:00','2025-06-28 07:45:05.917342923+02:00',NULL,'100.64.0.80','fd7a:115c:a1e0::50',NULL);
INSERT INTO nodes VALUES(90,'mkey:3b2445a4e3d1c6cf3d909493530eecf8bff85ef8a440ba467d32bf6f1b64d24b','nodekey:298e7d97f1d1289dff2249401d706813c0d89121fab70e2cc514f3a53dbf14c7','discokey:3cca67ae4c540ceb6a8a7b552fdd8eddb54db6a1c082e290a4c0aa638c5c5efe','srv-72','node090',27,'cli',NULL,NULL,'2025-06-20 23:20:42.928064133+02:00',NULL,'{"fake":"data"}','["[262b:3b74:f0ee:1ea9:9099:5c3d:f9a2:22]:46101","[40ca:40f3:9b64:de92:c1af:a19d:f7e0:1dbc]:30741","[a9f5:d5cd:d553:b5:17f3:3d89:8617:46a5]:21519","102.217.166.61:13721","46.95.71.249:58007","168.186.124.250:51025"]','2025-04-03 17:52:02.130025013+02:00','2025-06-20 23:20:42.928708477+02:00',NULL,'100.64.0.81','fd7a:115c:a1e0::51',NULL);
INSERT INTO nodes VALUES(91,'mkey:2eb9cfef2ed45380bbb4043e4aa79257b50ed4575489fb5c789469283f31610a','nodekey:b09c411a584f487513bdbebd8fb50f91ca57c0f544c0649b155ba892bc9173b3','discokey:e95823238298c4f5554dd2c69e1f62ef05cae05dcd1bd95045b582f2136a7757','db-74','node091',27,'cli',NULL,NULL,'2025-06-28 03:30:33.869801917+02:00',NULL,'{"fake":"data"}','["[575d:4099:ec56:8209:f0f:ed49:b6d9:f75b]:27401","[a35b:63a2:51a7:81a6:eb0b:5e72:f82e:bdec]:54393","84.160.88.244:21712"]','2025-04-05 18:49:13.742268632+02:00','2025-06-28 03:30:33.870261795+02:00',NULL,'100.64.0.82','fd7a:115c:a1e0::52',NULL);
INSERT INTO nodes VALUES(92,'mkey:51551f7bcfb7e10f052439502541e9c00c37a8f3de91ed0fe01e5c3c47dea5a3','nodekey:6975b5ed6c0cfa85e0cdf6152f2d6c0c273109bfcaa76860637de5f1dc9e40ac','discokey:dba4f8059d89090a2e198367bbd04d6c5475abca7ae3731b7aa29c382131af27','lt-17','node092',23,'cli',NULL,NULL,'2025-06-28 12:21:17.063796663+02:00',NULL,'{"fake":"data"}','["[8052:8707:2eea:c767:5493:dd06:2d75:55a1]:60873","[8c83:88e1:5427:d2e:8604:ff8b:3c0a:6587]:6368","182.184.190.162:26611","[c45e:f0f9:8bf6:6beb:9170:ae3e:bc81:1842]:3750"]','2025-04-10 09:33:19.75758384+02:00','2025-06-28 12:21:17.064223203+02:00',NULL,'100.64.0.83','fd7a:115c:a1e0::54',NULL);
INSERT INTO nodes VALUES(93,'mkey:df4d9b0848620e7033c8cbecbe7cd076475433baa6a8233289a8207f538969c1','nodekey:2d50983fa2d5735e306a8c05630a41b897419528e2c9e7143efc29f2517777c6','discokey:7d62636f14b697c8d9666535fccc89cacb009088200957070d2ffb7108e79694','desktop-28','node093',23,'cli',NULL,NULL,'2025-06-28 12:23:07.890521061+02:00',NULL,'{"fake":"data"}','["[9497:e689:56ef:65ff:40ba:5bec:198:cbaa]:6478","165.179.14.165:11130","59.185.174.72:31766","[b430:987d:5157:7cdf:582b:c6c:801b:19d3]:8744"]','2025-04-10 11:00:40.243041051+02:00','2025-06-28 12:23:07.891010158+02:00',NULL,'100.64.0.84','fd7a:115c:a1e0::55',NULL);
INSERT INTO nodes VALUES(94,'mkey:0457d727c81909cd14e5edc1f8fd43c685bb5bca802c26df60fc27b90b66ff04','nodekey:316a01774fde64ebcfd3192f99ef9f83ff9c250b916090c1829d690d7ef5291e','discokey:de047a08a4c07142790d6919eb61e5d1c6bfebda7547778ba6e13b4166dd9100','email-53','node094',23,'cli',NULL,NULL,'2025-06-28 12:18:55.75713159+02:00',NULL,'{"fake":"data"}','["95.217.54.187:12234","2.119.104.181:58132","[7e19:7d5d:ce33:64aa:d9a0:5:ec9e:56c3]:40537","111.114.18.75:28011"]','2025-04-10 11:41:58.339188608+02:00','2025-06-28 12:18:55.757420045+02:00',NULL,'100.64.0.85','fd7a:115c:a1e0::56',NULL);
INSERT INTO nodes VALUES(95,'mkey:a0aad10c0947eabadb07e0a064b118abc6317194a20a35eefbf5f00497cc86b4','nodekey:f508bb43820174bbfbff0ddaa441477c6a4b1ad16e2d6a6c8bd8e7d579cc9512','discokey:7f3ea4389df4edfa3c5091be7ff8dab835b2584d453d8df7727d82828e9eb598','db-56','node095',1,'cli',NULL,NULL,'2025-06-28 10:23:24.075008579+02:00',NULL,'{"fake":"data"}','["24.36.243.82:39056","[100e:6264:4572:885e:777a:94d9:d296:29e5]:56545","[85c:f9c7:4780:41ba:b873:e740:7a65:aaf6]:46931","117.173.93.251:32036","3.127.130.51:31048","[b2b6:54b1:547b:3b76:a977:8ef0:9263:1d95]:10788"]','2025-04-18 07:31:25.494609012+02:00','2025-06-28 10:23:24.075270399+02:00',NULL,'100.64.0.86','fd7a:115c:a1e0::57',NULL);
INSERT INTO nodes VALUES(96,'mkey:9c90f9a2cf141fbf87bb7a713b11363c7700648c247b2be55880be65b097b32e','nodekey:a891e03b7e3f92ee155c51f966ff579e1b59affcdd7ffe2be0b17617fc5d2a4f','discokey:2d47647673be16002087672c8c3c333af739c0429b4ca3199a0b37c775f188ec','srv-31','node096',27,'cli',NULL,NULL,'2025-06-21 19:42:23.023186161+02:00',NULL,'{"fake":"data"}','["99.229.28.236:22736","[e5ea:7d6c:d0e6:153c:b9f6:17da:3b8e:a7dd]:11150","116.109.151.5:63986","[4167:adfc:1fcb:624c:e8d1:7469:aab7:e6a3]:29364","151.32.217.201:35528","129.148.62.154:38346","[5bcc:3f9b:413a:f79c:9785:4537:4acb:9123]:12439"]','2025-04-25 19:06:18.720283603+02:00','2025-06-21 19:42:23.023317999+02:00',NULL,'100.64.0.87','fd7a:115c:a1e0::58',NULL);
INSERT INTO nodes VALUES(97,'mkey:e403a9d40dd5cc7b3c34bb8e883069e46ea691bd901d80a18255b2e978ebbca3','nodekey:9fb4a4edd2f095f6d3ffc2783d13c1c1c9397edc7926a57a2b91d292dc6d9539','discokey:e3ddfd156fab89c7572aba20e9606ec10cdf6f8f60bf4a0e4b0ee9986b9fe875','desktop-17','node097',23,'cli',NULL,NULL,'2025-06-06 20:55:32.914042482+02:00',NULL,'{"fake":"data"}','["[5088:bc4f:e27b:708c:e75:6278:90c:92b5]:37686","[f352:c3ab:52a4:2b1c:d1b5:9ee4:a15e:d832]:39715"]','2025-05-14 09:57:07.359717602+02:00','2025-06-06 20:55:32.915628496+02:00',NULL,'100.64.0.88','fd7a:115c:a1e0::59',NULL);
INSERT INTO nodes VALUES(98,'mkey:076f21957e297a47c7e893b37dc38ccbc10d16041c45e733755f63a9adf27209','nodekey:23be3c688a8b508b5e09708e2a2623ece5b9ec426a776787ff163bea80104fa6','discokey:443acdc2d4a9c9f5c316b728916259e58eea2d0dc7e438181335306964c22121','desktop-72','node098',27,'cli',NULL,NULL,'2025-06-12 20:47:06.114210533+02:00',NULL,'{"fake":"data"}','["34.11.54.132:20475","[8104:4565:fd92:f07b:5ce7:8ad9:590e:349b]:64085","[fa37:1f6:5256:186d:2ce6:ed1f:b9b8:5d73]:42737","[6e79:cebf:1df1:83d1:d0de:38ca:4eaa:7bd3]:25953","[56df:3d29:e870:353a:bb28:ffcd:b225:5231]:57718","170.226.226.154:61176","[d122:a66a:2153:741a:b188:5260:a325:6c68]:17261","[67ca:e4a8:6a48:8880:1183:c56:7416:9af0]:57017","72.3.174.188:14460"]','2025-05-14 11:56:48.415832658+02:00','2025-06-12 20:47:06.114995503+02:00',NULL,'100.64.0.89','fd7a:115c:a1e0::5a',NULL);
INSERT INTO nodes VALUES(99,'mkey:24908f72d8e598ce86ab51aedbe19f7db7d459b33d53e0383231e3d54239680d','nodekey:37a38d1af4997a3a37406cfefc83240035cf5fbad122d46534e62ac9c9b23821','discokey:19926fa875306f0b304e898eee83f1711db11b5930a3016c18d0d503b37f0841','laptop-14','node099',14,'cli',NULL,NULL,'2025-06-06 20:55:32.627376311+02:00',NULL,'{"fake":"data"}','["[6228:aa08:b376:ded6:55d1:b081:66fa:6299]:59385"]','2025-05-22 13:59:12.642339275+02:00','2025-06-06 20:55:32.632840843+02:00',NULL,'100.64.0.90','fd7a:115c:a1e0::5b',NULL);
CREATE TABLE `policies` (`id` integer PRIMARY KEY AUTOINCREMENT,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`data` text);
CREATE TABLE IF NOT EXISTS "users" (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,`display_name` text,`email` text,`provider_identifier` text,`provider` text,`profile_pic_url` text,PRIMARY KEY (`id`));
INSERT INTO users VALUES(1,'2023-05-17 19:36:55.859473496+02:00','2025-05-14 19:39:49.446674051+02:00',NULL,'user001','','',NULL,'','');
INSERT INTO users VALUES(2,'2023-05-17 19:36:57.059073465+02:00','2025-05-14 19:39:49.446939883+02:00',NULL,'user002','','',NULL,'','');
INSERT INTO users VALUES(3,'2023-05-18 10:10:36.248939077+02:00','2025-05-14 19:39:49.447156233+02:00',NULL,'user003','','',NULL,'','');
INSERT INTO users VALUES(4,'2023-06-10 09:06:13.920718561+02:00','2025-05-14 19:39:49.447397385+02:00',NULL,'user004','','',NULL,'','');
INSERT INTO users VALUES(5,'2023-06-11 19:58:32.371218434+02:00','2025-05-14 19:39:49.447602838+02:00',NULL,'user005','','',NULL,'','');
INSERT INTO users VALUES(6,'2023-06-17 19:39:53.031565686+02:00','2025-05-14 19:39:49.447803872+02:00',NULL,'user006','','',NULL,'','');
INSERT INTO users VALUES(7,'2023-06-20 11:35:09.325846831+02:00','2025-05-14 19:39:49.447987808+02:00',NULL,'user007','','',NULL,'','');
INSERT INTO users VALUES(8,'2023-06-21 22:47:48.196234382+02:00','2025-05-14 19:39:49.44820155+02:00',NULL,'user008','','',NULL,'','');
INSERT INTO users VALUES(9,'2023-06-22 08:30:35.068995572+02:00','2025-05-14 19:39:49.448483514+02:00',NULL,'user009','','',NULL,'','');
INSERT INTO users VALUES(10,'2023-07-03 10:18:32.123226+02:00','2025-05-14 19:39:49.448692002+02:00',NULL,'user010','','',NULL,'','');
INSERT INTO users VALUES(11,'2023-07-03 10:18:37.130387602+02:00','2025-05-14 19:39:49.448883814+02:00',NULL,'user011','','',NULL,'','');
INSERT INTO users VALUES(12,'2023-12-15 08:05:06.013615212+01:00','2025-05-14 19:39:49.449111509+02:00',NULL,'user012','','',NULL,'','');
INSERT INTO users VALUES(13,'2024-02-03 16:32:42.224977233+01:00','2025-05-14 19:39:49.449357341+02:00',NULL,'user013','','',NULL,'','');
INSERT INTO users VALUES(14,'2024-05-03 10:12:38.220973042+02:00','2025-05-14 19:39:49.449556253+02:00',NULL,'user014','','',NULL,'','');
INSERT INTO users VALUES(15,'2024-07-26 08:08:40.979783263+02:00','2025-05-14 19:39:49.449755129+02:00',NULL,'user015','','',NULL,'','');
INSERT INTO users VALUES(16,'2024-08-05 17:32:02.878091894+02:00','2025-05-14 19:39:49.449974677+02:00',NULL,'user016','','',NULL,'','');
INSERT INTO users VALUES(17,'2024-09-22 15:48:00.287392203+02:00','2025-05-14 19:39:49.450181734+02:00',NULL,'user017','','',NULL,'','');
INSERT INTO users VALUES(18,'2024-12-10 13:55:11.256977421+01:00','2025-05-14 19:39:49.450421161+02:00',NULL,'user018','','',NULL,'','');
INSERT INTO users VALUES(19,'2024-12-17 14:57:58.550971236+01:00','2025-05-14 19:39:49.450633287+02:00',NULL,'user019','','',NULL,'','');
INSERT INTO users VALUES(20,'2024-12-17 15:02:08.053169491+01:00','2025-05-14 19:39:49.450837357+02:00',NULL,'user020','','',NULL,'','');
INSERT INTO users VALUES(21,'2025-01-28 15:57:32.774456057+01:00','2025-05-14 19:39:49.451012461+02:00',NULL,'user021','','',NULL,'','');
INSERT INTO users VALUES(22,'2025-02-03 14:10:50.491924701+01:00','2025-05-14 19:39:49.451214878+02:00',NULL,'user022','','',NULL,'','');
INSERT INTO users VALUES(23,'2025-02-14 16:58:30.250289644+01:00','2025-05-14 19:39:49.451415294+02:00',NULL,'user023','','',NULL,'','');
INSERT INTO users VALUES(25,'2025-02-15 12:48:14.650995528+01:00','2025-05-14 19:39:49.451605671+02:00',NULL,'user025','','',NULL,'','');
INSERT INTO users VALUES(26,'2025-03-18 09:09:00.456523573+01:00','2025-05-14 19:39:49.451854829+02:00',NULL,'user026','','',NULL,'','');
INSERT INTO users VALUES(27,'2025-03-26 10:23:51.960113834+01:00','2025-05-14 19:39:49.452164228+02:00',NULL,'user027','','',NULL,'','');
INSERT INTO users VALUES(28,'2025-03-31 18:25:26.535133091+02:00','2025-05-14 19:39:49.452536759+02:00',NULL,'user028','','',NULL,'','');
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
CREATE INDEX `idx_policies_deleted_at` ON `policies`(`deleted_at`);
CREATE INDEX `idx_users_deleted_at` ON `users`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_address` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);

View File

@ -0,0 +1,13 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,9 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,13 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,9 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,13 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,9 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,13 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,9 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `shared_machines` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`machine_id` integer,`namespace_id` integer,PRIMARY KEY (`id`));
CREATE INDEX `idx_shared_machines_deleted_at` ON `shared_machines`(`deleted_at`);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`registered` numeric,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` JSON,`endpoints` JSON,`enabled_routes` JSON,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`name` text,`namespace_id` integer,`register_method` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

View File

@ -0,0 +1,11 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
INSERT INTO kvs VALUES('db_version','1');
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);
COMMIT;

View File

@ -0,0 +1,7 @@
CREATE TABLE `namespaces` (`id` integer,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,`name` text UNIQUE,PRIMARY KEY (`id`));
CREATE INDEX `idx_namespaces_deleted_at` ON `namespaces`(`deleted_at`);
CREATE TABLE `pre_auth_keys` (`id` integer,`key` text,`namespace_id` integer,`reusable` numeric,`ephemeral` numeric DEFAULT false,`used` numeric DEFAULT false,`created_at` datetime,`expiration` datetime,PRIMARY KEY (`id`));
CREATE TABLE `machines` (`id` integer,`machine_key` varchar(64),`node_key` text,`disco_key` text,`ip_addresses` text,`hostname` text,`given_name` varchar(63),`namespace_id` integer,`register_method` text,`forced_tags` text,`auth_key_id` integer,`last_seen` datetime,`last_successful_update` datetime,`expiry` datetime,`host_info` text,`endpoints` text,`enabled_routes` text,`created_at` datetime,`updated_at` datetime,`deleted_at` datetime,PRIMARY KEY (`id`));
CREATE TABLE `kvs` (`key` text,`value` text);
CREATE TABLE `api_keys` (`id` integer,`prefix` text,`hash` blob,`created_at` datetime,`expiration` datetime,`last_seen` datetime,PRIMARY KEY (`id`));
CREATE UNIQUE INDEX `idx_api_keys_prefix` ON `api_keys`(`prefix`);

Some files were not shown because too many files have changed in this diff Show More