API for synapse data type (github.com/janelia-flyem/dvid/datatype/annotation) ======================================================================================= Note: UUIDs referenced below are strings that may either be a unique prefix of a hexadecimal UUID string (e.g., 3FA22) or a branch leaf specification that adds a colon (":") followed by the case-dependent branch name. In the case of a branch leaf specification, the unique UUID prefix just identifies the repo of the branch, and the UUID referenced is really the leaf of the branch name. For example, if we have a DAG with root A -> B -> C where C is the current HEAD or leaf of the "master" (default) branch, then asking for "B:master" is the same as asking for "C". If we add another version so A -> B -> C -> D, then references to "B:master" now return the data from "D". Command-line: $ dvid repo new annotation Adds newly named data of the 'type name' to repo with specified UUID. Example: $ dvid repo 3f8c new annotation synapses Arguments: UUID Hexadecimal string with enough characters to uniquely identify a version node. data name Name of data to create, e.g., "synapses" settings Configuration settings in "key=value" format separated by spaces. $ dvid node reload Forces asynchornous denormalization of all annotations for labels and tags. Because this is a special request for mass mutations that require static "normalized" data (only verifies and changes the label and tag denormalizations), any POST requests while this is running results in an error. Configuration Settings (case-insensitive keys) check "true": (default "false") check denormalizations, writing to log when issues are detected, and only replacing denormalization when it is incorrect. inmemory "false": (default "true") use in-memory reload, which assumes the server has enough memory to hold all annotations in memory. ------------------ HTTP API (Level 2 REST): GET /node///help Returns data-specific help message. GET /node///info POST /node///info Retrieves or puts DVID-specific data properties for these voxels. Example: GET /node/3f8c/synapses/info Returns JSON with configuration settings. Arguments: UUID Hexadecimal string with enough characters to uniquely identify a version node. data name Name of annotation data. POST /node///sync? Appends to list of data instances with which the annotations are synced. Expects JSON to be POSTed with the following format: { "sync": "labels,bodies" } To delete syncs, pass an empty string of names with query string "replace=true": { "sync": "" } The "sync" property should be followed by a comma-delimited list of data instances that MUST already exist. Currently, syncs should be created before any annotations are pushed to the server. If annotations already exist, these are currently not synced. The annotations data type only accepts syncs to label-oriented datatypes: labelblk, labelvol, labelarray, and labelmap. POST Query-string Options: replace Set to "true" if you want passed syncs to replace and not be appended to current syncs. Default operation is false. GET /node///tags POST /node///tags? GET retrieves JSON of tags for this instance. POST appends or replaces tags provided in POST body. Expects JSON to be POSTed with the following format: { "tag1": "anything you want", "tag2": "something else" } To delete tags, pass an empty object with query string "replace=true". POST Query-string Options: replace Set to "true" if you want passed tags to replace and not be appended to current tags. Default operation is false (append). Note: For the following URL endpoints that return and accept POSTed JSON values, see the JSON format at end of this documentation. GET /node///label/