Documentation

sql

The SQL backend allows Radiator to authenticate and authorize users against various SQL databases, such as MySQL/MariaDB and PostgreSQL. The SQL backends are configured with a name.

Example configuration of a PostgreSQL backend:

postgres "SQL_DATABASE_USERS_INTERNAL" {
    # Database URL
    url "postgresql://radiator:password@postgresql-cluster.local:5432/radiator";

    # SQL query named "FIND_USER"
    query "FIND_USER" {
        # SQL statement (PostgreSQL uses $1, $2, etc. for parameters)
        statement "SELECT userid, password FROM userids WHERE userid = $1";

        # Query argument binding in order
        bindings {
            aaa.identity;
        }

        # Result value mapping
        mapping {
            user.username = userid;
            user.password = password;
        }
    }

    # SQL query named "USER_GROUPS"
    query "USER_GROUPS" {
        # SQL statement
        statement "SELECT groupname FROM groups INNER JOIN group_memberships ON groups.id = group_memberships.group_id INNER JOIN users ON group_memberships.user_id = users.id WHERE username = $1";

        # Query argument binding in order
        bindings {
            aaa.identity;
        }

        # Result values mapping
        mapping {
            user.group += groupname;
        }
    }
}
Navigation
Parents
Children