Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

TODO: Can we defer the convenience function for loading a specific code version?

Web Services

These manipulation only the metadata, stored in Synapse.
Note: It is assumed that code versions are represented by refererences.

Create Code

Code Block

POST https://repo-staging.sagebase.org/repo/v1/code
{"parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"}

Note: "parentId" is the ID of a Synapse Project; "codeRepoId" is the ID of a Code Repository object.

Successful Response:

Code Block

HTTP/1.1 201 Created
{"id":"8901", "parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"}

Get Code

Code Block

GET https://repo-staging.sagebase.org/repo/v1/code/8901

Successful Response:

Code Block

HTTP/1.1 200 OK
{"id":"8901", "parentId":"1234", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"}

Update Code

Code Block

PUT https://repo-staging.sagebase.org/repo/v1/code/8901
{"id":"8901", "parentId":"5432", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"}

Successful Response:

Code Block

HTTP/1.1 200 OK
{"id":"8901", "parentId":"5432", "codeRepoId":"4567", "codeRepoLoc":"/trunk/analysisProject/R"}

Delete Code

Code Block

DELETE https://repo-staging.sagebase.org/repo/v1/code/8901

Successful Response:

Code Block

HTTP/1.1 204 No Content

Create Code Repository

Code Block

POST https://repo-staging.sagebase.org/repo/v1/codeRepo
{"codeRepoType":"svn", "nickname":"sageSvn", "codeRepoURL":"https://sagebionetworks.jira.com/svn"}

Successful Response:

Code Block

HTTP/1.1 201 Created
{id:"9876", "codeRepoType":"svn", "codeRepoURL":https://sagebionetworks.jira.com/svn}

TODO: Error response if 'nickname' is already used.

TODO: GET, PUT, DELETE

Create Code Repo Credentials

Code Block

POST https://repo-staging.sagebase.org/repo/v1/codeRepoCredentials
{"codeRepoId:"9876", "username":"foo": "password":"bar"}

Note: This request must be authenticated and the credentials are created for the authenticated user. The given "username" need not be the same as the user's Synapse username.

Successful Response:

Code Block

HTTP/1.1 201 Created
{"id":"5432", "codeRepoId:"9876", "username":"foo": "password":"bar"}

TODO: Should the password not be 'echoed'?
TODO: GET, PUT, DELETE

Scenarios

Discover, retrieve and load code into R session.

...