diff --git a/Editor-Runtime-HTTP-API.md b/Editor-Runtime-HTTP-API.md new file mode 100644 index 0000000..f9d1014 --- /dev/null +++ b/Editor-Runtime-HTTP-API.md @@ -0,0 +1,78 @@ +This is a snap-shot of the complete HTTP interface between the editor and runtime. + +The Authentication and Runtime API parts are already documented as part of the public API. + +| Authentication | | +|--------------------------------------------|----------------------------------------------------------| +| GET /auth/login | Get the active authentication scheme | +| POST /auth/token | Exchange credentials for access token | +| POST /auth/revoke | Revoke an access token | + +| Runtime API | | +|--------------------------------------------|----------------------------------------------------------| +| GET /flows | Get the active flow configuration | +| POST /flows | Set the active flow configuration | +| POST /flow | Add a flow to the active configuration | +| GET /flow/:id | Get an individual flow configuration | +| PUT /flow/:id | Update an individual flow configuration | +| DELETE /flow/:id | Delete an individual flow configuration | +| GET /nodes | Get a list of the installed nodes | +| POST /nodes | Install a new node module | +| GET /nodes/:module | Get a node module_s information | +| PUT /nodes/:module | Enable/Disable a node module | +| DELETE /nodes/:module | Remove a node module | +| GET /nodes/:module/:set | Get a node module set information | +| PUT /nodes/:module/:set | Enable/Disable a node set | + +| Editor API | | +|--------------------------------------------|----------------------------------------------------------| +| GET / | Get the editor html | +| GET /red/* | Get the main editor js/css/images | +| GET /vendor/* | Get 3rd-party libraries used by the editor | +| GET /settings | Get the runtime settings | +| GET /settings/user | Get the user-specific settings | +| POST /settings/user | Set the user-specific settings | +| GET /settings/user/keys | Get the user_s ssh keys | +| GET /settings/user/keys/:id | Get a public key | +| POST /settings/user/keys | Generate a new key pair | +| DELETE /settings/user/keys/:id | Delete a key pair | +| GET /credentials/:type/:id | Get credentials for a given node | +| GET /locales/nodes | Get message catalogs for all known nodes | +| GET /locales/:module | Get message catalog for a specific node module | +| GET /theme/* | Get custom resources for the editorTheme | +| GET /icons | Get the list of all available node icons | +| GET /icons/:module/:icon | Get a module-provided node icon | +| GET /icons/:icon | Get a node icon from the core set | + +| Projects API | | +|--------------------------------------------|----------------------------------------------------------| +| GET /projects | List all projects | +| POST /projects | Create project | +| GET /projects/:id | Get project metadata | +| PUT /projects/:id | Update a project | +| DELETE /projects/:id | Delete project | +| GET /projects/:id/status | Get project status - files, commit counts, branch info | +| GET /projects/:id/files | Project file listing | +| GET /projects/:id/files/:treeish/* | Get file content in a given tree (index/stage) | +| DELETE /projects/:id/files/_/* | Revert a file (delete from the stage tree) | +| POST /projects/:id/stage/* | Stage a file | +| POST /projects/:id/stage | Stage multiple files | +| POST /projects/:id/commit | Commit changes | +| DELETE /projects/:id/stage/* | Unstage a file | +| DELETE /projects/:id/stage | Unstage multiple files | +| GET /projects/:id/diff/:type/* | Get a file diff | +| GET /projects/:id/commits | Get a list of commits | +| GET /projects/:id/commits/:sha | Get an individual commit details | +| POST /projects/:id/push/?* | Push local commits to remote | +| POST /projects/:id/pull/?* | Pull remote commits | +| DELETE /projects/:id/merge | Abort an ongoing merge | +| POST /projects/:id/resolve/* | Resolve a merge | +| GET /projects/:id/branches | Get a list of local branches | +| DELETE /projects/:id/branches/:branchName | Delete a local branch - ?force=true | +| GET /projects/:id/branches/remote | Get a list of remote branches | +| GET /projects/:id/branches/remote/*/status | Get branch status - commit counts/ahead/behind | +| POST /projects/:id/branches | Set the active local branch | +| GET /projects/:id/remotes | Get a list of remotes | +| POST /projects/:id/remotes | Add a remote | +| DELETE /projects/:id/remotes/:remoteName | Delete a remote | +| PUT /projects/:id/remotes/:remoteName | Update a remote |