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.