-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
This version focuses on the most basic functions and is suitable for small, single-domain websites.
Release date: Late September, 2022.
Note: If a feature is "enabled on demand", it will be marked (EoD).
- ID (Required if GUID not defined, Modifiable but not recommended)
- Rule: integer, length 8 and starts with '4' or auto-increment, unique.
- Search by ID, exact and prefix or suffix fuzzy.
- GUID (Required if ID not defined, Modifiable but not recommended)
- Rule: binary, 128-bit, Primary key.
- Password
- Password Hash, bcrypt.
- Authentication Key, unique, not null.
- Access Token, unique, not null.
- Password Reset Token, unique, default null.
- IP Address
- Record the IP address when registering.
- Supports IPv4 and IPv6.
- Status
- 0: disabled. The user is disabled and cannot be enabled permanently. All permissions have been disabled.
- UserNotActiveException, throws if user is not active.
- 1: enabled. This user is enabled for any authorized activity.
- 0: disabled. The user is disabled and cannot be enabled permanently. All permissions have been disabled.
- Source
- 0: Self-registration.
- 1: By-invitation.
- Type
- 0: Individual
- 1: Organization
- 2: System
- Associated Active Record.
- Support (EoD) associated active record.
- Rules are all configurable.
- Active Query
- Searched by GUID, internal.
- Searched by ID.
- Searched by Access Token.
- Searched by the specified (registration, last updated) time period, such as yesterday, or the last year.
- Searched by the specified IP address (segment), such as
192.168.0.*
, or172.26.*.*
. - one or more of above conditions.
- Could be enabled on demand with
User
. - GUID (same with
User
's). - Nickname.
- First name and Last name.
- Gender.
- Timezone.
- Biography.
- Rules are all configurable.
- Searched associated with Active Query of
User
:- Searched by
Nickname
. - Searched by
Gender
. - one or more of above conditions, and conditions listed in
User
.
- Searched by
- Could be enabled on demand with
User
. - GUID (same with
User
's). - Username rule: string, length 5~32, not start with digit or a pure number.
- Could be used as login identifier.
- Could be searched for.
- Rules are all configurable.
- Active Query:
- Search by username.
- Register widget:
-
Username
field, additional, required and appeared depends on whether the user name function is enabled.
-
- Register in the console application:
- Specifiy
ID
,Username
(can be enabled on demand),Profile
(can be enabled on demand)
- Specifiy
- Register by invitation:
- Invited by a user
- Invitation Code
- LoginMethod:
- ID (Required).
- Username (can be enabled on demand).
- Login widget:
- Uniform login identifiers and automatically differentiate: ID, username, etc.
- Captcha: can be enabled on demand.
- Login Log:
- Log every successful login.
- The contents of the record include IP address and time.
- Can be enabled on demand.
- Can determine whether a password has ever been used.
- Three basic roles:
- User (Default)
- Admin
- WebMaster
- Permissions
- GrantAdmin
- CreateUser
- RevokeAdmin
- DeleteMyself
- DeleteUser
- UpdateAdmin
- UpdateMyself
- UpdateUser
- Display detail of current logged-in user.
-
User
Active Record. -
Username
Active Record, if enabled. -
Profile
Active Record, if enabled. -
LoginLog
Active Record, if enabled. -
PasswordHistory
Active Record, if enabled. - roles and permissions, if enabled.
-
- Automatically determine the display language based on the environment.
- Languages:
- English.
- Chinese.
- MySQL
- 8.0
This version is the enhancement of the previous version, adding a variety of user attributes to improve security and adaptability. This version has added the background management function.
Release date: Late September, 2023.
Note. Subsequent versions only show changes.
- Status
- 2: suspended. The user cannot be logged in and all permissions are retained.
- 3: restricted. The user can still log in, but can only perform specified actions.
- Source
- 2: Automatically generated by administrator.
- 3: Automatically generated by associated third-party.
- Initial.
- Approve.
- Cancel.
- User can customize whether its username can be searched.
- A user can have multiple email addresses.
- Could be used as login identifier.
- Verified
- 0: not verified.
- 1: verified.
- Could be searched:
- Login Method: choose one of verified email addresses.
- User can customize whether its email can be searched.
- A user can have multiple phone numbers.
- Could be used as login identifier.
- Verified
- 0: not verified.
- 1: verified.
- Could be searched:
- Login Method: choose one of verified phone numbers.
- User can customize whether its email can be searched.
The access token is different from the user model's. This token is used for a specific application scenario. The same user will get different tokens in different application scenarios. The token property of the user model can only be used in internal stateless scenarios.
For example:
- The current user authorizes a third-party application, and the access token issued in this scenario is permanently valid.
- The current user temporarily logs in to an application, and the issued access token expires after a period of time, such as 30 minutes.
Since this function may be accessed frequently, the Active Record should first consider adapting to MongoDB or redis.
- Field:
- name.
- Apply:
- for single time, or limited times.
- for limited duration, such as 5 minutes, 24 hours, 90 days or forever.
- for limited IP address (segment), such as
192.168.0.*
. - for partial associated application, or no limit.
- by associated application.
- user itself and used wherever the user wants.
- Rate limit:
- The maximum number of uses within the specified time period.
- Security:
- The access token expires immediately after the user changes the password or is not enabled.
- Statistics and log:
- IP address and timestamp or each call.
- Log each call and limit the number of log entries and maximum retention time.
- Register widget:
-
Captcha
field, additional, configurable.
-
- Registration Security:
- Suspended conditions:
- according to the total number of users.
- according to the number of registered users within the specified time period has reached the limit.
- according to the number of registered users within the specified IP address (segment) has reached the limit.
- one or more of the above conditions.
- Conditionally enable captcha:
- appeared if the number of registered users within the IP address (segment) has reach the threshold.
- Registration by invitation can be configured whether to apply the security policy.
- Suspended conditions:
- Register by invitation:
- Invited by a user with invite permissions.
- The remaining times of the invitation code, or the validity period.
- Prefabricated data before invitation, such as VIP user roles, pre-issued coupons, etc.
- LoginMethod:
- Email (can be enabled on demand).
- Login widget:
- Captcha: can be enabled on demand.
- Login Log:
- Log every successful and failed login.
- Login Security:
- The number of failed logins allowed per period, such as 20 times per day, configurable.
- The number of failed logins allowed per IP address (segment), such as 20 times per IP address (segment), configurable.
- one or more of the above conditions.
- Limit the number of records per user:
- according to total, such as 10 records, or no limit.
- according to the duration the record kept, such as 3 years, or forever.
- Statistics:
- Total users:
- registered.
- disabled.
- source.
- Daily report:
- newly registered.
- newly logged-in.
- newly deregistered.
- newly restricted.
- Total users:
- Edit users:
- Password.
- Profile, if enabled.
- Username, if enabled.
- Email, if enabled.
- Phone, if enabled.
- Enable, disable, restrict, or suspend a user, and leave a reason.
- Control
- Registration
- Login
- Import and Export
- Partial or full import or export can be selected.
- MySQL
- 8.0
- 5.7
- 5.6
- PostgreSQL
- 15
- 14
- 13
- MariaDB
- 10.9
- 10.8
- 10.7
- MongoDB (Cache, Log)
- 6.0
- 5.0
- Redis (Cache, Log)
- 5.x
- 6.x
- 7.x
This version focuses on a wider range of application scenarios, especially adding "single sign-on", "SSL/TLS everywhere", "caching everywhere", "restful API everywhere", "configurable everywhere", "distributed", "customizable permissions and roles", "non-stop maintenance support", "broader databases adaptability", "microservices and containerization (Inversion of Control)", "audit of user and admin behavior", "risk control strategy", "log and report API" and other features.
Release date: Late September, 2024.
- Login Method:
- All login identifier could be cached and dynamically updated in Redis or MongoDB.
- Login widget:
- Ability to use third-party verification services, such as Captcha, Mobile Phone, Email, etc.
- Security:
- All login successfully and failed logs could be stored to Redis or MongoDB.
- MySQL
- 8.0
- 5.7
- 5.6
- 5.5
- PostgreSQL
- 15
- 14
- 13
- 12
- MariaDB
- 10.9
- 10.8
- 10.7
- 10.6
- MongoDB (Cache, Log, Rate Limiter)
- 6.x
- 5.x
- 4.x
- Redis (Cache, Log, Rate Limiter)
- 4.x
- 5.x
- 6.x
- 7.x
- 8.x