12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763 |
- {
- "basePath":"/db",
- "definitions":{
- "Error":{
- "description":"A human readable error mesage.",
- "type":"string"
- },
- "GraphQLRequest":{
- "properties":{
- "operationName":{
- "description":"GraphQL query operation name.",
- "type":"string"
- },
- "query":{
- "description":"GraphQL query.",
- "type":"string"
- },
- "variables":{
- "description":"GraphQL query variable values.",
- "type":"object"
- }
- },
- "type":"object"
- },
- "GroupSelectionState":{
- "properties":{
- "groups":{
- "description":"List of group names which include one or more selected nodes.",
- "items":{
- "description":"Group name.",
- "type":"string"
- },
- "type":"array"
- },
- "keys":{
- "description":"Lists of selected node keys which are part of the groups in the 'groups' list.",
- "items":{
- "description":"List of node keys.",
- "items":{
- "description":"Node key.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "kinds":{
- "description":"Lists of selected node kinds which are part of the groups in the 'groups' list.",
- "items":{
- "description":"List of node kinds.",
- "items":{
- "description":"Node kind.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- }
- },
- "type":"object"
- },
- "QueryResult":{
- "properties":{
- "groups":{
- "description":"Group names for each row.",
- "items":{
- "description":" Groups of the primary kind node.",
- "items":{
- "description":"Group name.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "header":{
- "description":"Header for the query result.",
- "properties":{
- "data":{
- "description":"The data which is displayed in each column of the search result.",
- "items":{
- "description":"Data source for the column (e.g. 1:n:name - Name of starting nodes, 3:e:key - Key of edge traversed in the second traversal).",
- "type":"string"
- },
- "type":"array"
- },
- "format":{
- "description":"All column format definitions of the search result.",
- "items":{
- "description":"Column format as specified in the show format (e.g. text).",
- "type":"string"
- },
- "type":"array"
- },
- "labels":{
- "description":"All column labels of the search result.",
- "items":{
- "description":"Column label.",
- "type":"string"
- },
- "type":"array"
- }
- },
- "type":"object"
- },
- "rows":{
- "description":"Rows of the query result.",
- "items":{
- "description":"Columns of a row of the query result.",
- "items":{
- "description":"A single cell of the query result (string, integer or null).",
- "type":"object"
- },
- "type":"array"
- },
- "type":"array"
- },
- "selections":{
- "description":"List of row selections.",
- "items":{
- "description":"Row selection.",
- "type":"boolean"
- },
- "type":"array"
- },
- "sources":{
- "description":"Data sources of the query result.",
- "items":{
- "description":"Columns of a row of the query result.",
- "items":{
- "description":"Data source of a single cell of the query result.",
- "type":"string"
- },
- "type":"array"
- },
- "type":"array"
- },
- "total_selections":{
- "description":"Number of total selections.",
- "format":"integer",
- "type":"number"
- }
- },
- "type":"object"
- },
- "SelectionState":{
- "properties":{
- "keys":{
- "description":"Lists of selected node keys.",
- "items":{
- "description":"Node key.",
- "type":"string"
- },
- "type":"array"
- },
- "kinds":{
- "description":"Kinds of all selected nodes.",
- "items":{
- "description":"Node kind.",
- "type":"string"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- },
- "host":"127.0.0.1:9090",
- "info":{
- "description":"Query and modify the EliasDB datastore.",
- "title":"EliasDB API",
- "version":"1.0.0"
- },
- "paths":{
- "/about":{
- "get":{
- "description":"Returns available API versions, product name and product version.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"About info object",
- "schema":{
- "properties":{
- "api_versions":{
- "description":"List of available API versions.",
- "items":{
- "description":"Available API version.",
- "type":"string"
- },
- "type":"array"
- },
- "product":{
- "description":"Product name of the REST API provider.",
- "type":"string"
- },
- "version":{
- "description":"Version of the REST API provider.",
- "type":"string"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return information about the REST API provider."
- }
- },
- "/v1/blob/{partition}":{
- "post":{
- "consumes":[
- "application/octet-stream"
- ],
- "description":"The blob endpoint can be used to store binary data. Its location will be automatically allocated.",
- "parameters":[
- {
- "description":"The data to store.",
- "in":"body",
- "name":"data",
- "required":true,
- "schema":{
- "description":"A blob of binary data."
- }
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful.",
- "schema":{
- "properties":{
- "id":{
- "description":"The data ID which can be used to lookup the data.",
- "type":"number"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Create a binary blob of data."
- }
- },
- "/v1/blob/{partition}/{id}":{
- "delete":{
- "description":"The blob endpoint can be used to remove binary data from a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Remove a binary blob of data."
- },
- "get":{
- "description":"The blob endpoint can be used to retrieve binary data from a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/octet-stream"
- ],
- "responses":{
- "200":{
- "description":"The requested binary blob."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Retrieve a binary blob of data."
- },
- "put":{
- "description":"The blob endpoint can be used to update binary data at a specific location.",
- "parameters":[
- {
- "description":"ID of the binary blob.",
- "in":"path",
- "name":"id",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Update a binary blob of data."
- }
- },
- "/v1/cluster":{
- "get":{
- "description":"The cluster endpoint returns the cluster state info which contains cluster members and their state.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return cluster specific information."
- }
- },
- "/v1/cluster/log":{
- "delete":{
- "description":"A delete call to the log endpoint resets the cluster related log and clears the ring buffer in memory.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Cluster related log was reset."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Reset the cluster log."
- },
- "get":{
- "description":"The cluster log endpoint returns the latest cluster related log messages from a memory ring buffer.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A list of log messages."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return latest cluster related log messages."
- }
- },
- "/v1/cluster/memberinfos":{
- "get":{
- "description":"The memberinfos returns the static member info of every known cluster member. If a member is not reachable its info contains a single key-value pair with the key error and an error message as value.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A map of memberinfos (keys are member names)."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return static member info of every known cluster member."
- }
- },
- "/v1/cluster/{command}":{
- "put":{
- "consumes":[
- "application/json"
- ],
- "description":"The cluster can be controlled via this command endpoint on any member.",
- "parameters":[
- {
- "description":"Valid commands are: ping, join and eject.",
- "in":"path",
- "name":"command",
- "required":true,
- "type":"string"
- },
- {
- "description":"Arguments for a command",
- "in":"body",
- "name":"args",
- "required":true,
- "schema":{
- "properties":{
- "name":{
- "description":"Name of a cluster member (ping/join=member to contact, eject=member to eject).",
- "type":"string"
- },
- "netaddr":{
- "description":"Network address of a member e.g. localhost:9030 (ping/join=member address to contact)",
- "type":"string"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Only the ping command returns its result. All other positive responses are empty."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Commands can be given to the cluster by using PUT requests."
- }
- },
- "/v1/eql":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"The eql endpoint should be used to parse a given EQL query into an Abstract Syntax Tree or pretty print a given Abstract Syntax Tree into an EQL query.",
- "parameters":[
- {
- "description":"Query or AST which should be converted.",
- "in":"body",
- "name":"data",
- "required":true,
- "schema":{
- "properties":{
- "ast":{
- "description":"AST which should be pretty printed.",
- "type":"object"
- },
- "query":{
- "description":"Query which should be parsed.",
- "type":"string"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful.",
- "schema":{
- "properties":{
- "ast":{
- "description":"The resulting AST if a query was parsed.",
- "type":"object"
- },
- "query":{
- "description":"The pretty printed query if an AST was given.",
- "type":"string"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"EQL parser and pretty printer endpoint."
- }
- },
- "/v1/find":{
- "get":{
- "description":"The find endpoint should be used to run simple index searches for either a value or a phrase.",
- "parameters":[
- {
- "description":"A word or phrase to search for.",
- "in":"query",
- "name":"text",
- "required":false,
- "type":"string"
- },
- {
- "description":"A node value to search for.",
- "in":"query",
- "name":"value",
- "required":false,
- "type":"string"
- },
- {
- "description":"Flag if a complete node lookup should be done (otherwise only key and kind are returned).",
- "in":"query",
- "name":"lookup",
- "required":false,
- "type":"boolean"
- },
- {
- "description":"Limit the search to a partition (without the option all partitions are searched).",
- "in":"query",
- "name":"part",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"An object of search results.",
- "schema":{
- "description":"Object of results per partition.",
- "properties":{
- "partition":{
- "description":"Object of results per kind.",
- "properties":{
- "kind":{
- "description":"List of found nodes.",
- "items":{
- "description":"Found node.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- },
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run index searches on the EliasDB datastore."
- }
- },
- "/v1/graph/{partition}":{
- "delete":{
- "consumes":[
- "application/json"
- ],
- "description":"A whole graph can be send. DELETE will delete data in the datastore - only key and kind are required.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes and Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "properties":{
- "edges":{
- "description":"List of edges to be inserted / updated.",
- "items":{
- "description":"Edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- },
- "nodes":{
- "description":"List of nodes to be inserted / updated.",
- "items":{
- "description":"Node to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using DELETE requests."
- },
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"A whole graph can be send. POST will store data in the datastore and always overwrite any existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes and Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "properties":{
- "edges":{
- "description":"List of edges to be inserted / updated.",
- "items":{
- "description":"Edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- },
- "nodes":{
- "description":"List of nodes to be inserted / updated.",
- "items":{
- "description":"Node to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using POST requests."
- },
- "put":{
- "consumes":[
- "application/json"
- ],
- "description":"A whole graph can be send. PUT will store data in the datastore and update existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes and Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "properties":{
- "edges":{
- "description":"List of edges to be inserted / updated.",
- "items":{
- "description":"Edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- },
- "nodes":{
- "description":"List of nodes to be inserted / updated.",
- "items":{
- "description":"Node to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- },
- "type":"object"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using PUT requests."
- }
- },
- "/v1/graph/{partition}/{entity_type}":{
- "delete":{
- "consumes":[
- "application/json"
- ],
- "description":"A list of nodes / edges can be send. DELETE will delete data in the datastore - only key and kind are required.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes or Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "items":{
- "description":"Node or edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using DELETE requests."
- },
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"A list of nodes / edges can be send. POST will store data in the datastore and always overwrite any existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes or Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "items":{
- "description":"Node or edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using POST requests."
- },
- "put":{
- "consumes":[
- "application/json"
- ],
- "description":"A list of nodes / edges can be send. PUT will store data in the datastore and update existing data.",
- "parameters":[
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Nodes or Edges which should be stored",
- "in":"body",
- "name":"entities",
- "required":true,
- "schema":{
- "items":{
- "description":"Node or edge to be inserted / updated.",
- "type":"object"
- },
- "type":"array"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"No data is returned when data is created."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Data can be send by using PUT requests."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}":{
- "get":{
- "description":"GET requests can be used to query a series of nodes. The X-Total-Count header contains the total number of nodes which were found.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data is a list of objects",
- "schema":{
- "items":{
- "type":"object"
- },
- "type":"array"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}/{key}":{
- "get":{
- "description":"GET requests can be used to query a single node.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge key to be queried.",
- "in":"path",
- "name":"key",
- "required":true,
- "type":"string"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data is a single object",
- "schema":{
- "type":"object"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graph/{partition}/{entity_type}/{kind}/{key}/{traversal_spec}":{
- "get":{
- "description":"GET requests can be used to query a single node and then traverse to its neighbours.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Partition to select.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge key to be queried.",
- "in":"path",
- "name":"key",
- "required":true,
- "type":"string"
- },
- {
- "description":"Traversal to be followed from a single node.",
- "in":"path",
- "name":"traversal_spec",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The return data are two lists containing traversed nodes and edges. The traversal endpoint does NOT support limit and offset parameters. Also the X-Total-Count header is not set.",
- "schema":{
- "items":{
- "items":{
- "type":"object"
- },
- "type":"array"
- },
- "type":"array"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"The graph endpoint is the main entry point to request data."
- }
- },
- "/v1/graphql-query/{partition}":{
- "get":{
- "consumes":[
- "application/json"
- ],
- "description":"The GraphQL interface can be used to query data.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL query operation name.",
- "in":"query",
- "name":"operationName",
- "required":false,
- "type":"string"
- },
- {
- "description":"GraphQL query.",
- "in":"query",
- "name":"query",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL query variable values.",
- "in":"query",
- "name":"variables",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"GraphQL interface which only executes non-modifying queries."
- }
- },
- "/v1/graphql/{partition}":{
- "post":{
- "consumes":[
- "application/json"
- ],
- "description":"The GraphQL interface can be used to query and modify data.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"GraphQL request",
- "in":"body",
- "name":"graphql_request",
- "required":true,
- "schema":{
- "$ref":"#/definitions/GraphQLRequest"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"The operation was successful."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"GraphQL interface."
- }
- },
- "/v1/index/{partition}/{entity_type}/{kind}":{
- "get":{
- "description":"The index endpoint should be used to run index searches for either a word, phrase or a whole value. All queries must specify a kind and an node/edge attribute.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"Datastore entity type which should selected. Either n for nodes or e for edges.",
- "in":"path",
- "name":"entity_type",
- "required":true,
- "type":"string"
- },
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- },
- {
- "description":"Attribute which should contain the word, phrase or value.",
- "in":"query",
- "name":"attr",
- "required":true,
- "type":"string"
- },
- {
- "description":"Word to search for in word queries.",
- "in":"query",
- "name":"word",
- "required":false,
- "type":"string"
- },
- {
- "description":"Phrase to search for in phrase queries.",
- "in":"query",
- "name":"phrase",
- "required":false,
- "type":"string"
- },
- {
- "description":"Value (node/edge attribute value) to search for in value queries.",
- "in":"query",
- "name":"value",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A list of keys or when doing a word search a map with node/edge key to word positions."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run index searches on the EliasDB datastore."
- }
- },
- "/v1/info":{
- "get":{
- "description":"The info endpoint returns general database information such as known node kinds, known attributes, etc.",
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return general datastore information."
- }
- },
- "/v1/info/kind/{kind}":{
- "get":{
- "description":"The info kind endpoint returns information on a given node kind such as known attributes and edges.",
- "parameters":[
- {
- "description":"Node or edge kind to be queried.",
- "in":"path",
- "name":"kind",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A key-value map."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return information on a given node or edge kind."
- }
- },
- "/v1/query/{partition}":{
- "get":{
- "description":"The query endpoint should be used to run EQL search queries against partitions. The return value is always a list (even if there is only a single entry). A query result gets an ID and is stored in a cache. The ID is returned in the X-Cache-Id header. Subsequent requests for the same result can use the ID instead of a query.",
- "parameters":[
- {
- "description":"Partition to query.",
- "in":"path",
- "name":"partition",
- "required":true,
- "type":"string"
- },
- {
- "description":"URL encoded query to execute.",
- "in":"query",
- "name":"q",
- "required":false,
- "type":"string"
- },
- {
- "description":"Result ID to retrieve from the result cache.",
- "format":"integer",
- "in":"query",
- "name":"rid",
- "required":false,
- "type":"number"
- },
- {
- "description":"How many list items to return.",
- "format":"integer",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"number"
- },
- {
- "description":"Offset in the dataset.",
- "format":"integer",
- "in":"query",
- "name":"offset",
- "required":false,
- "type":"number"
- },
- {
- "description":"Include group information in the result if set to any value.",
- "format":"integer",
- "in":"query",
- "name":"groups",
- "required":false,
- "type":"number"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"A query result",
- "schema":{
- "$ref":"#/definitions/QueryResult"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Run EQL queries to query the EliasDB datastore."
- }
- },
- "/v1/queryresult/{rid}/csv":{
- "get":{
- "description":"The csv endpoint is used to generate a CSV string from the search result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain"
- ],
- "responses":{
- "200":{
- "description":"A CSV string."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return the search result in CSV format."
- }
- },
- "/v1/queryresult/{rid}/groupselected":{
- "get":{
- "description":"Returns the current selections state which contains all selected nodes which are in groups.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Get the current group selection state."
- },
- "post":{
- "description":"Sets the groups in the given selection state.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Group seletion state of a query result",
- "in":"body",
- "name":"selection_state",
- "required":true,
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Set a new group selection state."
- }
- },
- "/v1/queryresult/{rid}/groupselected/{group_name}":{
- "delete":{
- "description":"The groupselected endpoint is used to remove all selected nodes (primary node of each row) from the given (existing) group.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Name of an existing group.",
- "in":"path",
- "name":"group_name",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Remove all selected nodes (primary node of each row) from the given group."
- },
- "put":{
- "description":"The groupselected endpoint is used to add all selected nodes (primary node of each row) to the given (existing) group.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Name of an existing group.",
- "in":"path",
- "name":"group_name",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current group selection state after the operation.",
- "schema":{
- "$ref":"#/definitions/GroupSelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Add all selected nodes (primary node of each row) to the given group."
- }
- },
- "/v1/queryresult/{rid}/quickfilter/{column}":{
- "get":{
- "description":"The quickfilter endpoint is used to determine the 10 most frequent used values in a particular result column.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Column of the query result.",
- "in":"path",
- "name":"column",
- "required":true,
- "type":"string"
- },
- {
- "description":"Limit the maximum number of result items.",
- "in":"query",
- "name":"limit",
- "required":false,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"An object containing values and frequencies."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return quickfilter information on a given result column."
- }
- },
- "/v1/queryresult/{rid}/select":{
- "get":{
- "description":"The select endpoint is used to query all selected nodes of a given query result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current total selections.",
- "schema":{
- "$ref":"#/definitions/SelectionState"
- }
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Return the (primary) nodes which are currently selected."
- }
- },
- "/v1/queryresult/{rid}/select/{row}":{
- "put":{
- "description":"The select endpoint is used to select one or more rows of a given query result.",
- "parameters":[
- {
- "description":"Result ID of a query result.",
- "in":"path",
- "name":"rid",
- "required":true,
- "type":"string"
- },
- {
- "description":"Row number of the query result or 'all', 'none' or 'invert'.",
- "in":"path",
- "name":"row",
- "required":true,
- "type":"string"
- }
- ],
- "produces":[
- "text/plain",
- "application/json"
- ],
- "responses":{
- "200":{
- "description":"Current total selections."
- },
- "default":{
- "description":"Error response",
- "schema":{
- "$ref":"#/definitions/Error"
- }
- }
- },
- "summary":"Selects one or more rows of a given query result."
- }
- }
- },
- "produces":[
- "application/json"
- ],
- "schemes":[
- "https"
- ],
- "swagger":"2.0"
- }
|