Create a user
Create a new user account. Only admins can create users.Request
Unique username for the new user. Must not already exist in the system.
Email address for the user
Password for the user. Will be securely hashed using bcrypt before storage.
Response
Unique identifier (UUID) for the user
Username of the created user
Email address of the user
Whether the user has admin privileges (always
false for newly created users)Error responses
409 Conflict - Username already exists:List all users
Retrieve a list of all users in the system.Response
Returns an array of user objects. Passwords are never included in responses.This endpoint is available to all authenticated users, not just admins. It’s useful for discovering usernames when sharing filters.
Delete a user
Permanently remove a user account. Only admins can delete users.Path parameters
The unique identifier (UUID) of the user to delete
Response
200 OK - User deleted successfully:User security
Password storage
Passwords are securely hashed using bcrypt with the default cost factor (10 rounds) before being stored in the database. Passwords are never returned in API responses.Admin privileges
New users are always created withis_admin: false. Admin status cannot be set through the API and must be configured directly in the database or through the configuration file for the default admin account.
Default admin account
BOOM creates a default admin account on startup with credentials configured inconfig.yaml:
User permissions
Users have the following permissions:| Action | Regular User | Admin |
|---|---|---|
| Create filters | ✓ | ✓ |
| View own filters | ✓ | ✓ |
| View all filters | ✗ | ✓ |
| Modify own filters | ✓ | ✓ |
| Modify any filter | ✗ | ✓ |
| List users | ✓ | ✓ |
| Create users | ✗ | ✓ |
| Delete users | ✗ | ✓ |
| Run queries | ✓ | ✓ |
Best practices
- Limit admin accounts - Only create admin accounts for users who need full system access
- Strong passwords - Enforce strong password policies for all users
- Regular audits - Periodically review the user list and remove inactive accounts
- Unique usernames - Use descriptive, unique usernames for easier identification
- Email verification - Consider implementing email verification in your workflow (not built into the API)