{"id":31766090,"url":"https://github.com/ibmdecisionoptimization/docplexcloud-nodejs-api","last_synced_at":"2025-10-10T00:29:17.351Z","repository":{"id":57141361,"uuid":"67219337","full_name":"IBMDecisionOptimization/DOcplexcloud-NodeJS-api","owner":"IBMDecisionOptimization","description":"NodeJS Client for IBM Decision Optimization on Cloud (DOcplexcloud)","archived":false,"fork":false,"pushed_at":"2017-04-04T01:26:10.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-10-04T12:41:38.602Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/docplexcloud-nodejs-api","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IBMDecisionOptimization.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-02T12:05:43.000Z","updated_at":"2019-02-14T23:43:51.000Z","dependencies_parsed_at":"2022-09-05T18:31:45.673Z","dependency_job_id":null,"html_url":"https://github.com/IBMDecisionOptimization/DOcplexcloud-NodeJS-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IBMDecisionOptimization/DOcplexcloud-NodeJS-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBMDecisionOptimization%2FDOcplexcloud-NodeJS-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBMDecisionOptimization%2FDOcplexcloud-NodeJS-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBMDecisionOptimization%2FDOcplexcloud-NodeJS-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBMDecisionOptimization%2FDOcplexcloud-NodeJS-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IBMDecisionOptimization","download_url":"https://codeload.github.com/IBMDecisionOptimization/DOcplexcloud-NodeJS-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBMDecisionOptimization%2FDOcplexcloud-NodeJS-api/sbom","scorecard":{"id":64490,"data":{"date":"2025-08-11","repo":{"name":"github.com/IBMDecisionOptimization/DOcplexcloud-NodeJS-api","commit":"b4e56c85c3539971f1d85877445c5db07e4d1628"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Code-Review","score":0,"reason":"Found 1/19 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T02:19:16.779Z","repository_id":57141361,"created_at":"2025-08-15T02:19:16.779Z","updated_at":"2025-08-15T02:19:16.779Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002359,"owners_count":26083356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-10T00:28:58.445Z","updated_at":"2025-10-10T00:29:17.342Z","avatar_url":"https://github.com/IBMDecisionOptimization.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notice\n\n\n[IBM Decision Optimization on Cloud](http://www.ibm.com/software/analytics/docloud/) (or DOcplexcloud) is a service that lets you solve CPLEX, CP Optimizer, and OPL problems on the Cloud. You can access the interactive service called DropSolve or you can use use the API to integrate the service into your application. Here is a quick [introduction](http://developer.ibm.com/docloud/documentation/decision-optimization-on-cloud/). This module provides a wrapper over the REST API using Promises.\n\nExample\n-------\n\nIn this following example, we submit an OPL project made of several files. The `execute` function takes an object to configure how the job will\nbe created and monitored. This object provides the client with the list of attachments to create (`attachments` property) and where to get their streams. It also \nindicates if the live log must be streamed (`logstream` property) and to which stream. Additional parameters can be declared as well (`parameters` property).\nThe `execute` function creates the job, uploads the attachments, and monitors the execution asynchronously. It fires events when the job is created, processed, interrupted, failed, or if an error occurs. \n\n```\nvar docplexcloud = require('docplexcloud-nodejs-api');\nvar fs = require('fs');\nvar client = docplexcloud({\nurl : process.env.URL,\nclientId : process.env.KEY\n})\n\nclient.execute({\nlogstream : process.stdout,\nparameters : { \"oaas.TIME_LIMIT\" : 3*60*1000},\nattachments : [\n{name : '.oplproject', \nstream : fs.createReadStream('test/warehouse-location/.oplproject')},\n{name : 'warehouse_cloud.dat', \nstream : fs.createReadStream('test/warehouse-location/warehouse_cloud.dat')},\n{name : 'warehouse_cloud.mod', \nstream : fs.createReadStream('test/warehouse-location/warehouse_cloud.mod')},\n{name : 'warehouse_data.mod', \nstream : fs.createReadStream('test/warehouse-location/warehouse_data.mod')},\n]})\n.on('created', function(jobid){console.log(jobid+\" created\")})\n.on('processed', function(jobid){\nconsole.log(jobid+\" processed\");\nclient.downloadAttachment(jobid,'solution.json',fs.createWriteStream('test/warehouse-location/solution.json'))\n.then(function () {return client.downloadLog(jobid,fs.createWriteStream('test/warehouse-location/solution.log'))})\n})\n.on('interrupted', function(jobid){console.log(\"job was interrupted\")})\n.on('failed', function(jobid){console.log(\"job failed\")})\n.on('error', function(error){console.log(error)})\n\n```\n\nBasic API\n---------\n\nThe basic API is a simple wrapper of the DOcplexcloud REST API returning Promises. It can be used to perform simple actions and chain them using promises. To know more about the different actions, parameters, and returned information, you can refer to the REST API [documentation](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/).\n\n```\nclient.listJobs()\n```\nReturns the list of jobs.  \n**See:** [GET /jobs](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/getJobs)\n\n```\nclient.deleteJobs()\n```\nDeletes all the jobs.  \n**See:** [DELETE /jobs](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/deleteJobs)\n\n```\nclient.createJob(data)\n```\nCreates a new job.  \n**Parameter:** `data` the creation parameters.  \n**See:** [POST /jobs](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/createJob)\n\n```\nclient.getJob(jobid)\n```\nReturns a job.  \n**Parameter:** `jobid` the job id.  \n**See:** [GET /jobs/{id}](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/getJob)\n\n```\nclient.deleteJob(jobid)\n```\nDeletes a job.  \n**Parameter:** `jobid` the job id.  \n**See:** [DELETE /jobs/{id}](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/deleteJob)\n\n```\nclient.executeJob(jobid)\n```\nExecutes a job.  \n**Parameter:** `jobid` the job id.  \n**See:** [POST /jobs/{id}/execute](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/startJob)\n\n```\nclient.getJobExecutionStatus(jobid)\n```\nReturns the job execution status.  \n**Parameter:** `jobid` the job id.  \n**See:** [GET /jobs/{id}/execute](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/getJobStatus)\n\n```\nclient.abortJob(jobid, kill)\n```\nAborts a job. \n**Parameter:** `jobid` the job id.  \n**Parameter:** `kill` sets the abort mode to kill.  \n**See:** [DELETE /jobs/{id}/execute](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/abortJob)\n\n```\nclient.uploadAttachment(jobid, attid, stream)\n```\nUpload an attachment; the attachment will be compressed automatically.  \n**Parameter:** `jobid` the job id.  \n**Parameter:** `attid` the attachment name.  \n**Parameter:** `stream` the stream to read from.  \n**See:** [PUT /jobs/{id}/attachments/{attid}/blob](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/uploadJobAttachment)\n\n```\nclient.downloadAttachment(jobid, attid, stream)\n```\nDownload an attachment.  \n**Parameter:** `jobid` the job id.  \n**Parameter:** `attid` the attachment name.  \n**Parameter:** `stream` the stream to write to.  \n**See:** [GET /jobs/{id}/attachments/{attid}/blob](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/downloadJobAttachment)\n\n``` \nclient.getLogItems(jobid,start,continuous) \n```\nReturns the log items.  \n**Parameter:** `jobid` the job id.  \n**Parameter:** `start` the starting index.  \n**Parameter:** `continuous` continuous mode indicator.  \n**See:** [GET /jobs/{id}/log/items](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/getJobLogItems)\n\n```\nclient.downloadLog(jobid, stream)\n```\nDownload the log.  \n**Parameter:** `jobid` the job id.  \n**Parameter:** `stream` the stream to write to.  \n**Parameter:** [GET /jobs/{id}/log/blob](https://api-swagger-oaas.docloud.ibmcloud.com/api_swagger/#!/jobs/downloadLog)\n\nEvent API\n---------\n\nThe event API lets you submit and monitor your jobs in a very simple way.  \n\n```\nclient.execute(data)\n```\nSubmits and monitors a job execution.  \n**Parameter:** `data` the data containing attachments, parameters.  \n**Returns:** the event emitter to attach event callbacks.  \n\n```\nclient.submit(data)\n```\nSubmits but does not monitor the job.  \n**Parameter:** `data` the data containing attachments, parameters.  \n**Returns:** the event emitter to attach event callbacks.  \n\n```\nclient.create(data)\n```\nCreates the job, but does not submit or monitor it.  \n**Parameter:** `data` the data containing attachments, parameters.  \n**Returns:** the event emitter to attach event callbacks (error and created only).  \n\n\nStatus\n------\nUnder development, module API can change without notice.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibmdecisionoptimization%2Fdocplexcloud-nodejs-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibmdecisionoptimization%2Fdocplexcloud-nodejs-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibmdecisionoptimization%2Fdocplexcloud-nodejs-api/lists"}