diff --git a/build/doctrees/environment.pickle b/build/doctrees/environment.pickle index 49e704f..7d04d23 100644 Binary files a/build/doctrees/environment.pickle and b/build/doctrees/environment.pickle differ diff --git a/build/doctrees/usermanual/index.doctree b/build/doctrees/usermanual/index.doctree index 370000e..a4ae1f3 100644 Binary files a/build/doctrees/usermanual/index.doctree and b/build/doctrees/usermanual/index.doctree differ diff --git a/build/html/_sources/usermanual/index.rst.txt b/build/html/_sources/usermanual/index.rst.txt index a838bf5..86306c5 100644 --- a/build/html/_sources/usermanual/index.rst.txt +++ b/build/html/_sources/usermanual/index.rst.txt @@ -334,6 +334,20 @@ As an example the following Python code shows how to use the variables to reques # List VRE fodler content vrefolder = requests.get(workspace + "/vrefolder", headers={"Accept" : "application/json", "Authorization" : "Bearer " + tok}).json() +An similar example in bash could have the following form: + +.. code-block:: bash + :caption: How to download a file from the D4Science workspace from a private URL passed as input parameter + + echo "Getting token" + TOKEN=$(curl -X POST $ccpiamurl -d grant_type=refresh_token -d client_id=$ccpclientid -d refresh_token=$ccprefreshtoken -H "X-D4Science-Context: $ccpcontext" | jq -r '."access_token"') + + echo Downloading $1 to $2 + curl -L $wslink -o $inputfile -H "Authorization: Bearer $TOKEN" + + echo "Downloaded" + + A special folder is provided in the Runtime to a Method execution for storing output files. Files are currently the only way for a Method to output results by value. The folder is named **/ccp_data** and all the files written to this folder are returned in the context of the Execution as a zip archive. Executions diff --git a/build/html/searchindex.js b/build/html/searchindex.js index d2edfb8..a64306b 100644 --- a/build/html/searchindex.js +++ b/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["developermanual/index", "index", "introduction", "usermanual/index"], "filenames": ["developermanual/index.rst", "index.rst", "introduction.rst", "usermanual/index.rst"], "titles": ["Developer manual", "Welcome to CCP\u2019s documentation!", "Introduction", "User manual"], "terms": {"introduct": 1, "about": [1, 3], "architectur": 1, "user": [1, 2], "manual": 1, "infrastructur": [1, 2], "runtim": [1, 2], "method": [1, 2], "execut": [1, 2], "ui": 1, "widget": 1, "rest": [1, 2], "api": [1, 2], "interact": [1, 2], "programmat": 1, "index": [1, 3], "modul": [1, 3], "search": [1, 3], "page": 1, "cloud": [2, 3], "comput": [2, 3], "platform": [2, 3], "ccp": [2, 3], "i": [2, 3], "type": [2, 3], "servic": [2, 3], "offer": 2, "demand": 2, "scalabl": 2, "avail": [2, 3], "resourc": [2, 3], "server": 2, "storag": 2, "softwar": 2, "over": 2, "internet": 2, "It": [2, 3], "elimin": 2, "need": [2, 3], "manag": [2, 3], "own": 2, "physic": 2, "while": [2, 3], "being": 2, "abl": [2, 3], "reexecut": 2, "demonstr": 2, "share": [2, 3], "procedur": [2, 3], "algorithm": [2, 3], "comupt": 2, "result": [2, 3], "scientif": [2, 3], "commun": 2, "independ": 2, "technolog": [2, 3], "implement": [2, 3], "detail": 2, "ha": [2, 3], "mani": [2, 3], "benefit": 2, "faster": 2, "time": [2, 3], "scienc": 2, "allow": [2, 3], "develop": [2, 3], "acceler": 2, "quick": 2, "deploy": 2, "flexibl": 2, "give": 2, "more": 2, "adjust": 2, "accord": 2, "better": [2, 3], "collabor": 2, "enabl": 2, "team": 2, "work": [2, 3], "togeth": 2, "from": [2, 3], "anywher": 2, "an": 2, "connect": 2, "access": [2, 3], "same": [2, 3], "data": [2, 3], "applic": [2, 3], "product": 2, "focu": 2, "core": [2, 3], "function": [2, 3], "innov": 2, "without": 2, "worri": 2, "underli": 2, "mainten": 2, "perform": [2, 3], "deliv": 2, "high": 2, "speed": 2, "reliabl": 2, "minim": [2, 3], "downtim": 2, "latenc": 2, "disast": 2, "recoveri": 2, "restor": 2, "quickli": 2, "easili": 2, "event": 2, "crisi": 2, "competit": 2, "most": [2, 3], "cut": 2, "edg": 2, "technologi": [2, 3], "help": [2, 3], "them": [2, 3], "stai": 2, "ahead": 2, "market": 2, "trend": 2, "built": [2, 3], "upon": 2, "experi": 2, "previou": [2, 3], "datamin": 2, "initi": 2, "http": [2, 3], "en": 2, "wikipedia": 2, "org": [2, 3], "wiki": 2, "d4scienc": [2, 3], "us": [2, 3], "novel": 2, "approach": 2, "base": [2, 3], "container": 2, "json": [2, 3], "sever": [2, 3], "field": [2, 3], "ict": 2, "have": 2, "experienc": 2, "major": 2, "evolut": [2, 3], "dure": [2, 3], "last": [2, 3], "decad": 2, "new": [2, 3], "advanc": 2, "widespread": 2, "adopt": 2, "microservic": 2, "pattern": 2, "thi": [2, 3], "substanti": 2, "improv": 2, "term": 2, "interoper": 2, "compos": 2, "artefact": 2, "The": [2, 3], "vast": 2, "landscap": 2, "opportun": 2, "addit": [2, 3], "greatli": 2, "increas": 2, "requir": [2, 3], "expect": [2, 3], "been": [2, 3], "driver": 2, "design": [2, 3], "repres": [2, 3], "global": [2, 3], "rethink": 2, "miner": 2, "A": [2, 3], "logic": [2, 3], "vision": 2, "architecutr": 2, "depict": [2, 3], "follow": [2, 3], "figur": [2, 3], "In": [2, 3], "layer": 2, "set": [2, 3], "compon": [2, 3], "start": [2, 3], "bottom": 2, "encompass": 2, "hardwar": 2, "virtual": [2, 3], "machin": 2, "contain": [2, 3], "cluster": [2, 3], "facil": 2, "network": 2, "prebuilt": 2, "preconfigur": 2, "environ": [2, 3], "imag": [2, 3], "specif": [2, 3], "can": [2, 3], "anyth": 2, "social": 2, "mine": 2, "ai": [2, 3], "classifi": [2, 3], "harvest": 2, "scientist": [2, 3], "skill": 2, "ar": [2, 3], "encourag": 2, "clone": [2, 3], "exist": 2, "ones": [2, 3], "respons": [2, 3], "choos": [2, 3], "compat": [2, 3], "propos": [2, 3], "integr": [2, 3], "tool": [2, 3], "research": 2, "made": [2, 3], "overal": 2, "workbench": [2, 3], "which": [2, 3], "abstract": 2, "overarch": 2, "directli": [2, 3], "workflow": 2, "visual": [2, 3], "jupyt": [2, 3], "notebook": [2, 3], "r": [2, 3], "script": [2, 3], "knime": 2, "experiment": 2, "defin": [2, 3], "activ": 2, "configur": [2, 3], "opposit": 2, "direct": [2, 3], "consolid": 2, "possibl": [2, 3], "transform": [2, 3], "dynam": 2, "object": 2, "static": 2, "order": [2, 3], "reusabl": 2, "portabl": 2, "For": [2, 3], "instanc": [2, 3], "combin": [2, 3], "could": [2, 3], "themselv": 2, "even": 2, "present": [2, 3], "9": 2, "show": [2, 3], "nativ": 2, "distribut": 2, "natur": 2, "top": [2, 3], "host": 2, "e": 2, "simpl": 2, "laptop": 2, "up": [2, 3], "instal": [2, 3], "control": [2, 3], "within": 2, "node": 2, "like": [2, 3], "thei": [2, 3], "deleg": 2, "process": [2, 3], "through": [2, 3], "poll": [2, 3], "task": [2, 3], "mai": 2, "includ": [2, 3], "deploi": [2, 3], "run": [2, 3], "clean": [2, 3], "report": [2, 3], "statu": [2, 3], "keep": 2, "current": [2, 3], "state": [2, 3], "coupl": 2, "registri": [2, 3], "involv": 2, "driven": 2, "frontend": 2, "those": 2, "identifi": [2, 3], "icon": 2, "becaus": [2, 3], "oper": [2, 3], "lengthi": 2, "asynchron": [2, 3], "log": 2, "send": [2, 3], "back": 2, "realtim": 2, "notif": 2, "particular": [2, 3], "These": 2, "advertis": 2, "updat": 2, "error": [2, 3], "condit": 2, "all": [2, 3], "complex": 2, "insid": [2, 3], "orchestr": 2, "grant": [2, 3], "level": 2, "customis": [2, 3], "centralis": 2, "endpoint": [2, 3], "monitor": 2, "progress": 2, "check": 2, "occur": [2, 3], "At": [2, 3], "basi": 2, "among": 2, "extern": 2, "actor": 2, "strong": 2, "authent": [2, 3], "authoris": 2, "mechan": 2, "enforc": 2, "ident": [2, 3], "iam": [2, 3], "address": 2, "secur": [2, 3], "well": [2, 3], "ownership": 2, "attribut": [2, 3], "audit": 2, "document": 3, "featur": 3, "want": 3, "whom": 3, "uniqu": 3, "id": 3, "name": 3, "descript": 3, "also": 3, "encapsul": 3, "containeris": 3, "support": 3, "singl": 3, "docker": 3, "swarm": 3, "lxd": 3, "responis": 3, "decid": 3, "what": 3, "restrict": 3, "select": 3, "seen": 3, "system": 3, "depend": 3, "strictli": 3, "relat": 3, "exampl": 3, "numer": 3, "recip": 3, "gather": 3, "gener": 3, "chart": 3, "whatev": 3, "produc": 3, "valuabl": 3, "reproduc": 3, "repeat": 3, "written": 3, "tri": 3, "lax": 3, "respect": 3, "technic": 3, "constraint": 3, "aim": 3, "everi": 3, "languag": 3, "reason": 3, "provid": 3, "stack": 3, "readi": 3, "solut": 3, "simultan": 3, "open": 3, "its": 3, "heart": 3, "structur": 3, "aggreg": 3, "section": 3, "metadata": 3, "definit": 3, "input": 3, "paramet": 3, "output": 3, "instruct": 3, "step": 3, "link": 3, "syntax": 3, "constrain": 3, "grammar": 3, "ogc": 3, "ogcapi": 3, "code": 3, "snippet": 3, "illustr": 3, "408d9dc5": 3, "ee37": 3, "4123": 3, "9f07": 3, "4294f13bce19": 3, "titl": 3, "jdk": 3, "8": 3, "maven": 3, "test": 3, "jdk8": 3, "sampl": 3, "app": 3, "github": 3, "repositori": 3, "version": 3, "0": 3, "1": 3, "jobcontrolopt": 3, "async": 3, "keyword": 3, "java": 3, "java8": 3, "marco": 3, "letter": 3, "role": 3, "author": 3, "href": 3, "account": 3, "dev": 3, "auth": 3, "admin": 3, "realm": 3, "88c76e47": 3, "5881": 3, "4716": 3, "a2bf": 3, "02d3b4073574": 3, "categori": 3, "2fgcube": 3, "2fdevsec": 3, "2fccp": 3, "client": 3, "outputtransmiss": 3, "valu": 3, "ccpimag": 3, "protocol": 3, "minoccur": 3, "maxoccur": 3, "schema": 3, "string": 3, "format": 3, "url": 3, "contentmediatyp": 3, "text": 3, "plain": 3, "default": 3, "nubiswar": 3, "jammi": 3, "latest": 3, "readonli": 3, "true": 3, "git": 3, "com": 3, "dcore94": 3, "mainclass": 3, "main": 3, "class": 3, "helloworld": 3, "filetext": 3, "some": 3, "txt": 3, "file": 3, "filexml": 3, "xml": 3, "ccp_data": 3, "filejson": 3, "filecsv": 3, "csv": 3, "additionalparamet": 3, "cd": 3, "mkdir": 3, "p": 3, "cp": 3, "target": 3, "snapshot": 3, "jar": 3, "stdout": 3, "2": 3, "stderr": 3, "tmp": 3, "mvn": 3, "packag": 3, "undeploi": 3, "cancel": 3, "nf": 3, "rel": 3, "compatiblewith": 3, "nubi": 3, "root": 3, "public": 3, "reposiotri": 3, "creat": 3, "descriptor": 3, "item": 3, "hardocd": 3, "alwai": 3, "wai": 3, "abov": 3, "three": 3, "appear": 3, "exactli": 3, "onc": 3, "refer": 3, "match": 3, "sinc": 3, "versiontag": 3, "edit": 3, "project": 3, "declar": 3, "four": 3, "encod": 3, "As": 3, "shown": 3, "later": 3, "return": 3, "onli": 3, "wht": 3, "mainli": 3, "semant": 3, "enrich": 3, "govern": 3, "": 3, "describ": 3, "take": 3, "care": 3, "pass": 3, "folder": 3, "build": 3, "launch": 3, "final": 3, "copi": 3, "directori": 3, "actual": 3, "reli": 3, "fact": 3, "intrins": 3, "import": 3, "note": 3, "variabl": 3, "put": 3, "doubl": 3, "curli": 3, "bracket": 3, "There": 3, "other": 3, "use": 3, "discuss": 3, "happen": 3, "when": 3, "request": 3, "either": 3, "interfac": 3, "gui": 3, "invok": 3, "messag": 3, "carri": 3, "sent": 3, "first": 3, "phase": 3, "prepar": 3, "On": 3, "usual": 3, "resolv": 3, "fetch": 3, "reposiori": 3, "instantiati": 3, "after": 3, "transit": 3, "outcom": 3, "evalu": 3, "case": 3, "termin": 3, "destroi": 3, "thu": 3, "ensur": 3, "success": 3, "move": 3, "decor": 3, "mean": 3, "command": 3, "suppli": 3, "creator": 3, "fine": 3, "grain": 3, "pip": 3, "download": 3, "enter": 3, "determin": 3, "invoc": 3, "spent": 3, "limit": 3, "maximum": 3, "amount": 3, "If": 3, "futher": 3, "ccpmaxtim": 3, "non": 3, "scriptabl": 3, "charg": 3, "upload": 3, "thought": [], "cleanup": [], "autonoum": 3, "end": 3, "instead": [], "extra": [], "notifi": [], "where": 3, "liter": 3, "inform": 3, "contextu": 3, "templat": 3, "var": 3, "environment": 3, "varibal": 3, "proper": 3, "program": 3, "adapt": 3, "commandlin": 3, "argument": 3, "write": 3, "few": 3, "itself": 3, "rather": 3, "than": 3, "alreadi": 3, "told": 3, "automat": 3, "instanti": 3, "ccpnote": 3, "special": 3, "tag": 3, "feedback": 3, "express": 3, "second": 3, "cap": 3, "ccpreplica": 3, "multipl": 3, "obtain": 3, "coars": 3, "degre": 3, "parallel": 3, "two": 3, "ccptasknam": 3, "ccptaskid": 3, "replica": 3, "behavior": 3, "slice": 3, "dataset": 3, "differ": 3, "conveni": 3, "veri": 3, "long": 3, "how": 3, "separ": 3, "echo": 3, "random": 3, "printenv": 3, "ccpiamurl": 3, "ccpclientid": 3, "client_id": 3, "token": 3, "renew": 3, "ccprefreshtoken": 3, "refresh": 3, "ccpcontext": 3, "vo": 3, "vre": 3, "python": 3, "login": 3, "uma": 3, "get": 3, "info": 3, "env": 3, "refreshtoken": 3, "o": 3, "clientid": 3, "logindata": 3, "grant_typ": 3, "refresh_token": 3, "loginhead": 3, "accept": 3, "content": 3, "x": 3, "www": 3, "urlencod": 3, "umadata": 3, "urn": 3, "ietf": 3, "param": 3, "oauth": 3, "ticket": 3, "audienc": 3, "umahead": 3, "def": 3, "gettoken": 3, "offline_token": 3, "resp1": 3, "post": 3, "header": 3, "jwt": 3, "bearer": 3, "access_token": 3, "resp2": 3, "valid": 3, "tok": 3, "fodler": 3, "vrefold": 3, "workspac": 3, "store": 3, "zip": 3, "archiv": 3, "instati": 3, "dedic": 3, "soon": 3, "act": 3, "collect": 3, "export": 3, "re": 3, "call": 3, "datastructur": 3, "meant": 3, "atom": 3, "explic": 3, "represent": 3, "plai": 3, "ordder": 3, "kept": 3, "sort": 3, "short": 3, "live": 3, "area": 3, "resid": 3, "close": 3, "delet": 3, "offlin": 3, "worksapc": 3, "brows": 3, "compress": 3, "binari": 3, "reimport": 3, "beither": 3, "sharabl": 3, "graphic": 3, "browser": 3, "representant": 3, "given": 3, "he": 3, "she": 3, "owner": 3, "compris": 3, "toolbar": 3, "organ": 3, "line": 3, "3": 3, "whole": 3, "see": 3, "4": 3, "infrastrucur": 3, "known": 3, "per": 3, "tollbar": 3, "5": 3, "6": 3, "past": 3, "shareabl": 3, "click": 3, "button": 3, "7": 3, "save": 3, "clear": 3, "cardin": 3, "shortcut": 3, "ad": 3, "one": 3, "standard": 3, "chnannel": 3, "member": 3, "label": 3, "princip": 3, "try": 3, "trigger": 3, "grow": 3, "futur": 3, "number": 3, "fail": 3, "expand": 3, "action": 3, "proven": 3, "prov": 3, "drag": 3, "drop": 3, "onto": 3, "onn": 3, "By": 3, "previous": 3, "local": 3, "exect": 3, "via": 3, "job": 3, "infrom": 3, "jobstatu": 3, "geospati": 3, "consortium": 3, "consid": 3, "modern": 3, "rework": 3, "former": 3, "wp": 3, "spcific": 3, "openapi": 3, "element": 3, "stub": 3, "librari": 3, "httr": 3, "jsonlit": 3, "rstudioapi": 3, "init": 3, "usrnam": 3, "auth_ep": 3, "authep": 3, "aclietnid": 3, "ccp_ep": 3, "ccpep": 3, "bodi": 3, "password": 3, "usernam": 3, "pwd": 3, "c": 3, "add_head": 3, "fromjson": 3, "sep": 3, "bash": 3, "transmissionmod": 3, "raw": 3, "askforpassword": 3, "methodid": 3, "status_cod": 3, "201": 3, "els": 3, "stop": 3, "unabl": 3, "jobid": 3, "print": 3, "sy": 3, "sleep": 3, "200": 3, "401": 3, "write_disk": 3, "overwrit": 3, "fals": 3, "deriv": 3, "julia": 3, "navig": 3, "parametr": 3, "submit": 3, "exatli": 3, "swaggerhub": 3}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"develop": 0, "manual": [0, 3], "welcom": 1, "ccp": 1, "": 1, "document": 1, "content": 1, "indic": 1, "tabl": 1, "introduct": 2, "about": 2, "architectur": 2, "user": 3, "infrastructur": 3, "runtim": 3, "method": 3, "anatomi": 3, "lifecycl": 3, "execut": 3, "context": 3, "an": 3, "storag": 3, "ui": 3, "widget": 3, "list": 3, "editor": 3, "form": 3, "monitor": 3, "rest": 3, "api": 3, "interact": 3, "programmat": 3}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Developer manual": [[0, "developer-manual"]], "Introduction": [[2, "introduction"]], "About": [[2, "about"]], "Architecture": [[2, "architecture"]], "Welcome to CCP\u2019s documentation!": [[1, "welcome-to-ccp-s-documentation"]], "Contents:": [[1, null]], "Indices and tables": [[1, "indices-and-tables"]], "User manual": [[3, "user-manual"]], "Infrastructures": [[3, "infrastructures"]], "Runtimes": [[3, "runtimes"]], "Methods": [[3, "methods"]], "Anatomy of a Method": [[3, "anatomy-of-a-method"]], "Lifecycle of a Method execution": [[3, "lifecycle-of-a-method-execution"]], "Execution context of a Method": [[3, "execution-context-of-a-method"]], "Executions": [[3, "executions"]], "Anatomy of an Execution": [[3, "anatomy-of-an-execution"]], "Method and Execution storage": [[3, "method-and-execution-storage"]], "UI Widgets": [[3, "ui-widgets"]], "Method list": [[3, "method-list"]], "Method editor": [[3, "method-editor"]], "Method execution form": [[3, "method-execution-form"]], "Execution monitor": [[3, "execution-monitor"]], "REST APIs: Interacting with Methods and Executions programmatically": [[3, "rest-apis-interacting-with-methods-and-executions-programmatically"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["developermanual/index", "index", "introduction", "usermanual/index"], "filenames": ["developermanual/index.rst", "index.rst", "introduction.rst", "usermanual/index.rst"], "titles": ["Developer manual", "Welcome to CCP\u2019s documentation!", "Introduction", "User manual"], "terms": {"introduct": 1, "about": [1, 3], "architectur": 1, "user": [1, 2], "manual": 1, "infrastructur": [1, 2], "runtim": [1, 2], "method": [1, 2], "execut": [1, 2], "ui": 1, "widget": 1, "rest": [1, 2], "api": [1, 2], "interact": [1, 2], "programmat": 1, "index": [1, 3], "modul": [1, 3], "search": [1, 3], "page": 1, "cloud": [2, 3], "comput": [2, 3], "platform": [2, 3], "ccp": [2, 3], "i": [2, 3], "type": [2, 3], "servic": [2, 3], "offer": 2, "demand": 2, "scalabl": 2, "avail": [2, 3], "resourc": [2, 3], "server": 2, "storag": 2, "softwar": 2, "over": 2, "internet": 2, "It": [2, 3], "elimin": 2, "need": [2, 3], "manag": [2, 3], "own": 2, "physic": 2, "while": [2, 3], "being": 2, "abl": [2, 3], "reexecut": 2, "demonstr": 2, "share": [2, 3], "procedur": [2, 3], "algorithm": [2, 3], "comupt": 2, "result": [2, 3], "scientif": [2, 3], "commun": 2, "independ": 2, "technolog": [2, 3], "implement": [2, 3], "detail": 2, "ha": [2, 3], "mani": [2, 3], "benefit": 2, "faster": 2, "time": [2, 3], "scienc": 2, "allow": [2, 3], "develop": [2, 3], "acceler": 2, "quick": 2, "deploy": 2, "flexibl": 2, "give": 2, "more": 2, "adjust": 2, "accord": 2, "better": [2, 3], "collabor": 2, "enabl": 2, "team": 2, "work": [2, 3], "togeth": 2, "from": [2, 3], "anywher": 2, "an": 2, "connect": 2, "access": [2, 3], "same": [2, 3], "data": [2, 3], "applic": [2, 3], "product": 2, "focu": 2, "core": [2, 3], "function": [2, 3], "innov": 2, "without": 2, "worri": 2, "underli": 2, "mainten": 2, "perform": [2, 3], "deliv": 2, "high": 2, "speed": 2, "reliabl": 2, "minim": [2, 3], "downtim": 2, "latenc": 2, "disast": 2, "recoveri": 2, "restor": 2, "quickli": 2, "easili": 2, "event": 2, "crisi": 2, "competit": 2, "most": [2, 3], "cut": 2, "edg": 2, "technologi": [2, 3], "help": [2, 3], "them": [2, 3], "stai": 2, "ahead": 2, "market": 2, "trend": 2, "built": [2, 3], "upon": 2, "experi": 2, "previou": [2, 3], "datamin": 2, "initi": 2, "http": [2, 3], "en": 2, "wikipedia": 2, "org": [2, 3], "wiki": 2, "d4scienc": [2, 3], "us": [2, 3], "novel": 2, "approach": 2, "base": [2, 3], "container": 2, "json": [2, 3], "sever": [2, 3], "field": [2, 3], "ict": 2, "have": [2, 3], "experienc": 2, "major": 2, "evolut": [2, 3], "dure": [2, 3], "last": [2, 3], "decad": 2, "new": [2, 3], "advanc": 2, "widespread": 2, "adopt": 2, "microservic": 2, "pattern": 2, "thi": [2, 3], "substanti": 2, "improv": 2, "term": 2, "interoper": 2, "compos": 2, "artefact": 2, "The": [2, 3], "vast": 2, "landscap": 2, "opportun": 2, "addit": [2, 3], "greatli": 2, "increas": 2, "requir": [2, 3], "expect": [2, 3], "been": [2, 3], "driver": 2, "design": [2, 3], "repres": [2, 3], "global": [2, 3], "rethink": 2, "miner": 2, "A": [2, 3], "logic": [2, 3], "vision": 2, "architecutr": 2, "depict": [2, 3], "follow": [2, 3], "figur": [2, 3], "In": [2, 3], "layer": 2, "set": [2, 3], "compon": [2, 3], "start": [2, 3], "bottom": 2, "encompass": 2, "hardwar": 2, "virtual": [2, 3], "machin": 2, "contain": [2, 3], "cluster": [2, 3], "facil": 2, "network": 2, "prebuilt": 2, "preconfigur": 2, "environ": [2, 3], "imag": [2, 3], "specif": [2, 3], "can": [2, 3], "anyth": 2, "social": 2, "mine": 2, "ai": [2, 3], "classifi": [2, 3], "harvest": 2, "scientist": [2, 3], "skill": 2, "ar": [2, 3], "encourag": 2, "clone": [2, 3], "exist": 2, "ones": [2, 3], "respons": [2, 3], "choos": [2, 3], "compat": [2, 3], "propos": [2, 3], "integr": [2, 3], "tool": [2, 3], "research": 2, "made": [2, 3], "overal": 2, "workbench": [2, 3], "which": [2, 3], "abstract": 2, "overarch": 2, "directli": [2, 3], "workflow": 2, "visual": [2, 3], "jupyt": [2, 3], "notebook": [2, 3], "r": [2, 3], "script": [2, 3], "knime": 2, "experiment": 2, "defin": [2, 3], "activ": 2, "configur": [2, 3], "opposit": 2, "direct": [2, 3], "consolid": 2, "possibl": [2, 3], "transform": [2, 3], "dynam": 2, "object": 2, "static": 2, "order": [2, 3], "reusabl": 2, "portabl": 2, "For": [2, 3], "instanc": [2, 3], "combin": [2, 3], "could": [2, 3], "themselv": 2, "even": 2, "present": [2, 3], "9": 2, "show": [2, 3], "nativ": 2, "distribut": 2, "natur": 2, "top": [2, 3], "host": 2, "e": 2, "simpl": 2, "laptop": 2, "up": [2, 3], "instal": [2, 3], "control": [2, 3], "within": 2, "node": 2, "like": [2, 3], "thei": [2, 3], "deleg": 2, "process": [2, 3], "through": [2, 3], "poll": [2, 3], "task": [2, 3], "mai": 2, "includ": [2, 3], "deploi": [2, 3], "run": [2, 3], "clean": [2, 3], "report": [2, 3], "statu": [2, 3], "keep": 2, "current": [2, 3], "state": [2, 3], "coupl": 2, "registri": [2, 3], "involv": 2, "driven": 2, "frontend": 2, "those": 2, "identifi": [2, 3], "icon": 2, "becaus": [2, 3], "oper": [2, 3], "lengthi": 2, "asynchron": [2, 3], "log": 2, "send": [2, 3], "back": 2, "realtim": 2, "notif": 2, "particular": [2, 3], "These": 2, "advertis": 2, "updat": 2, "error": [2, 3], "condit": 2, "all": [2, 3], "complex": 2, "insid": [2, 3], "orchestr": 2, "grant": [2, 3], "level": 2, "customis": [2, 3], "centralis": 2, "endpoint": [2, 3], "monitor": 2, "progress": 2, "check": 2, "occur": [2, 3], "At": [2, 3], "basi": 2, "among": 2, "extern": 2, "actor": 2, "strong": 2, "authent": [2, 3], "authoris": 2, "mechan": 2, "enforc": 2, "ident": [2, 3], "iam": [2, 3], "address": 2, "secur": [2, 3], "well": [2, 3], "ownership": 2, "attribut": [2, 3], "audit": 2, "document": 3, "featur": 3, "want": 3, "whom": 3, "uniqu": 3, "id": 3, "name": 3, "descript": 3, "also": 3, "encapsul": 3, "containeris": 3, "support": 3, "singl": 3, "docker": 3, "swarm": 3, "lxd": 3, "responis": 3, "decid": 3, "what": 3, "restrict": 3, "select": 3, "seen": 3, "system": 3, "depend": 3, "strictli": 3, "relat": 3, "exampl": 3, "numer": 3, "recip": 3, "gather": 3, "gener": 3, "chart": 3, "whatev": 3, "produc": 3, "valuabl": 3, "reproduc": 3, "repeat": 3, "written": 3, "tri": 3, "lax": 3, "respect": 3, "technic": 3, "constraint": 3, "aim": 3, "everi": 3, "languag": 3, "reason": 3, "provid": 3, "stack": 3, "readi": 3, "solut": 3, "simultan": 3, "open": 3, "its": 3, "heart": 3, "structur": 3, "aggreg": 3, "section": 3, "metadata": 3, "definit": 3, "input": 3, "paramet": 3, "output": 3, "instruct": 3, "step": 3, "link": 3, "syntax": 3, "constrain": 3, "grammar": 3, "ogc": 3, "ogcapi": 3, "code": 3, "snippet": 3, "illustr": 3, "408d9dc5": 3, "ee37": 3, "4123": 3, "9f07": 3, "4294f13bce19": 3, "titl": 3, "jdk": 3, "8": 3, "maven": 3, "test": 3, "jdk8": 3, "sampl": 3, "app": 3, "github": 3, "repositori": 3, "version": 3, "0": 3, "1": 3, "jobcontrolopt": 3, "async": 3, "keyword": 3, "java": 3, "java8": 3, "marco": 3, "letter": 3, "role": 3, "author": 3, "href": 3, "account": 3, "dev": 3, "auth": 3, "admin": 3, "realm": 3, "88c76e47": 3, "5881": 3, "4716": 3, "a2bf": 3, "02d3b4073574": 3, "categori": 3, "2fgcube": 3, "2fdevsec": 3, "2fccp": 3, "client": 3, "outputtransmiss": 3, "valu": 3, "ccpimag": 3, "protocol": 3, "minoccur": 3, "maxoccur": 3, "schema": 3, "string": 3, "format": 3, "url": 3, "contentmediatyp": 3, "text": 3, "plain": 3, "default": 3, "nubiswar": 3, "jammi": 3, "latest": 3, "readonli": 3, "true": 3, "git": 3, "com": 3, "dcore94": 3, "mainclass": 3, "main": 3, "class": 3, "helloworld": 3, "filetext": 3, "some": 3, "txt": 3, "file": 3, "filexml": 3, "xml": 3, "ccp_data": 3, "filejson": 3, "filecsv": 3, "csv": 3, "additionalparamet": 3, "cd": 3, "mkdir": 3, "p": 3, "cp": 3, "target": 3, "snapshot": 3, "jar": 3, "stdout": 3, "2": 3, "stderr": 3, "tmp": 3, "mvn": 3, "packag": 3, "undeploi": 3, "cancel": 3, "nf": 3, "rel": 3, "compatiblewith": 3, "nubi": 3, "root": 3, "public": 3, "reposiotri": 3, "creat": 3, "descriptor": 3, "item": 3, "hardocd": 3, "alwai": 3, "wai": 3, "abov": 3, "three": 3, "appear": 3, "exactli": 3, "onc": 3, "refer": 3, "match": 3, "sinc": 3, "versiontag": 3, "edit": 3, "project": 3, "declar": 3, "four": 3, "encod": 3, "As": 3, "shown": 3, "later": 3, "return": 3, "onli": 3, "wht": 3, "mainli": 3, "semant": 3, "enrich": 3, "govern": 3, "": 3, "describ": 3, "take": 3, "care": 3, "pass": 3, "folder": 3, "build": 3, "launch": 3, "final": 3, "copi": 3, "directori": 3, "actual": 3, "reli": 3, "fact": 3, "intrins": 3, "import": 3, "note": 3, "variabl": 3, "put": 3, "doubl": 3, "curli": 3, "bracket": 3, "There": 3, "other": 3, "use": 3, "discuss": 3, "happen": 3, "when": 3, "request": 3, "either": 3, "interfac": 3, "gui": 3, "invok": 3, "messag": 3, "carri": 3, "sent": 3, "first": 3, "phase": 3, "prepar": 3, "On": 3, "usual": 3, "resolv": 3, "fetch": 3, "reposiori": 3, "instantiati": 3, "after": 3, "transit": 3, "outcom": 3, "evalu": 3, "case": 3, "termin": 3, "destroi": 3, "thu": 3, "ensur": 3, "success": 3, "move": 3, "decor": 3, "mean": 3, "command": 3, "suppli": 3, "creator": 3, "fine": 3, "grain": 3, "pip": 3, "download": 3, "enter": 3, "determin": 3, "invoc": 3, "spent": 3, "limit": 3, "maximum": 3, "amount": 3, "If": 3, "futher": 3, "ccpmaxtim": 3, "non": 3, "scriptabl": 3, "charg": 3, "upload": 3, "thought": [], "cleanup": [], "autonoum": 3, "end": 3, "instead": [], "extra": [], "notifi": [], "where": 3, "liter": 3, "inform": 3, "contextu": 3, "templat": 3, "var": 3, "environment": 3, "varibal": 3, "proper": 3, "program": 3, "adapt": 3, "commandlin": 3, "argument": 3, "write": 3, "few": 3, "itself": 3, "rather": 3, "than": 3, "alreadi": 3, "told": 3, "automat": 3, "instanti": 3, "ccpnote": 3, "special": 3, "tag": 3, "feedback": 3, "express": 3, "second": 3, "cap": 3, "ccpreplica": 3, "multipl": 3, "obtain": 3, "coars": 3, "degre": 3, "parallel": 3, "two": 3, "ccptasknam": 3, "ccptaskid": 3, "replica": 3, "behavior": 3, "slice": 3, "dataset": 3, "differ": 3, "conveni": 3, "veri": 3, "long": 3, "how": 3, "separ": 3, "echo": 3, "random": 3, "printenv": 3, "ccpiamurl": 3, "ccpclientid": 3, "client_id": 3, "token": 3, "renew": 3, "ccprefreshtoken": 3, "refresh": 3, "ccpcontext": 3, "vo": 3, "vre": 3, "python": 3, "login": 3, "uma": 3, "get": 3, "info": 3, "env": 3, "refreshtoken": 3, "o": 3, "clientid": 3, "logindata": 3, "grant_typ": 3, "refresh_token": 3, "loginhead": 3, "accept": 3, "content": 3, "x": 3, "www": 3, "urlencod": 3, "umadata": 3, "urn": 3, "ietf": 3, "param": 3, "oauth": 3, "ticket": 3, "audienc": 3, "umahead": 3, "def": 3, "gettoken": 3, "offline_token": 3, "resp1": 3, "post": 3, "header": 3, "jwt": 3, "bearer": 3, "access_token": 3, "resp2": 3, "valid": 3, "tok": 3, "fodler": 3, "vrefold": 3, "workspac": 3, "store": 3, "zip": 3, "archiv": 3, "instati": 3, "dedic": 3, "soon": 3, "act": 3, "collect": 3, "export": 3, "re": 3, "call": 3, "datastructur": 3, "meant": 3, "atom": 3, "explic": 3, "represent": 3, "plai": 3, "ordder": 3, "kept": 3, "sort": 3, "short": 3, "live": 3, "area": 3, "resid": 3, "close": 3, "delet": 3, "offlin": 3, "worksapc": 3, "brows": 3, "compress": 3, "binari": 3, "reimport": 3, "beither": 3, "sharabl": 3, "graphic": 3, "browser": 3, "representant": 3, "given": 3, "he": 3, "she": 3, "owner": 3, "compris": 3, "toolbar": 3, "organ": 3, "line": 3, "3": 3, "whole": 3, "see": 3, "4": 3, "infrastrucur": 3, "known": 3, "per": 3, "tollbar": 3, "5": 3, "6": 3, "past": 3, "shareabl": 3, "click": 3, "button": 3, "7": 3, "save": 3, "clear": 3, "cardin": 3, "shortcut": 3, "ad": 3, "one": 3, "standard": 3, "chnannel": 3, "member": 3, "label": 3, "princip": 3, "try": 3, "trigger": 3, "grow": 3, "futur": 3, "number": 3, "fail": 3, "expand": 3, "action": 3, "proven": 3, "prov": 3, "drag": 3, "drop": 3, "onto": 3, "onn": 3, "By": 3, "previous": 3, "local": 3, "exect": 3, "via": 3, "job": 3, "infrom": 3, "jobstatu": 3, "geospati": 3, "consortium": 3, "consid": 3, "modern": 3, "rework": 3, "former": 3, "wp": 3, "spcific": 3, "openapi": 3, "element": 3, "stub": 3, "librari": 3, "httr": 3, "jsonlit": 3, "rstudioapi": 3, "init": 3, "usrnam": 3, "auth_ep": 3, "authep": 3, "aclietnid": 3, "ccp_ep": 3, "ccpep": 3, "bodi": 3, "password": 3, "usernam": 3, "pwd": 3, "c": 3, "add_head": 3, "fromjson": 3, "sep": 3, "bash": 3, "transmissionmod": 3, "raw": 3, "askforpassword": 3, "methodid": 3, "status_cod": 3, "201": 3, "els": 3, "stop": 3, "unabl": 3, "jobid": 3, "print": 3, "sy": 3, "sleep": 3, "200": 3, "401": 3, "write_disk": 3, "overwrit": 3, "fals": 3, "deriv": 3, "julia": 3, "navig": 3, "parametr": 3, "submit": 3, "exatli": 3, "swaggerhub": 3, "similar": 3, "privat": 3, "curl": 3, "d": 3, "h": 3, "jq": 3, "l": 3, "wslink": 3, "inputfil": 3}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"develop": 0, "manual": [0, 3], "welcom": 1, "ccp": 1, "": 1, "document": 1, "content": 1, "indic": 1, "tabl": 1, "introduct": 2, "about": 2, "architectur": 2, "user": 3, "infrastructur": 3, "runtim": 3, "method": 3, "anatomi": 3, "lifecycl": 3, "execut": 3, "context": 3, "an": 3, "storag": 3, "ui": 3, "widget": 3, "list": 3, "editor": 3, "form": 3, "monitor": 3, "rest": 3, "api": 3, "interact": 3, "programmat": 3}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Developer manual": [[0, "developer-manual"]], "Introduction": [[2, "introduction"]], "About": [[2, "about"]], "Architecture": [[2, "architecture"]], "Welcome to CCP\u2019s documentation!": [[1, "welcome-to-ccp-s-documentation"]], "Contents:": [[1, null]], "Indices and tables": [[1, "indices-and-tables"]], "User manual": [[3, "user-manual"]], "Infrastructures": [[3, "infrastructures"]], "Runtimes": [[3, "runtimes"]], "Methods": [[3, "methods"]], "Anatomy of a Method": [[3, "anatomy-of-a-method"]], "Lifecycle of a Method execution": [[3, "lifecycle-of-a-method-execution"]], "Execution context of a Method": [[3, "execution-context-of-a-method"]], "Executions": [[3, "executions"]], "Anatomy of an Execution": [[3, "anatomy-of-an-execution"]], "Method and Execution storage": [[3, "method-and-execution-storage"]], "UI Widgets": [[3, "ui-widgets"]], "Method list": [[3, "method-list"]], "Method editor": [[3, "method-editor"]], "Method execution form": [[3, "method-execution-form"]], "Execution monitor": [[3, "execution-monitor"]], "REST APIs: Interacting with Methods and Executions programmatically": [[3, "rest-apis-interacting-with-methods-and-executions-programmatically"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/build/html/usermanual/index.html b/build/html/usermanual/index.html index 86b7929..ba4533b 100644 --- a/build/html/usermanual/index.html +++ b/build/html/usermanual/index.html @@ -398,6 +398,19 @@ The technology and the list of available Runtimes is strictly related to type of +

An similar example in bash could have the following form:

+
+
How to download a file from the D4Science workspace from a private URL passed as input parameter
+
 echo "Getting token"
+ TOKEN=$(curl -X POST $ccpiamurl -d grant_type=refresh_token -d client_id=$ccpclientid -d refresh_token=$ccprefreshtoken -H "X-D4Science-Context: $ccpcontext" | jq -r '."access_token"')
+
+ echo Downloading $1 to $2
+ curl -L $wslink -o $inputfile -H "Authorization: Bearer $TOKEN"
+
+ echo "Downloaded"
+
+
+

A special folder is provided in the Runtime to a Method execution for storing output files. Files are currently the only way for a Method to output results by value. The folder is named /ccp_data and all the files written to this folder are returned in the context of the Execution as a zip archive.

@@ -445,10 +458,10 @@ The following is a representation of the data structure representing an Executio

Method list

The Method list widget is a visual representantion of the list of Methods that a user is able to access in a given context either because he/she is the owner or because they are shared in the context.

The following Figure shows an example visualization of the Method list.

-
+
Method list widget
-

Method list widget

+

Method list widget

The Method list widget is comprised of a toolbar, a search field and the list of Methods. The Methods are organized by categories as shown in [1]. For every Method the title, version, author and description are reported in the first two lines [2]. As additional information tags and compatible Infrastructure are shown [3]. There is the possibility to download a Method or a whole class and to see how many of the shown Methods are executable [4]. Methods can be not executable if their compatible Infrastrucure is not known or available. A per MEthod tollbar [5] allows to download, edit or execute a Method for. From the global toolbar it is possible to refresh the list or upload a Method from a file [6] and also to reimport an archived Method from the workspace by copying and pasting the shareable link into the proper field and clicking on the button [7].

@@ -457,10 +470,10 @@ The following is a representation of the data structure representing an Executio

Method editor

The Method editor widget is a visual tool for creating, deleting, editing, cloning or deriving a Method descriptor.

The following Figure shows an example visualization of the Method editor.

-
+
Method editor widget
-

Method editor widget

+

Method editor widget

From the global toolbar [1] it is possible to save the edited Method or delete it or clear all the form fields. The metadata area [2] contains the controls to define all the metadata of a Method including title, version, description, tags, categories. It is also possible to choose a compatible Infrastructure from the available ones. In the input definition area [3] the user can define all the input parameters with their type, format, encoding, cardinality and default values. In the output definition area [4] the user can define all the output files that can be expected from an Execution with their type, format, encoding and cardinality. Shortcuts are added to define with one click the standard output and error chnannels of a Method. In the scripting area [5] the deploy, execute and undeploy script can be defined.

@@ -470,10 +483,10 @@ The following is a representation of the data structure representing an Executio

Method execution form

The Method execution form widget is a visual tool for requesting the execution of a Method.

The following Figure shows an example visualization of the Method execution form.

-
+
Method execution form
-

Method execution form

+

Method execution form

In the area labelled with [1], the principal metadata of the Method is shown. In the Inputs area [2] it is possible to edit the input values that are passed to the Execution. The input fields try to match as close as possible the constraints defined for the input in the Method descriptor. The execute button [4] triggers the sending of the execution request. A code generator widget [5] can be used in order to download code snippets that act as working examples for requesting the Execution programmatically through the CCP APIs (see REST APIs: Interacting with Methods and Executions programmatically). Currently Python 3, R, Jupyter Notebook and Julia are supported but the list will grow in the future.

@@ -483,10 +496,10 @@ The following is a representation of the data structure representing an Executio

Execution monitor

The Execution Monitor widget is a visual tool for monitoring Executions.

The following Figure shows an example visualization of the Execution monitor.

-
+
Execution monitor
-

Execution monitor

+

Execution monitor

The list of Executions are organized by their Method names [1]. For every Method the number of executions in the different states (‘accepted’, ‘running’, ‘successful’, ‘failed’) is reported. When expanding a Method the list of all Executions is shown [2]. Every list item reports information about the Method version, the status, timing, Infrastructure and Runtime of the Execution. When outputs are available a link to download them is shown [3]. Actions that can be performed on an Execution [5] are download as zip archive, archive to workspace, download provenance descriptor in Prov-O format, re-execute and delete. An Execution item can also be drag and dropped onto the Execution form widget in order to prepare a request for a new onne. Code for programmatically requesting the same Execution can be generated with a proper code generation widget [6]. Currently Python 3, R, Julia and Jupyter Notebooks are currently supported.

@@ -502,8 +515,8 @@ The REST API is Processes 1.2 described at (https://app.swaggerhub.com/apis/OGC/ogcapi-processes-1-example-1/1.0.0).

Through the code generation widgets available in the UI elements described above, it is possible to obtain stubs that show how to interact programmatically with CCP in order to request a Method execution or re-execution and to monitor the evolution.

The following is an example code stub generated for the R programming language.

-
-
Example code for requesting a Method execution on CCP
+
+
Example code for requesting a Method execution on CCP
 # Dependencies
  library(httr)
  library(jsonlite)
diff --git a/source/usermanual/index.rst b/source/usermanual/index.rst
index a838bf5..86306c5 100644
--- a/source/usermanual/index.rst
+++ b/source/usermanual/index.rst
@@ -334,6 +334,20 @@ As an example the following Python code shows how to use the variables to reques
     # List VRE fodler content
     vrefolder = requests.get(workspace + "/vrefolder", headers={"Accept" : "application/json", "Authorization" : "Bearer " + tok}).json()
 
+An similar example in bash could have the following form:
+
+.. code-block:: bash
+   :caption: How to download a file from the D4Science workspace from a private URL passed as input parameter
+    
+    echo "Getting token"
+    TOKEN=$(curl -X POST $ccpiamurl -d grant_type=refresh_token -d client_id=$ccpclientid -d refresh_token=$ccprefreshtoken -H "X-D4Science-Context: $ccpcontext" | jq -r '."access_token"')
+
+    echo Downloading $1 to $2
+    curl -L $wslink -o $inputfile -H "Authorization: Bearer $TOKEN"
+
+    echo "Downloaded"
+
+
 A special folder is provided in the Runtime to a Method execution for storing output files. Files are currently the only way for a Method to output results by value. The folder is named **/ccp_data** and all the files written to this folder are returned in the context of the Execution as a zip archive.
 
 Executions