Skip to content

User Management ​

Ops Atlas includes a built-in role-based access control system. Every user is assigned a role that determines what they can see and do across the platform.

Roles ​

RoleDescription
ADMINFull access to all features, including user management, settings, and deployments
OPERATORCan perform deployments and container operations, but cannot manage users or system settings
VIEWERRead-only access to the dashboard — the default role for new users

Role Permissions Matrix ​

CapabilityADMINOPERATORVIEWER
View dashboard & containersYesYesYes
Start / stop / restart containersYesYesNo
Deploy servicesYesYesNo
Manage environment variablesYesYesNo
Manage usersYesNoNo
Change system settingsYesNoNo
View audit logYesNoNo

User Entity ​

Each user record contains the following fields:

FieldDetails
usernameUnique identifier for login
emailUnique, validated email address
passwordStored as a BCrypt hash — never in plain text
fullNameDisplay name
roleOne of ADMIN, OPERATOR, or VIEWER
enabledBoolean flag — disabled users cannot log in
lastLoginTimestamp of the most recent successful login

Managing Users ​

User CRUD operations are handled through the UserManagementController API and the Settings UI. Only users with the ADMIN role can create, update, or delete other users.

Create a User ​

http
POST /api/users
Content-Type: application/json

{
  "username": "jane.doe",
  "email": "jane@example.com",
  "password": "securePassword123",
  "fullName": "Jane Doe",
  "role": "OPERATOR"
}

List Users ​

http
GET /api/users

Update a User ​

http
PUT /api/users/{id}

Delete a User ​

http
DELETE /api/users/{id}

WARNING

Deleting a user is permanent. Consider disabling the account instead by setting enabled to false.

Authentication ​

Ops Atlas uses JWT-based authentication with a two-token strategy.

Login ​

http
POST /api/auth/login
Content-Type: application/json

{
  "username": "admin",
  "password": "password"
}

A successful login returns:

TokenLifetimePurpose
Access token1 hourSent as a Bearer token on every API request
Refresh token7 daysUsed to obtain a new access token without re-entering credentials

Refreshing Tokens ​

http
POST /api/auth/refresh

Send the refresh token to receive a new access/refresh token pair.

Change Password ​

http
POST /api/auth/change-password
Content-Type: application/json

{
  "currentPassword": "oldPassword",
  "newPassword": "newSecurePassword"
}

TIP

All users can change their own password. Admins can reset any user's password through the user management API.

Get Current User ​

http
GET /api/auth/user

Returns the profile and role of the currently authenticated user.

Logout ​

http
POST /api/auth/logout

Invalidates the current token pair.

Released under the MIT License.