feat(security): add password complexity validator

- Implement strict password requirements:
  - Minimum 8 characters
  - At least one uppercase letter
  - At least one lowercase letter
  - At least one number
  - At least one special character
- Add custom validator for Echo integration
- Add GetPasswordRequirements helper function
- Add ValidatePassword function for manual validation
This commit is contained in:
2026-01-29 09:23:34 -05:00
parent db18aa5e5e
commit 311361a2ed
4 changed files with 251 additions and 1 deletions
+12
View File
@@ -32,6 +32,16 @@ CREATE TABLE users (
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Create refresh_tokens table
CREATE TABLE refresh_tokens (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
token VARCHAR(255) UNIQUE NOT NULL,
expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
revoked_at TIMESTAMP WITH TIME ZONE
);
-- Create libraries table
CREATE TABLE libraries (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
@@ -189,6 +199,8 @@ WHERE lt.name = 'ebooks';
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_username ON users(username);
CREATE INDEX idx_library_types_name ON library_types(name);
CREATE INDEX idx_refresh_tokens_token ON refresh_tokens(token);
CREATE INDEX idx_refresh_tokens_user_id ON refresh_tokens(user_id);
-- Library indexes
CREATE INDEX idx_libraries_name ON libraries(name);