Difference between revisions of "Command Center API Reference"
(→Get Command Center Project Status) |
(→Add Users to a Team) |
||
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= Introduction = |
= Introduction = |
||
+ | |||
+ | The API commands provide some high level information or actions for individual projects in Command Center. The usage scenario is to get basic information on a project, for instance from a CI/CD system, or to trigger some overall action at the project level or on users. |
||
+ | |||
+ | All API commands require a username and token to authenticate and authorize those calls. API Users are set in the Command Center User Settings panel, and can be added to the Access set of users for a project. |
||
= List Command Center projects = |
= List Command Center projects = |
||
+ | The <code>listprojects</code> returns a list of projects associated with the username/token passed in the call. That list may hence not be exhaustive of all the projects on-boarded with Command Center. |
||
curl "COMMAND_CENTER_URL/api/listprojects" -d '{"username":"API_USER","token":"API_TOKEN"}' --header "Content-Type: application/json" |
curl "COMMAND_CENTER_URL/api/listprojects" -d '{"username":"API_USER","token":"API_TOKEN"}' --header "Content-Type: application/json" |
||
Example: |
Example: |
||
− | curl "http://localhost:8080/command-center/api/listprojects" -d '{"username":" |
+ | curl "http://localhost:8080/command-center/api/listprojects" -d '{"username":"APIuser","token":"CTMNzj**********CP"}' --header "Content-Type: application/json" |
or |
or |
||
Line 14: | Line 19: | ||
'''listprojects.json''': |
'''listprojects.json''': |
||
{ |
{ |
||
− | "username":" |
+ | "username":"APIuser", |
"token":"CTMNzj**********CP" |
"token":"CTMNzj**********CP" |
||
} |
} |
||
= Command Center Project Status = |
= Command Center Project Status = |
||
+ | The <code>getStatus</code> command provides a high level status on the Globalyzer and the Localyzer side of a given project. |
||
Line 25: | Line 31: | ||
Example: |
Example: |
||
− | curl "http://localhost:8080/command-center/api/getStatus" -d '{"username":" |
+ | curl "http://localhost:8080/command-center/api/getStatus" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json" |
or |
or |
||
Line 32: | Line 38: | ||
'''getStatus.json:''' |
'''getStatus.json:''' |
||
{ |
{ |
||
− | "username":" |
+ | "username":"APIuser", |
+ | "token":"CTMNzj**********CP", |
||
+ | "source":{ |
||
+ | "group_name": "Lingport", |
||
+ | "project_name": "CET-WorldWindExplorer", |
||
+ | "module_name": "lili" |
||
+ | } |
||
+ | } |
||
+ | |||
+ | = Command Center Translate = |
||
+ | The <code>translate</code> command triggers sending a new prep kit to translation if some strings need to be sent. Some projects may be 100% translated for instance, in which case nothing will be sent to translation. |
||
+ | |||
+ | curl "COMMAND_CENTER_URL/api/translate" -d '{"username":"API_USER","token":"API_TOKEN", "source":{"group_name": "GROUP","project_name": "PROJECT","module_name": "MODULE"}}' --header "Content-Type: application/json" |
||
+ | |||
+ | |||
+ | Example: |
||
+ | curl "http://localhost:8080/command-center/api/translate" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json" |
||
+ | |||
+ | or |
||
+ | curl "http://localhost:8080/command-center/api/translate" -d @'''translate.json''' --header "Content-Type: application/json" |
||
+ | |||
+ | '''translate.json:''' |
||
+ | { |
||
+ | "username":"APIuser", |
||
+ | "token":"CTMNzj**********CP", |
||
+ | "source":{ |
||
+ | "group_name": "Lingport", |
||
+ | "project_name": "CET-WorldWindExplorer", |
||
+ | "module_name": "lili" |
||
+ | } |
||
+ | } |
||
+ | |||
+ | = Pseudo-localize a Command Center Project = |
||
+ | For Localyzer project with a pseudo-locale configure, the <code>pseudoloc</code> command will create or update the pseudo-localized files from the source locale files and will update the repository with the latest. |
||
+ | |||
+ | |||
+ | curl "COMMAND_CENTER_URL/api/pseudoloc" -d '{"username":"API_USER","token":"API_TOKEN", "source":{"group_name": "GROUP","project_name": "PROJECT","module_name": "MODULE"}}' --header "Content-Type: application/json" |
||
+ | |||
+ | |||
+ | Example: |
||
+ | curl "http://localhost:8080/command-center/api/pseudoloc" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json" |
||
+ | |||
+ | or |
||
+ | curl "http://localhost:8080/command-center/api/pseudoloc" -d @'''project.json''' --header "Content-Type: application/json" |
||
+ | |||
+ | '''project.json:''' |
||
+ | { |
||
+ | "username":"APIuser", |
||
"token":"CTMNzj**********CP", |
"token":"CTMNzj**********CP", |
||
"source":{ |
"source":{ |
||
Line 42: | Line 95: | ||
= Duplicate Command Center project = |
= Duplicate Command Center project = |
||
+ | The <code>createFromTemplateProject</code> command duplicates an existing project with the same configuration as the source project, on a different repository or branch of a repository. The API user will also be set on that target project as it is part of the source project. |
||
curl "COMMAND_CENTER_URLapi/createFromTemplateProject" -d '{"username":"API_USER","token":"API_TOKEN","'''source'''": {"group_name": "source_group","project_name": "source_project","module_name": "source_module"},"'''target'''": {"group_name":"target_group","project_name": "target_project","module_name": "target_module"}}' --header "Content-Type: application/json" |
curl "COMMAND_CENTER_URLapi/createFromTemplateProject" -d '{"username":"API_USER","token":"API_TOKEN","'''source'''": {"group_name": "source_group","project_name": "source_project","module_name": "source_module"},"'''target'''": {"group_name":"target_group","project_name": "target_project","module_name": "target_module"}}' --header "Content-Type: application/json" |
||
Line 53: | Line 107: | ||
Example: |
Example: |
||
− | For a target repository name https://github.com/Lingoport/Command-Center, branch 'liliDev', with a template called Lingoport Command-Center |
+ | For a target repository name https://github.com/Lingoport/Command-Center, branch 'liliDev', with a template called '''Lingoport Command-Center dev''' in Command Center using https://github.com, the following call would be make: |
− | curl "http://localhost:8080/command-center/api/createFromTemplateProject" -d '{"username":" |
+ | curl "http://localhost:8080/command-center/api/createFromTemplateProject" -d '{"username":"APIuser","token":"CTMNzj**********CP","source": {"group_name": "Lingoport","project_name": "Command-Center","module_name": "dev"},"target": {"group_name":"Lingoport","project_name": "Command-Center","module_name": "liliDev"}}' --header "Content-Type: application/json" |
or |
or |
||
Line 63: | Line 117: | ||
'''dupProject.json''': |
'''dupProject.json''': |
||
{ |
{ |
||
− | "username":" |
+ | "username":"APIuser", |
"token":"CTMNzj**********CP", |
"token":"CTMNzj**********CP", |
||
"source":{ |
"source":{ |
||
"group_name": "Lingport", |
"group_name": "Lingport", |
||
− | "project_name": " |
+ | "project_name": "Command-Center", |
− | "module_name": " |
+ | "module_name": "dev" |
}, |
}, |
||
"target": { |
"target": { |
||
"group_name":"Lingoport", |
"group_name":"Lingoport", |
||
− | "project_name": " |
+ | "project_name": "Command-Center", |
− | "module_name": " |
+ | "module_name": "liliDev" |
} |
} |
||
} |
} |
||
The <code>dupProject.json</code> file can be used for all the commands. Only the required values will be used. |
The <code>dupProject.json</code> file can be used for all the commands. Only the required values will be used. |
||
+ | |||
+ | = List Command Center users = |
||
+ | |||
+ | The command below lists users by role. Roles are: |
||
+ | * administrator |
||
+ | * manager |
||
+ | * developer |
||
+ | * translator |
||
+ | * api |
||
+ | |||
+ | |||
+ | curl "COMMAND_CENTER_URL/api/listUsers" -d '{"role": "ROLE","username":"API_USER","token":"API_TOKEN"}' --header "Content-Type: application/json" -o users.json |
||
+ | |||
+ | Example: |
||
+ | curl "http://localhost:8080/command-center/api/listUsers" -d '{"role": "developer","username":"APIuser","token":"CTMNzj**********CP"}' --header "Content-Type: application/json" |
||
+ | |||
+ | or |
||
+ | curl "https://dockertest2.lingoport.io/command-center/api/listUsers" -d @'''listusers.json''' --header "Content-Type: application/json" |
||
+ | |||
+ | '''listusers.json''': |
||
+ | { |
||
+ | "role": "developer", |
||
+ | "username":"APIuser", |
||
+ | "token":"CTMNzj**********CP" |
||
+ | } |
||
+ | |||
+ | = Add Users to a Team = |
||
+ | |||
+ | The command below add users to a team, via their IDs. |
||
+ | |||
+ | curl "COMMAND_CENTER_URL/api/addUsersToTeam" -d '{"team": "TEAM","username":"API_USER","token":"API_TOKEN","userList":"COMMA SEPARATED LIST OF IDs"}' --header "Content-Type: application/json" -o users.json |
||
+ | |||
+ | Example: |
||
+ | curl "http://localhost:8080/command-center/api/addUsersToTeam" -d '{"team": "Dev","username":"APIuser","token":"CTMNzj**********CP", "userList":"4,5,7,19"}' --header "Content-Type: application/json" |
||
+ | |||
+ | or |
||
+ | curl "https://dockertest2.lingoport.io/command-center/api/addUsersToTeam" -d @'''userAssignment.json''' --header "Content-Type: application/json" |
||
+ | |||
+ | '''userAssignment.json''': |
||
+ | { |
||
+ | "team":"Dev", |
||
+ | "username":"APIuser", |
||
+ | "token":"9VwxxxxxxxxP14", |
||
+ | "userList": "4,16" |
||
+ | } |
||
+ | |||
+ | <b>Note:</b> Removing users from a team or managing users at large is better done via the Command Center user interface, not via an API call. |
Latest revision as of 17:50, 25 September 2024
Contents
Introduction
The API commands provide some high level information or actions for individual projects in Command Center. The usage scenario is to get basic information on a project, for instance from a CI/CD system, or to trigger some overall action at the project level or on users.
All API commands require a username and token to authenticate and authorize those calls. API Users are set in the Command Center User Settings panel, and can be added to the Access set of users for a project.
List Command Center projects
The listprojects
returns a list of projects associated with the username/token passed in the call. That list may hence not be exhaustive of all the projects on-boarded with Command Center.
curl "COMMAND_CENTER_URL/api/listprojects" -d '{"username":"API_USER","token":"API_TOKEN"}' --header "Content-Type: application/json"
Example:
curl "http://localhost:8080/command-center/api/listprojects" -d '{"username":"APIuser","token":"CTMNzj**********CP"}' --header "Content-Type: application/json"
or
curl "https://dockertest2.lingoport.io/command-center/api/listprojects" -d @listprojects.json --header "Content-Type: application/json"
listprojects.json: { "username":"APIuser", "token":"CTMNzj**********CP" }
Command Center Project Status
The getStatus
command provides a high level status on the Globalyzer and the Localyzer side of a given project.
curl "COMMAND_CENTER_URL/api/getStatus" -d '{"username":"API_USER","token":"API_TOKEN", "source":{"group_name": "GROUP","project_name": "PROJECT","module_name": "MODULE"}}' --header "Content-Type: application/json"
Example:
curl "http://localhost:8080/command-center/api/getStatus" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json"
or
curl "http://localhost:8080/command-center/api/getStatus" -d @getStatus.json --header "Content-Type: application/json"
getStatus.json: { "username":"APIuser", "token":"CTMNzj**********CP", "source":{ "group_name": "Lingport", "project_name": "CET-WorldWindExplorer", "module_name": "lili" } }
Command Center Translate
The translate
command triggers sending a new prep kit to translation if some strings need to be sent. Some projects may be 100% translated for instance, in which case nothing will be sent to translation.
curl "COMMAND_CENTER_URL/api/translate" -d '{"username":"API_USER","token":"API_TOKEN", "source":{"group_name": "GROUP","project_name": "PROJECT","module_name": "MODULE"}}' --header "Content-Type: application/json"
Example:
curl "http://localhost:8080/command-center/api/translate" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json"
or
curl "http://localhost:8080/command-center/api/translate" -d @translate.json --header "Content-Type: application/json"
translate.json: { "username":"APIuser", "token":"CTMNzj**********CP", "source":{ "group_name": "Lingport", "project_name": "CET-WorldWindExplorer", "module_name": "lili" } }
Pseudo-localize a Command Center Project
For Localyzer project with a pseudo-locale configure, the pseudoloc
command will create or update the pseudo-localized files from the source locale files and will update the repository with the latest.
curl "COMMAND_CENTER_URL/api/pseudoloc" -d '{"username":"API_USER","token":"API_TOKEN", "source":{"group_name": "GROUP","project_name": "PROJECT","module_name": "MODULE"}}' --header "Content-Type: application/json"
Example:
curl "http://localhost:8080/command-center/api/pseudoloc" -d '{"username":"APIuser","token":"CTMNzj**********CP", "source":{"group_name": "Lingoport","project_name": "CET-WorldWindExplorer","module_name": "lili"}}' --header "Content-Type: application/json"
or
curl "http://localhost:8080/command-center/api/pseudoloc" -d @project.json --header "Content-Type: application/json"
project.json: { "username":"APIuser", "token":"CTMNzj**********CP", "source":{ "group_name": "Lingport", "project_name": "CET-WorldWindExplorer", "module_name": "lili" } }
Duplicate Command Center project
The createFromTemplateProject
command duplicates an existing project with the same configuration as the source project, on a different repository or branch of a repository. The API user will also be set on that target project as it is part of the source project.
curl "COMMAND_CENTER_URLapi/createFromTemplateProject" -d '{"username":"API_USER","token":"API_TOKEN","source": {"group_name": "source_group","project_name": "source_project","module_name": "source_module"},"target": {"group_name":"target_group","project_name": "target_project","module_name": "target_module"}}' --header "Content-Type: application/json"
- For Git projects:
- The target group name is the name of the Git organization
- The target project name is the name of the Git project in that organization
- The target module name is the branch of the Git Project in the organization
Example:
For a target repository name https://github.com/Lingoport/Command-Center, branch 'liliDev', with a template called Lingoport Command-Center dev in Command Center using https://github.com, the following call would be make:
curl "http://localhost:8080/command-center/api/createFromTemplateProject" -d '{"username":"APIuser","token":"CTMNzj**********CP","source": {"group_name": "Lingoport","project_name": "Command-Center","module_name": "dev"},"target": {"group_name":"Lingoport","project_name": "Command-Center","module_name": "liliDev"}}' --header "Content-Type: application/json"
or
curl "COMMAND_CENTER_URLapi/createFromTemplateProject" -d @dupProject.json --header "Content-Type: application/json"
dupProject.json: { "username":"APIuser", "token":"CTMNzj**********CP", "source":{ "group_name": "Lingport", "project_name": "Command-Center", "module_name": "dev" }, "target": { "group_name":"Lingoport", "project_name": "Command-Center", "module_name": "liliDev" } }
The dupProject.json
file can be used for all the commands. Only the required values will be used.
List Command Center users
The command below lists users by role. Roles are:
- administrator
- manager
- developer
- translator
- api
curl "COMMAND_CENTER_URL/api/listUsers" -d '{"role": "ROLE","username":"API_USER","token":"API_TOKEN"}' --header "Content-Type: application/json" -o users.json
Example:
curl "http://localhost:8080/command-center/api/listUsers" -d '{"role": "developer","username":"APIuser","token":"CTMNzj**********CP"}' --header "Content-Type: application/json"
or
curl "https://dockertest2.lingoport.io/command-center/api/listUsers" -d @listusers.json --header "Content-Type: application/json"
listusers.json: { "role": "developer", "username":"APIuser", "token":"CTMNzj**********CP" }
Add Users to a Team
The command below add users to a team, via their IDs.
curl "COMMAND_CENTER_URL/api/addUsersToTeam" -d '{"team": "TEAM","username":"API_USER","token":"API_TOKEN","userList":"COMMA SEPARATED LIST OF IDs"}' --header "Content-Type: application/json" -o users.json
Example:
curl "http://localhost:8080/command-center/api/addUsersToTeam" -d '{"team": "Dev","username":"APIuser","token":"CTMNzj**********CP", "userList":"4,5,7,19"}' --header "Content-Type: application/json"
or
curl "https://dockertest2.lingoport.io/command-center/api/addUsersToTeam" -d @userAssignment.json --header "Content-Type: application/json"
userAssignment.json: { "team":"Dev", "username":"APIuser", "token":"9VwxxxxxxxxP14", "userList": "4,16" }
Note: Removing users from a team or managing users at large is better done via the Command Center user interface, not via an API call.