Skip to content
API Now! is currently in closed beta. We are constantly updating these guides as we release updates!

Password (Semantic Module)

← Back to Modules Reference

The Password semantic module represents sensitive authentication credentials. In a standard database setup, storing passwords securely requires manual code for salting, hashing, and verifying. The Password module automates this entire lifecycle at the database and gateway levels.


AttributeSpecification
Data TypeString
Default ValidationMinimum 8 characters, maximum 100 characters
Write BehaviorSalted and hashed using Bcrypt
Read BehaviorWrite-only (hidden/redacted from all API reads)

When a user registers or updates their password via a POST, PUT, or PATCH request, the platform’s Serverless Engine intercepts the raw text value, generates a unique salt, and hashes it using Bcrypt before writing it to the PostgreSQL database.

To prevent accidental credential leaks, the database automatically filters out the password field from all select queries. Any API endpoint (such as GET /users or GET /users/{userId}) will completely omit the password property in the JSON response.


When applying the Password semantic module in the Domain Modeler, you can customize security parameters directly in the property configuration panel:

Password Configuration Options

  • Require Special Characters: If enabled, passwords must contain at least one special symbol (e.g., !, @, #, $).
  • Require Numbers: If enabled, passwords must contain at least one numeric digit (0-9).
  • Require Uppercase Letters: If enabled, passwords must contain at least one uppercase letter.
  • Require Lowercase Letters: If enabled, passwords must contain at least one lowercase letter.
  • Prevent Reuse: If enabled, passwords cannot be reused.
    • Reuse count: Number of previous passwords to remember.
  • Max Age: When set, password has to be changed after the specified number of days.

When creating a user account, the client application sends the password in plain text over HTTPS:

POST /users
{
"name": "Jane Doe",
"email": "jane.doe@example.com",
"password": "SuperSecurePassword123!"
}

When reading the newly created user profile, the API response automatically excludes the password field:

GET /users/usr_928374
{
"id": "usr_928374",
"name": "Jane Doe",
"email": "jane.doe@example.com",
"created_at": "2026-06-28T12:20:00Z"
}

  • Invalid Type Error: Applying the Password semantic module to a non-string column (such as an Integer or Boolean) will cause a Semantic Data Alignment [Error] during domain validation.
  • Length Restriction: If a client sends a password shorter than 8 characters, the API gateway will reject the request before hitting the database:
    {
    "error": "Validation Failed",
    "details": [
    {
    "field": "password",
    "message": "Password must be at least 8 characters long."
    }
    ]
    }