Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SoftwareAG/webmethods-io-integration-apicli
webMethods.io integration Public APIs CLI tool
https://github.com/SoftwareAG/webmethods-io-integration-apicli
webmethods webmethods-io-integration
Last synced: 4 days ago
JSON representation
webMethods.io integration Public APIs CLI tool
- Host: GitHub
- URL: https://github.com/SoftwareAG/webmethods-io-integration-apicli
- Owner: SoftwareAG
- License: apache-2.0
- Created: 2022-01-11T19:59:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-21T13:50:42.000Z (5 months ago)
- Last Synced: 2024-06-22T06:00:22.459Z (5 months ago)
- Topics: webmethods, webmethods-io-integration
- Language: JavaScript
- Homepage:
- Size: 293 KB
- Stars: 2
- Watchers: 5
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-softwareag - webmethods-io-integration-apicli - This is a Node CLI tool allowing you to utilize the webMethods.io Integration public APIs from a command line. (Integration & APIs / ![icon-webMethods io-Integration-64x64](https://user-images.githubusercontent.com/23717841/230610242-388570ae-f593-4d12-b4d8-c70579261a3e.png) webMethods.io Integration)
README
# About
This is a Node CLI tool allowing you to utilize the webMethods.io Integration public APIs from a command line.
This requires you to provide your tenant domain name, along with a user and password that has the appropriate permissions to call the API.
The --help parameter provides further information on how to use this along with some examples of its usage.This CLI tool has been tested against
* webMethods.io Integration v11.0.6# License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details
These tools are provided as-is and without warranty or support. They do not constitute part of the Software AG product suite. Users are free to use, fork and modify them, subject to the license agreement. While Software AG welcomes contributions, we cannot guarantee to include every contribution in the master project.Contact us via the TECHcommunity (https://techcommunity.softwareag.com/) if you have any questions.
# IMPORTANT
Due to a deprecated NPM library in a dependency of tough-cookie, if you're using a later version of node, you may see a deprecation notice for 'punycode'.
This has been resolved in tough-cookie but hasn't been released (only a release candidate is available). One this is released, this will be updated to resovle this.
In the meantime if you use this in scripts, you might want to suppress the deprecation notice as it may affect any parsing of results.To do this run the cli tool as folows:
```
node --no-deprecation wmiocli.js ....
```# Installation
```
git clone https://github.com/SoftwareAG/webmethods-io-integration-apicli.git
cd webmethods-io-integration-apicli
npm install
node wmiocli.js --help
```# Usage
```
──────────────────────────────────────────────────────────────────────────────┐
│ webMethods.io Integration API CLI tool │
│ This tool provides command line access to the webMethods.io Integration APIs │
│ Intended to aid usage within DevOps Scenarios for asset deployment │
└──────────────────────────────────────────────────────────────────────────────┘Usage: wmiocli [options] [command]
Options:
-V, --version output the version number
-d, --domain Tenant Doamin Name, e.g. "tenant.int-aws-us.webmethods.io"
-u, --user Tenant User ID
-p, --password Tenant User Password
-s, --start Index of where to start the return of data (default 0)
-l, --count Count of items to return (default 1000)
-t, --timeout timeout in seconds (default: one minute)
--prettyprint Pretty Print JSON output
--verbose Enables full debug mode (replaced by --loglevel DEBUG)
--loglevel Change the logging level of DEBUG, INFO,WARN,ERROR,OFF (default being off)
--proxy URL for proxy server if required
--caCert Path to a CACert PEM file if required
--ignoreTLSErrors Ignore TLS errors
--experimentalCommands Provide help information on experimental commands
-h, --help display help for commandCommands:
project [project-name] Lists all projects or view an individual project, specified via project name or uid
project-assets Lists project assets from given project name or uid
project-assets-detailed Lists project assets (All Details) from given project name or uid
project-create Create project with given name
project-update Update project with new name
project-delete Delete project with given id
project-publish Pubilsh project to another tenant with given id
project-deploy deploy published project with given version into tenant
project-param [param-uid] Lists all project parameters from given project name, or specific parameter with given parameter uid
project-param-create Creates a project parameter with given values
project-param-update Updates a project parameter matching the provided UID with given values
project-param-delete Deletes a project parameter mathcing the given paramater uid
project-webhooks-list List webhooks in a project
project-webhooks-regenerate Regenerate a webhook in a project for a given workflow UID
project-webhooks-auth Set authenatication type (none,login,token) for a webhook in a project for a given workflow UID
project-triggers-list Provide a list of triggers within a project
project-triggers-delete Delete a trigger within a project with the given IDs
project-ref-data [ref-data-name] lists/gets reference data in a project
project-ref-data-add [field-separator] [text-qualifier] [file-encoding] Adds reference data
project-ref-data-update [field-separator] [text-qualifier] [file-encoding] Updates reference data
project-ref-data-delete Updates reference data
project-export Exports a project
role [role-id] Lists all roles or views an individual role
role-create Create roles and specify the permissions for that role. Roles-list should be provided as follows projectName,r,w,e;project name
2,r;
role-update Create roles and specify the permissions for that role. Roles-list should be provided as follows projectName,r,w,e;project name
2,r;
role-delete Delete a roles with the given role id
user Lists all users
user-role-assignment Assigns a user to roles
workflow-export Export workflow with id from project
workflow-import Import workflow into project from file
workflow-delete Delete workflow from project
workflow-execute Execute workflow from project
workflow-status Gets Execution status for workflow execution
workflow-create Creates a blank workflow with the given name/description
flowservice-export Export FlowService with name from project
flowservice-import Import FlowService from into project
flowservice-delete Delete FlowService from project
flowservice-execute [input-json] Execute FlowService from project with data
theme [theme-uid] Lists themes or views an individual theme, specified via uid
theme-create [footer-text] [about-page] Create theme with given data
theme-update [footer-text] [about-page] Update theme with the given UID with given data
theme-delete Delete theme with the given UID
theme-activate Activate theme with the given UID
theme-deactivate Deactivate theme with the given UID
recipe [recipe-uid] List all Workflow recipes, or get a single recipe with a given recipe UID
recipe-delete Delete Workflow recipe with a given recipe UID
recipe-create Create Workflow Recipe from file
monitor [start-date] [end-date] [projects-list] [workflows-list] [execution-status] Get Monitor summary
monitor-workflow-log Get Monitor summary
idm-authtoken Get authtoken from IDM
idm-user Get User information direct from IDM
idm-user-search Searches user information from the IDM
idm-user-count [query] Counts users matching a provided query
idm-user-role-mappings Finds role mappings for given user
idm-roles Lists all assignable roles for the current environment
idm-user-create Creates a new user in the IDM
idm-user-delete Deletes a user
idm-user-unlock Unlocks a user
help [command] display help for commandExamples:
Help
Show the command line help:
$ node wmiocli.js --helpProjects
List projects in a tenant:
$ node wmiocli.js -d tenant.int-aws-us.webmethods.io -u user -p password projectView individual project using project ID (indentified from URL in webMethods.io when in a project, i.e. https://tenant.int-aws-us.webmethods.io/#/projects/fl65d3aa87fc1783ea5cf8c8/workflows):
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project fl65d3aa87fc1783ea5cf8c8View individual project with given project name:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project DefaultView Project assets from project with given name:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-assets DefaultView Project assets (All Details) from project with given name:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-assets-detailed DefaultUpdate Project name:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-update fl65d3aa87fc1783ea5cf8c8 "my New Name"Delete Project:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-delete fl65d3aa87fc1783ea5cf8c8Export Project:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-export fl65d3aa87fc1783ea5cf8c8 myproject.zipImport Project:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-export myproject.zip MyNewProjectNameGet Project Assets:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-assets fl65d3aa87fc1783ea5cf8c8Publish Project to another tenant:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-publish fl65d3aa87fc1783ea5cf8c8 'My deployment' 'target.int-aws-us.webmethods.io'
'targetuser' 'targetpassword'
'{"output":{"workflows":["fla73a20e13dd6736cf9c355","fl3cfd145262bbc5d44acff3"],
"flows":["mapLeads"],"rest_api":[],"soap_api":[],"listener":[],"messaging":[]}}'Deploy published Project in the tenant with the given name and deploy version:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-deploy projectName 1List Project Workflow Parameters or gets an individual where name is specified
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-param projectName [param-name]Create Project Workflow Parameter
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-param-create projectName param-name param-value required isPassworde.g. node wmiocli.js -d env -u user -p pass project-param-create project name dave false false
Update Project Workflow Parameter
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-param-update projectName param-uid param-name param-value required isPasswordDelete Project Workflow Parameter matching the provided parameter id
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-param-delete projectName param-uidProject webhooks List
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-webhooks-list [project-uid]Regenerate webhook token
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-webhooks-regenerate project-uid webhook-uidChange webhook Auth
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-webhooks-auth project-uid webhook-uid auth-typee.g.
node wmiocli.js -d env -u user -p pass project-webhooks-auth flf1111 flf2222 loginList triggers in project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-triggers-list project-uidDelete trigger in project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-triggers-delete project-uid trigger-uidList Reference Data List:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
referencedata project_name
e.g.
project-ref-data project-uidList Reference Data Get Item:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-ref-data project-uid ref-data-namee.g.
project-ref-data project-uid ref-data-name
project-ref-data project-uid ref-data-name json
project-ref-data project-uid ref-data-name csvAdd Reference Data:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-ref-data-add project-uid name description filepathe.g.
project-ref-data-add flf1111 reflookup description test.csvUpdate Reference Data:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
project-ref-data-add project-uid name description filepathe.g.
project-ref-data-update flf1111 reflookup description test.csvWorkflow
Export Workflow from a given project (identified from URL in webMethods.io when in workflow canvas,
i.e. https://tenant.int-aws-us.webmethods.io/#/projects/fl65d3aa87fc1783ea5cf8c8/workflows/fl52232a2dfafbd6536963d7/edit):
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-export fl65d3aa87fc1783ea5cf8c8 fl52232a2dfafbd6536963d7 export.zipImport Workflow from a given file into a project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-import fl65d3aa87fc1783ea5cf8c8 export.zipCreate a blank workflow
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-create fl65d3aa87fc1783ea5cf8c8 "name" "description"Delete Workflow from a given project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-delete fl65d3aa87fc1783ea5cf8c8 fl52232a2dfafbd6536963d7Execute a Workflow from a given project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-execute fl65d3aa87fc1783ea5cf8c8 fl52232a2dfafbd6536963d7Get Workflow execution status from a given project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
workflow-status fl65d3aa87fc1783ea5cf8c8 vbid3d247cd26aa5e19354e1fc6951766a3d19c049bee11dFlowService
Export FlowService from a given project (identified from URL in webMethods.io when in FlowEditor
i.e. https://tenant.int-aws-us.webmethods.io/#/projects/fl65d3aa87fc1783ea5cf8c8/flow-editor/myFlowService):
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
flowservice-export fl65d3aa87fc1783ea5cf8c8 myFlowService export.zipImport Flowservice from a given file into a project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
flowservice-import fl65d3aa87fc1783ea5cf8c8 export.zipDelete FlowService from a given project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
flowservice-delete fl65d3aa87fc1783ea5cf8c8 myFlowServiceExecute a FlowService from a given project
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
flowservice-execute fl65d3aa87fc1783ea5cf8c8 myFlowServiceRoles
Get roles list or individual role
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
role [role-name]Creates a role
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
role-create 'rolename' 'role description' 'project 1 name,r,w,e;project 2 name,r;'Updates a role with a provided Id
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
role-update 'roleId' 'rolename' 'role description' 'project 1 name,r,w,e;project 2 name,r;'Delete a role with a provided Id
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
role-delete 'roleId'Recipes
Get recipe list or individual recipe
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
recipe [recipe-Uid]Creates a Workflow recipe from a workflow export
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
recipe-create export-flf111111.zipDeletes a Workflow recipe with the provided UID
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
recipe-delete fl1771d591cfb4f31e558dafThemes
Lists whitelabel themes
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme [theme-uid]The theme settings returned can be use as a way to create the theme.
You can use jq to retrieve the theme settings by piping the output to jq, e.g.node wmiocli.js -d env -u user -p pass theme fl40018d9a1a273bb8aa92bf | jq -c .output.settings.theme > ~/dracula-theme.txt
Deletes a whitelabel theme
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme-delete [theme-uid]Creates a new whitelabel theme
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme-create dracula 'desc' [theme-settings] "Footer Text" "About Page"Theme settings can be used from the list example above, e.g.
node wmiocli.js -d env -u user -p pass theme-create dracula7 'updated' "`cat ~/dracula-theme.txt`" 'Footer' 'About'Updates a whitelabel theme
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme-update themeid dracula 'desc' [theme-settings] "Footer Text" "About Page"Theme settings can be used from the list example above, e.g.
node wmiocli.js -d env -u user -p pass theme-update themeid dracula7 'updated' "`cat ~/dracula-theme.txt`" 'Footer' 'About'Activates a whitelabel theme
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme-activate [theme-uid]Deactivates a whitelabel theme
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
theme-deactivate [theme-uid]Monitor
Retrieve Monitor Summary:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
monitor from count startDate endDate projectsList workflowsList executionStatus
e.g.
monitor 1 10 2023-01-01 2023-01-10 myProject workflow1,workflow2 failed,timeout,stopped
monitor 11 10 2023-01-01 2023-01-10 myProject workflow1,workflow2 failed,timeout,stopped
monitorView an Execution Log:
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
monitor-workflow-log billUidwebMethods Cloud IDM
Provides an IDM authtoken for subsequent calls
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-authtokenGets an IDM users details
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-userFinds users that match the search criteria
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-search
where product is one of: apigateway, apiportal, webmethodsioint, b2b,
cumulocity, cloudcontainer, devportal, mft, metering, wmapps
e.g.
idm-user-search Dave true webmethodsiointCounts users that match the search criteria
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-count
where query can be a partial username, e.g.
idm-user-count daveLists environment available roles
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-rolesGets user role mappings for the given userid
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-role-mappings
where userid is the unique ID returned from the idm-user callCreates a user
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-createDeletes a user
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-delete
where userid is the unique ID returned from the idm-user callUnlocks a user
$ node wmiocli.js
-d tenant.int-aws-us.webmethods.io
-u user
-p password
idm-user-unlock
where userid is the unique ID returned from the idm-user call
```