AgileConfig was originally designed as a tool for my own use, so I just set an administrator password with no concept of a user. However, many students put forward suggestions that require multi-user support after using it. It is inconvenient to have the same password for an entire team or company. Today AgileConfig 1.3.0 finally supports multiple users and simple permission management. The design of users and permissions is often involved in the development of management systems. The most common one is RBAC role-based permissions control. However, based on the simple concept of AgileConfig, I slightly simplified the function design of permission control to reduce the learning cost as much as possible.

Permission to design

The AgileConfig permission design is divided into three fixed roles:

  1. Super Administrator Super Administrator has all control rights and can add, modify or delete user, application, configuration, and any other information
  2. An administrator can create a new application, delete or modify the application that belongs to him (the administrator property of the application is the current user), and the configuration items of the application. The administrator can grant administrative rights to any user for the application’s configuration items. Administrators can add, modify and delete users whose roles are operators.
  3. Operator does not have any control over the application, except to edit or publish configuration items for applications that are offline and authorized by the administrator.

User management

With the new multi-user support in 1.3.0, user management is a must.



After logging in the system with the administrator level user, click “User” => “Add” button to pop up the user add interface.



Select the role of the user after adding basic information such as “username”, “password” and “team”. Click OK to create a new user. After the prompt is successful, you can log on to the system using this user.

Application of authorization

Version 1.3.0 supports simple authorization management for users.



Administrators can maintain an administrator role when creating/editing applications. The account has full control over the application.



If you want other users to edit configuration items, you can do so in the authorization screen. Click the “Authorization” button to pop up the authorization interface.



Permissions are divided into two parts:

  1. Configuration modification rights: configuration items to modify, delete rights
  2. Configure up and down right: the online and offline rights of configuration items.

Upgrade the database structure that needs to be updated

Due to the addition of multi-user support in 1.3, several tables and fields were added, which resulted in the error report of the program after 1.2 was upgraded to 1.3, and the table structure needs to be manually adjusted. Take MySQL as an example:

  1. SELECT * FROM AGC_APP WHERE APP_ADMIN VARCHAR (36)
  2. New agc_user table

    CREATE TABLE `agc_user` (
      `id` varchar(36) NOT NULL,
      `user_name` varchar(50) DEFAULT NULL,
      `password` varchar(50) DEFAULT NULL,
      `salt` varchar(36) DEFAULT NULL,
      `team` varchar(50) DEFAULT NULL,
      `create_time` datetime(3) NOT NULL,
      `update_time` datetime(3) DEFAULT NULL,
      `status` enum('Normal','Deleted') NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  3. New agc_user_app_auth table

    CREATE TABLE `agc_user_app_auth` (
      `id` varchar(36) NOT NULL,
      `app_id` varchar(36) DEFAULT NULL,
      `user_id` varchar(36) DEFAULT NULL,
      `permission` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  4. New agc_user_role table
CREATE TABLE `agc_user_role` (
  `id` varchar(36) NOT NULL,
  `user_id` varchar(50) DEFAULT NULL,
  `role` enum('SuperAdmin','Admin','NormalUser') NOT NULL,
  `create_time` datetime(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

New table with fields after re-run the program, will prompt reset super administrator password, can be used normally after.

The last

✨ ✨ ✨ making address: https://github.com/kklldog/AgileConfig, open source is not easy, popular star ✨ ✨ ✨

AgileConfig Server Demo Super administrator account: admin password: 123456