-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution:
Fixed
-
Affects Version/s:
CSD2
-
-
-
-
Proposal:
Hide
The current <Interfaces> element requires a reshape and extensions. A reshape is required to achieve
consistency with the usual practice that "coherent entities" have a single interface only, (ii) to allow implementation artifacts not only for operations, and (iii) to rename some language elements to comply with common terminology. Extensions are required to better support REST APIs as interface implementations.
Show
The current <Interfaces> element requires a reshape and extensions. A reshape is required to achieve consistency with the usual practice that "coherent entities" have a single interface only, (ii) to allow implementation artifacts not only for operations, and (iii) to rename some language elements to comply with common terminology. Extensions are required to better support REST APIs as interface implementations.
-
Resolution:
Show
http://www.oasis-open.org/apps/org/workgroup/tosca/download.php/45532/TOSCA-v1.0-wd04.zip accepted by TC.
We propose to drop the <Interfaces> element of node types and support (at most) a single <Interface> for a <NodeType> element. This interface will consist of one of more operations. The implication is that the current <Operation> element must be renamed to better reflect its purpose; because its purpose is to define scripts as operations of node types, we propose to rename todays <Operation> into <ScriptOperation>. As a result of the renaming, an <Interface> consists of <Operation>s that may be either an operation of a port type (i.e. a WSDL operation), a REST API, or a script operation.
The current <REST> element does not suffice to support the variety of REST APIs found in the industry. The proposal is to extend the current definition accordingly. Beside allowing to define the HTTP method to be used, both, abs_path and absolte_URI variants of request URIs must be supported. The optional body of the request message and the response message must be specifiable. Next, a pure URI variant of passing parameters must be supported, i.e. the new syntax must support to define a URI query string. Also, key HTTP header fields that are relevant for the request must be specifiable.
Finally, not only script-based operations require implementation artifacts. For example, a REST API may be represented by a WAR file implementing the REST API. This implies to factor out the corresponding <ImplementationArtifacts> element into the embracing (new) <Operation> element.
{"report":{"apdex":1,"isInitial":true,"journeyId":"b02cdfdd-0ba0-4ef7-93ae-a4349782a6d1","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":834.0999999046326,"redirectCount":0,"resourceLoadedEnd":966.5,"resourceLoadedStart":233.59999990463257,"resourceTiming":[{"duration":239.19999980926514,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":233.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":233.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":472.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":239.2999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":233.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":233.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":473.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":239.2000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":234.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":234.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":473.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":239.7999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":234.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":234.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":474.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":239.80000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":234.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":234.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":474.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":248.80000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":234.7999997138977,"connectEnd":234.7999997138977,"connectStart":234.7999997138977,"domainLookupEnd":234.7999997138977,"domainLookupStart":234.7999997138977,"fetchStart":234.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":234.7999997138977,"responseEnd":483.59999990463257,"responseStart":483.59999990463257,"secureConnectionStart":234.7999997138977},{"duration":295.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":235.40000009536743,"connectEnd":235.40000009536743,"connectStart":235.40000009536743,"domainLookupEnd":235.40000009536743,"domainLookupStart":235.40000009536743,"fetchStart":235.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":235.40000009536743,"responseEnd":530.9000000953674,"responseStart":530.9000000953674,"secureConnectionStart":235.40000009536743},{"duration":299.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":235.59999990463257,"connectEnd":235.59999990463257,"connectStart":235.59999990463257,"domainLookupEnd":235.59999990463257,"domainLookupStart":235.59999990463257,"fetchStart":235.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":235.59999990463257,"responseEnd":534.7999997138977,"responseStart":534.7999997138977,"secureConnectionStart":235.59999990463257},{"duration":313.2000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":235.7999997138977,"connectEnd":235.7999997138977,"connectStart":235.7999997138977,"domainLookupEnd":235.7999997138977,"domainLookupStart":235.7999997138977,"fetchStart":235.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":235.7999997138977,"responseEnd":549,"responseStart":549,"secureConnectionStart":235.7999997138977},{"duration":317.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":236,"connectEnd":236,"connectStart":236,"domainLookupEnd":236,"domainLookupStart":236,"fetchStart":236,"redirectEnd":0,"redirectStart":0,"requestStart":236,"responseEnd":553.4000000953674,"responseStart":553.4000000953674,"secureConnectionStart":236},{"duration":318,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":236.09999990463257,"connectEnd":236.09999990463257,"connectStart":236.09999990463257,"domainLookupEnd":236.09999990463257,"domainLookupStart":236.09999990463257,"fetchStart":236.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":236.09999990463257,"responseEnd":554.0999999046326,"responseStart":554.0999999046326,"secureConnectionStart":236.09999990463257},{"duration":393.7999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":236.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":236.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":630.1999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":318.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":236.5,"connectEnd":236.5,"connectStart":236.5,"domainLookupEnd":236.5,"domainLookupStart":236.5,"fetchStart":236.5,"redirectEnd":0,"redirectStart":0,"requestStart":236.5,"responseEnd":554.5999999046326,"responseStart":554.5999999046326,"secureConnectionStart":236.5},{"duration":355.8999996185303,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":274.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":274.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":630.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":282.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":274.59999990463257,"connectEnd":274.59999990463257,"connectStart":274.59999990463257,"domainLookupEnd":274.59999990463257,"domainLookupStart":274.59999990463257,"fetchStart":274.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":274.59999990463257,"responseEnd":556.6999998092651,"responseStart":556.6999998092651,"secureConnectionStart":274.59999990463257},{"duration":514.6999998092651,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":284.5,"connectEnd":284.5,"connectStart":284.5,"domainLookupEnd":284.5,"domainLookupStart":284.5,"fetchStart":284.5,"redirectEnd":0,"redirectStart":0,"requestStart":284.5,"responseEnd":799.1999998092651,"responseStart":799.1999998092651,"secureConnectionStart":284.5}],"threshold":1000,"fetchStart":0,"domainLookupStart":124,"domainLookupEnd":124,"connectStart":124,"connectEnd":174,"secureConnectionStart":149,"requestStart":174,"responseStart":225,"responseEnd":306,"domLoading":228,"domInteractive":992,"domContentLoadedEventStart":992,"domContentLoadedEventEnd":1049,"domComplete":1397,"loadEventStart":1397,"loadEventEnd":1401,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"34cdfd938cd4e6","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":106,"dbReadsTimeInMs":15,"dbConnsTimeInMs":21,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
I added a revision of the proposal for resolving issue
TOSCA-4: http://www.oasis-open.org/apps/org/workgroup/tosca/download.php/45499/latestThis revision changed the syntax of the <Interface> element to reflect the requirement for:
multiple interfaces of a node type,
(ii) naming interfaces,
(iii) specifying dependencies of an implementation artifact.
Also, the corresponding text explaining the syntax has been changes and further extended.
List item (iii) is new and has not been discussed in the TC. Its justification is as follows: an operation that is supposed to hide environment dependencies must be able to
either declare its assumption about the TOSCA container environment it is running in, or (ii) to discover the capabilities of this environment. An example of such a dependency is the interface available in the environment to handle images.
Alternative
is reflected in the proposed syntax: the implementation artifact simply lists a set of URIs that declare these dependencies. A TOSCA environment (knowing its capabilities) can then select during binding of a plan the matching implementation artifact for a task in a plan.
Alternative (ii) would require a to define and standardize a corresponding API that would have to be supported by TOSCA environments. Furthermore, the need to use this API would make writing operations a bit more cumbersome, or might even require to change existing implementations of operations. Thus, alternative
is considered to be preferable.