From c37c1b8161bf92036fddb74480d1c3c7d4b2b342 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Sat, 6 Dec 2025 17:59:11 +0100 Subject: [PATCH] Remove 'enabled' field from API key model and related database operations --- pkg/auth/key.go | 1 - pkg/database/apikeys.go | 22 +++++++++---------- .../migrations/001_initial_schema.up.sql | 1 - pkg/server/handlers_auth.go | 6 ----- webui/src/types/apiKey.ts | 1 - 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/pkg/auth/key.go b/pkg/auth/key.go index 3f05119..830a196 100644 --- a/pkg/auth/key.go +++ b/pkg/auth/key.go @@ -20,7 +20,6 @@ type APIKey struct { UserID string PermissionMode PermissionMode ExpiresAt *int64 - Enabled bool CreatedAt int64 UpdatedAt int64 LastUsedAt *int64 diff --git a/pkg/database/apikeys.go b/pkg/database/apikeys.go index ed6fe27..1304d61 100644 --- a/pkg/database/apikeys.go +++ b/pkg/database/apikeys.go @@ -18,8 +18,8 @@ func (db *sqliteDB) CreateKey(ctx context.Context, key *auth.APIKey, permissions // Insert the API key query := ` - INSERT INTO api_keys (key_hash, name, user_id, permission_mode, expires_at, enabled, created_at, updated_at) - VALUES (?, ?, ?, ?, ?, ?, ?, ?) + INSERT INTO api_keys (key_hash, name, user_id, permission_mode, expires_at, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, ?) ` var expiresAt sql.NullInt64 @@ -29,7 +29,7 @@ func (db *sqliteDB) CreateKey(ctx context.Context, key *auth.APIKey, permissions result, err := tx.ExecContext(ctx, query, key.KeyHash, key.Name, key.UserID, key.PermissionMode, - expiresAt, key.Enabled, key.CreatedAt, key.UpdatedAt, + expiresAt, key.CreatedAt, key.UpdatedAt, ) if err != nil { return fmt.Errorf("failed to insert API key: %w", err) @@ -61,7 +61,7 @@ func (db *sqliteDB) CreateKey(ctx context.Context, key *auth.APIKey, permissions // GetKeyByID retrieves an API key by ID func (db *sqliteDB) GetKeyByID(ctx context.Context, id int) (*auth.APIKey, error) { query := ` - SELECT id, key_hash, name, user_id, permission_mode, expires_at, enabled, created_at, updated_at, last_used_at + SELECT id, key_hash, name, user_id, permission_mode, expires_at, created_at, updated_at, last_used_at FROM api_keys WHERE id = ? ` @@ -72,7 +72,7 @@ func (db *sqliteDB) GetKeyByID(ctx context.Context, id int) (*auth.APIKey, error err := db.QueryRowContext(ctx, query, id).Scan( &key.ID, &key.KeyHash, &key.Name, &key.UserID, &key.PermissionMode, - &expiresAt, &key.Enabled, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, + &expiresAt, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, ) if err != nil { if err == sql.ErrNoRows { @@ -94,7 +94,7 @@ func (db *sqliteDB) GetKeyByID(ctx context.Context, id int) (*auth.APIKey, error // GetUserKeys retrieves all API keys for a user func (db *sqliteDB) GetUserKeys(ctx context.Context, userID string) ([]*auth.APIKey, error) { query := ` - SELECT id, key_hash, name, user_id, permission_mode, expires_at, enabled, created_at, updated_at, last_used_at + SELECT id, key_hash, name, user_id, permission_mode, expires_at, created_at, updated_at, last_used_at FROM api_keys WHERE user_id = ? ORDER BY created_at DESC @@ -114,7 +114,7 @@ func (db *sqliteDB) GetUserKeys(ctx context.Context, userID string) ([]*auth.API err := rows.Scan( &key.ID, &key.KeyHash, &key.Name, &key.UserID, &key.PermissionMode, - &expiresAt, &key.Enabled, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, + &expiresAt, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, ) if err != nil { return nil, fmt.Errorf("failed to scan API key: %w", err) @@ -133,12 +133,12 @@ func (db *sqliteDB) GetUserKeys(ctx context.Context, userID string) ([]*auth.API return keys, nil } -// GetActiveKeys retrieves all enabled, non-expired API keys +// GetActiveKeys retrieves all non-expired API keys func (db *sqliteDB) GetActiveKeys(ctx context.Context) ([]*auth.APIKey, error) { query := ` - SELECT id, key_hash, name, user_id, permission_mode, expires_at, enabled, created_at, updated_at, last_used_at + SELECT id, key_hash, name, user_id, permission_mode, expires_at, created_at, updated_at, last_used_at FROM api_keys - WHERE enabled = 1 AND (expires_at IS NULL OR expires_at > ?) + WHERE expires_at IS NULL OR expires_at > ? ORDER BY created_at DESC ` @@ -157,7 +157,7 @@ func (db *sqliteDB) GetActiveKeys(ctx context.Context) ([]*auth.APIKey, error) { err := rows.Scan( &key.ID, &key.KeyHash, &key.Name, &key.UserID, &key.PermissionMode, - &expiresAt, &key.Enabled, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, + &expiresAt, &key.CreatedAt, &key.UpdatedAt, &lastUsedAt, ) if err != nil { return nil, fmt.Errorf("failed to scan API key: %w", err) diff --git a/pkg/database/migrations/001_initial_schema.up.sql b/pkg/database/migrations/001_initial_schema.up.sql index 5c71a81..a9dc4e4 100644 --- a/pkg/database/migrations/001_initial_schema.up.sql +++ b/pkg/database/migrations/001_initial_schema.up.sql @@ -36,7 +36,6 @@ CREATE TABLE IF NOT EXISTS api_keys ( user_id TEXT NOT NULL, permission_mode TEXT NOT NULL CHECK(permission_mode IN ('allow_all', 'per_instance')) DEFAULT 'per_instance', expires_at INTEGER NULL, - enabled INTEGER NOT NULL DEFAULT 1, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, last_used_at INTEGER NULL diff --git a/pkg/server/handlers_auth.go b/pkg/server/handlers_auth.go index dddc336..fb1a7fb 100644 --- a/pkg/server/handlers_auth.go +++ b/pkg/server/handlers_auth.go @@ -32,7 +32,6 @@ type CreateKeyResponse struct { UserID string `json:"user_id"` PermissionMode auth.PermissionMode `json:"permission_mode"` ExpiresAt *int64 `json:"expires_at"` - Enabled bool `json:"enabled"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` LastUsedAt *int64 `json:"last_used_at"` @@ -46,7 +45,6 @@ type KeyResponse struct { UserID string `json:"user_id"` PermissionMode auth.PermissionMode `json:"permission_mode"` ExpiresAt *int64 `json:"expires_at"` - Enabled bool `json:"enabled"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` LastUsedAt *int64 `json:"last_used_at"` @@ -142,7 +140,6 @@ func (h *Handler) CreateKey() http.HandlerFunc { UserID: "system", PermissionMode: req.PermissionMode, ExpiresAt: req.ExpiresAt, - Enabled: true, CreatedAt: now, UpdatedAt: now, } @@ -171,7 +168,6 @@ func (h *Handler) CreateKey() http.HandlerFunc { UserID: apiKey.UserID, PermissionMode: apiKey.PermissionMode, ExpiresAt: apiKey.ExpiresAt, - Enabled: apiKey.Enabled, CreatedAt: apiKey.CreatedAt, UpdatedAt: apiKey.UpdatedAt, LastUsedAt: apiKey.LastUsedAt, @@ -210,7 +206,6 @@ func (h *Handler) ListKeys() http.HandlerFunc { UserID: key.UserID, PermissionMode: key.PermissionMode, ExpiresAt: key.ExpiresAt, - Enabled: key.Enabled, CreatedAt: key.CreatedAt, UpdatedAt: key.UpdatedAt, LastUsedAt: key.LastUsedAt, @@ -260,7 +255,6 @@ func (h *Handler) GetKey() http.HandlerFunc { UserID: key.UserID, PermissionMode: key.PermissionMode, ExpiresAt: key.ExpiresAt, - Enabled: key.Enabled, CreatedAt: key.CreatedAt, UpdatedAt: key.UpdatedAt, LastUsedAt: key.LastUsedAt, diff --git a/webui/src/types/apiKey.ts b/webui/src/types/apiKey.ts index 21a758d..2f3d786 100644 --- a/webui/src/types/apiKey.ts +++ b/webui/src/types/apiKey.ts @@ -9,7 +9,6 @@ export interface ApiKey { user_id: string permission_mode: PermissionMode expires_at: number | null - enabled: boolean created_at: number updated_at: number last_used_at: number | null