Skip to content

Comet Enterprise allows some Admin operations only via REST API.

Assigning admin role to users

Prior Comet backend version 3.2.140 you'll need to add your username in the environment variable config /etc/default/comet-ml in the following format

ADMIN_USER_LIST="[user1,user2]"
For kubernetes deployments, you should add it in your values.yaml like this:
backend:
  adminUserList: "[user1,user2]"

Recovering Admin access

Backend versions including and after 3.2.140, Users that have the Admin role also have the same capabilities to run admin API operations.
The ADMIN_USER_LIST is still available in recent versions in case you need to recover Admin access to the Comet application.

Note

After applying this configuration, it is important to restart all backend services to ensure the changes take effect.

How to run curl commands

With the user that already have Admin permissions, you can get your API Key following this

  • Example on how to pull usage report:

curl -X GET https://comet-host/api/admin/generate-license-report -H 'Authorization: adminApiKey'
- Example on how to add a user to workspace:
curl -X POST 'https://comet-host/api/admin/workspace/addUser' -H 'Content-Type: application/json' -H 'Authorization: adminApiKey' -d '{ "userName": "string", "workspaceName": "string", "admin": false }'
  • Example on how to change an user password:
    curl -X PUT 'https://comet-host/api/admin/reset-password' -H 'Content-Type: application/json' -H 'Authorization: adminApiKey' -d '{"username": "some-user", "newPassword": "NeWPasswordComet!"}'
    

Available operations

addUserToTeam

POST /admin/workspace/addUser

Body parameter

{
  "userName": "string",
  "workspaceName": "string",
  "admin": true
}

Parameters

NameInTypeRequiredDescription
bodybodyAddUserToTeamByNamefalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

changeUserName

POST /admin/change-user-name

Body parameter

{
  "oldUserName": "string",
  "newUserName": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyChangeUserNamefalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

createExperimentShareCode

POST /admin/share-code/new-experiment-link

Body parameter

{
  "experimentKey": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyNewExperimentLinkRequestfalsenone

Example responses

200 Response

{
  "shareCode": "string",
  "link": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKnoneNewProjectShareCodeLink

createProjectShareCode

POST /admin/share-code/new-project-link

Body parameter

{
  "workspaceName": "string",
  "projectName": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyNewProjectShareCodeLinkRequestfalsenone

Example responses

200 Response

{
  "shareCode": "string",
  "link": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKnoneNewProjectShareCodeLink

deleteAllInternalProjectShareCodes

DELETE /admin/share-code/delete-all

Responses

StatusMeaningDescriptionSchema
200OKOKNone

deleteUser

DELETE /admin/delete-user

Parameters

NameInTypeRequiredDescription
userNamequerystringtruenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

generateAndGetLatestLicenseReport

GET /admin/generate-license-report

Example responses

200 Response

{
  "licensedUsers": [
    {
      "username": "string",
      "email": "string",
      "created_at": 0,
      "uiUsageCount": 0,
      "uiUsageUpdateTs": 0,
      "sdkUsageCount": 0,
      "sdkUsageUpdateTs": 0,
      "deletedAt": 0,
      "suspended": true
    }
  ],
  "numberOfUsers": 0,
  "createdAt": "2019-08-24T14:15:22Z"
}

Responses

StatusMeaningDescriptionSchema
200OKnoneLicenseReport

getAllUserUsageReports

GET /admin/license-report/getAll

Example responses

200 Response

[
  {
    "licensedUsers": [
      {
        "username": "string",
        "email": "string",
        "created_at": 0,
        "uiUsageCount": 0,
        "uiUsageUpdateTs": 0,
        "sdkUsageCount": 0,
        "sdkUsageUpdateTs": 0,
        "deletedAt": 0,
        "suspended": true
      }
    ],
    "numberOfUsers": 0,
    "createdAt": "2019-08-24T14:15:22Z"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKnoneInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
anonymous[LicenseReport]falsenonenone

getLatestUserUsageReport

GET /admin/license-report/getLatest

Example responses

200 Response

{
  "licensedUsers": [
    {
      "username": "string",
      "email": "string",
      "created_at": 0,
      "uiUsageCount": 0,
      "uiUsageUpdateTs": 0,
      "sdkUsageCount": 0,
      "sdkUsageUpdateTs": 0,
      "deletedAt": 0,
      "suspended": true
    }
  ],
  "numberOfUsers": 0,
  "createdAt": "2019-08-24T14:15:22Z"
}

Responses

StatusMeaningDescriptionSchema
200OKnoneLicenseReport

getProjectShareCodes

GET /admin/share-code/get-all

Parameters

NameInTypeRequiredDescription
workspaceNamequerystringtruenone
projectNamequerystringtruenone

Example responses

200 Response

{
  "shareCodes": [
    "string"
  ],
  "links": [
    "string"
  ]
}

Responses

StatusMeaningDescriptionSchema
200OKnoneProjectShareCodeLinks

listAllUsers

GET /admin/list-all-users

Parameters

NameInTypeRequiredDescription
suspendedOnlyquerybooleanfalsenone

Example responses

200 Response

[
  {
    "left": "string",
    "right": "string",
    "value": "string",
    "key": "string"
  }
]

Responses

StatusMeaningDescriptionSchema
200OKnoneInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
anonymous[PairStringString]falsenonenone

newTeam

POST /admin/workspace/new

Body parameter

{
  "name": "string",
  "plan": "string",
  "users": [
    "string"
  ],
  "organizationId": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyNewTeamAdminRequestfalsenone

Example responses

200 Response

{
  "msg": "string",
  "teamName": "string",
  "teamId": "string",
  "usersAdded": [
    "string"
  ],
  "usersError": [
    "string"
  ],
  "code": 0
}

Responses

StatusMeaningDescriptionSchema
200OKnoneNewTeamAdminResponse

removeFromTeam

POST /admin/workspace/removeUser

Body parameter

{
  "userName": "string",
  "workspaceName": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyRemoveUserFromTeamByNamefalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

removeTeam

DELETE /admin/workspace/delete

Parameters

NameInTypeRequiredDescription
workspaceNamequerystringtruenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

resetPasswordComplete

PUT /admin/reset-password

Body parameter

{
  "username": "string",
  "newPassword": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyresetPasswordRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

rotateExpiredApiKeys

POST /admin/keys/rotate

Body parameter

{
  "days": 0
}

Parameters

NameInTypeRequiredDescription
bodybodyKeysRotateRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

setOnPremUserOrganizationAdmin

PATCH /admin/set-onprem-user-admin

Body parameter

{
  "userName": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodySetOnPremUserOrganizationAdminRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

suspendUser

PUT /admin/suspend-user

Body parameter

{
  "username": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodySuspendUserRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

syncUserToTeams

POST /admin/workspace/syncUser

Body parameter

{
  "userName": "string",
  "workspaceNames": [
    "string"
  ],
  "workspacePlan": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodySyncUserToTeamsRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

transferAllProject

PUT /admin/transfer/projects

Body parameter

{
  "originWorkspace": "string",
  "targetWorkspace": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyTransferAllProjectRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

transferProject

PUT /admin/transfer/project

Body parameter

{
  "workspaceName": "string",
  "projectName": "string",
  "targetWorkspaceName": "string",
  "owner": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodyTransferProjectRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

unsuspendUser

PUT /admin/unsuspend-user

Body parameter

{
  "username": "string"
}

Parameters

NameInTypeRequiredDescription
bodybodySuspendUserRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

updateCodePanelTemplate

PUT /admin/code-visualizations/template/{template_id}/scope

Body parameter

{
  "scopeType": "PRIVATE"
}

Parameters

NameInTypeRequiredDescription
template_idpathstringtruenone
bodybodyUpdatePanelTemplateScopeRequestfalsenone

Responses

StatusMeaningDescriptionSchema
200OKOKNone

Schemas

AddUserToTeamByName

{
  "userName": "string",
  "workspaceName": "string",
  "admin": true
}

Properties

NameTypeRequiredRestrictionsDescription
userNamestringfalsenonenone
workspaceNamestringfalsenonenone
adminbooleanfalsenonenone

ChangeUserName

{
  "oldUserName": "string",
  "newUserName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
oldUserNamestringfalsenonenone
newUserNamestringfalsenonenone
{
  "shareCode": "string",
  "link": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
shareCodestringfalsenonenone
linkstringfalsenonenone

NewExperimentLinkRequest

{
  "experimentKey": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
experimentKeystringfalsenonenone

NewProjectShareCodeLinkRequest

{
  "workspaceName": "string",
  "projectName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
workspaceNamestringfalsenonenone
projectNamestringfalsenonenone

LicenseReport

{
  "licensedUsers": [
    {
      "username": "string",
      "email": "string",
      "isSuspended": true,
      "created_at": 0,
      "uiUsageCount": 0,
      "uiUsageUpdateTs": 0,
      "sdkUsageCount": 0,
      "sdkUsageUpdateTs": 0,
      "deletedAt": 0,
      "suspended": true
    }
  ],
  "numberOfUsers": 0,
  "createdAt": "2019-08-24T14:15:22Z"
}

Properties

NameTypeRequiredRestrictionsDescription
licensedUsers[LicensedUser]falsenonenone

LicensedUser

{
  "username": "string",
  "email": "string",
  "isSuspended": true,
  "created_at": 0,
  "uiUsageCount": 0,
  "uiUsageUpdateTs": 0,
  "sdkUsageCount": 0,
  "sdkUsageUpdateTs": 0,
  "deletedAt": 0,
  "suspended": true
}

Properties

NameTypeRequiredRestrictionsDescription
usernamestringfalsenonenone
emailstringfalsenonenone
isSuspendedbooleanfalsewrite-onlynone
created_atinteger(int64)falsenonenone
uiUsageCountinteger(int32)falsenonenone
uiUsageUpdateTsinteger(int64)falsenonenone
sdkUsageCountinteger(int32)falsenonenone
sdkUsageUpdateTsinteger(int64)falsenonenone
deletedAtinteger(int64)falsenonenone
suspendedbooleanfalsenonenone

{
  "shareCodes": [
    "string"
  ],
  "links": [
    "string"
  ]
}

Properties

NameTypeRequiredRestrictionsDescription
shareCodes[string]falsenonenone
links[string]falsenonenone

PairStringString

{
  "left": "string",
  "right": "string",
  "value": "string",
  "key": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
leftstringfalsenonenone
rightstringfalsenonenone
valuestringfalsenonenone
keystringfalsenonenone

NewTeamAdminResponse

{
  "msg": "string",
  "teamName": "string",
  "teamId": "string",
  "usersAdded": [
    "string"
  ],
  "usersError": [
    "string"
  ],
  "code": 0
}

Properties

NameTypeRequiredRestrictionsDescription
msgstringfalsenonenone
teamNamestringfalsenonenone
teamIdstringfalsenonenone
usersAdded[string]falsenonenone
usersError[string]falsenonenone
codeinteger(int32)falsenonenone

NewTeamAdminRequest

{
  "name": "string",
  "plan": "string",
  "users": [
    "string"
  ],
  "organizationId": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
namestringfalsenonenone
planstringfalsenonenone
users[string]falsenonenone
organizationIdstringfalsenonenone

RemoveUserFromTeamByName

{
  "userName": "string",
  "workspaceName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
userNamestringfalsenonenone
workspaceNamestringfalsenonenone

resetPasswordRequest

{
  "username": "string",
  "newPassword": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
usernamestringfalsenonenone
newPasswordstringfalsenonenone

KeysRotateRequest

{
  "days": 0
}

Properties

NameTypeRequiredRestrictionsDescription
daysinteger(int32)falsenonenone

SetOnPremUserOrganizationAdminRequest

{
  "userName": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
userNamestringtruenonenone

SuspendUserRequest

{
  "username": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
usernamestringfalsenonenone

SyncUserToTeamsRequest

{
  "userName": "string",
  "workspaceNames": [
    "string"
  ],
  "workspacePlan": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
userNamestringfalsenonenone
workspaceNames[string]falsenonenone
workspacePlanstringfalsenonenone

TransferAllProjectRequest

{
  "originWorkspace": "string",
  "targetWorkspace": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
originWorkspacestringfalsenonenone
targetWorkspacestringfalsenonenone

TransferProjectRequest

{
  "workspaceName": "string",
  "projectName": "string",
  "targetWorkspaceName": "string",
  "owner": "string"
}

Properties

NameTypeRequiredRestrictionsDescription
workspaceNamestringfalsenonenone
projectNamestringfalsenonenone
targetWorkspaceNamestringfalsenonenone
ownerstringfalsenonenone

UpdatePanelTemplateScopeRequest

{
  "scopeType": "PRIVATE"
}

Properties

NameTypeRequiredRestrictionsDescription
scopeTypestringfalsenonenone

Enumerated Values

PropertyValue
scopeTypePRIVATE
scopeTypeINTERNAL
scopeTypePUBLIC
scopeTypeBUILTIN
scopeTypeWORKSPACE
Dec. 19, 2023