Rexster: A Graph Server
http://rexster.tinkerpop.com
```xml
com.tinkerpop.rexster
rexster
2.3.0-SNAPSHOT
```
- Both RexPro and HTTP Server can be started independently with out configuration parameters, as all now have default values.
- OPTIONS for extensions returns a default response.
- Batch Kibble allows for multiple lookups within an manual or key index.
- Rexster can initialize the Gremlin Script Engine with a script file referenced in
rexster.xml
. - More convenience methods for
ExtensionResponse
to help simplify writing extensions. - Change default IO strategy to
leader-follower
. - Prevent Rexster’s forced Gremlin Script Engine reset as it is now handled by the Script Engine itself.
- Configuration in
rexster.xml
for allowing other Script Engine flavors of Gremlin to be exposed. - Remove
rexster.xml
embedded as a resource as the final fallback for configuring Rexster at startup. - Allow override of default embedded
log4j.properties
file with one in the root ofREXSTER_HOME
. - Improve logging configurability.
RexsterClient
for Java connectivity to Rexster through RexPro.- Enable or disable Dog House through
rexster.xml
- Fix JSON serialization of
Row
results as aMap
from the Gremlin Extension. - Improved JSON serialization for Map that uses a graph element as the key.
```xml
com.tinkerpop.rexster
rexster
2.2.0
```
- Major refactoring and renaming of core “server” classes.
ExtensionRequestParameter
now supports adefaultValue
.- Requests with
OPTIONS
now returnsOPTIONS
in theAccess-Control-Allow-Methods
and a response 200 instead of 204. - Upgrade to Grizzly 2.2.18 and Jersey 1.14.
- Include new configuration options in
rexster.xml
enable-jmx
element turns on or turns off JMX monitoring.thread-pool
section gives control over how many threads are allocated to Rexster.max-post-size
element controls the size of the data that can be POSTed to Rexster.max-header-size
element controls the size of the request header that can be sent to Rexster.upload-timeout-millis
element represents the length of the time in milliseconds that Rexster will wait for an upload to occur.
- Fixed Rexster Console where some
null
results were not being rendered back to it. - Fixed Rexster Console issues where transactions were not executing properly as requests within a session were not being bound to specific threads.
- Update the Dex configuration of
rexster.xml
to accept an external configuration file.
```xml
com.tinkerpop.rexster
rexster
2.1.0
```
- Added Travis continuous integration support
- Fixed issue with POST and DELETE of key indices via REST API.
- Configuration element of
rexster.xml
to bind the rexpro hostname. - Vertex query API.
- Fixed issue with inconsistencies of PUT, POST, and DELETE around manual indices.
- Restructured project to introduce rexster-core, rexster-console and rexster-protocol.
- Integration tests now run across TinkerGraph, Neo4j, OrientDB, Titan and Dex by default (Titan is disabled by default)
```xml
com.tinkerpop.rexster
rexster
2.0.0
```
- REST API for POSTing new indices supports
params
argument which constructs a parameter map which will configure the newly created index - The DELETE operation for the Graph resource has been removed since Blueprints no longer supports
Graph.clear()
- The Index resource no longer has a
keys
sub-resource nor the notion of “automatic” or “manual” indices due to changes in the Blueprints API - Add metadata from graph
Features
to the Graph resource KeyIndexResource
to access features ofKeyIndexableGraph
instancesVertexResource
andEdgeResource
support key index filtering- Improved messaging to the server console regarding which
rexster.xml
file is being loaded
```xml
com.tinkerpop.rexster
rexster
0.8
```
- Added
PUT
to the Indices resource to place elements in an index. This changes split this functionality away fromPOST
.POST
is now only for creating new indices. DELETE
of index elements now accepts parameters to be sent as an entity on the request.- Fix PermGen issues with Gremlin processing. This is bit of a stop gap fix in that it simply resets the engine after so many script executions.
- The Gremlin Extension now includes a
language
parameter so that one can specify the flavor of Gremlin that is being used. - Gremlin Extension takes a
params
extension and applies the keys and values within it to the bindings of the Gremlin script engine. - Dog House uses require.js for module loading.
- Simple graph visualization through JIT.
- Dog House provides a filter option when browsing vertices and edges. Filters are backed by indices such that the user can select an index then specify a key/value to filter the paged results by.
- Dropped support for support for
application/x-www-form-urlencoded
. - Basic authentication configurable through
rexster.xml
and extensible via extensions toAbstractSecurityFilter
. - Better handling of null values being passed to Gremlin Extension as bindings.
- Allow configuration of the Rexster server host in
rexster.xml
. - Launching an extension from Dog House that fails now properly removes the “Loading” spinner and displays the error.
- Encode the URI for extensions launched in Dog House so that they are properly encoded for cut and paste use.
- Added a mock
TransactionalGraph
implementation so that aTinkerGraph
can be tested in a transactional mode (configured throughrexster.xml
). - Results from the Gremlin Extension that are
Iterator
implementations are now paging properly. - Added the
load
parameter to the Gremlin Extension so that it is possible to execute server-side stored Gremlin scripts. - Gremlin Extension can be configured so that it does not execute scripts sent on the
script
parameter leaving it to only process server-side scripts with theload
parameter. - Gremlin Extension can be configured to cache server-side scripts.
- Sample Kibble
- Secure Sample Kibble shows how to get a
Principal
from theSecurityContext
.
- Secure Sample Kibble shows how to get a
```xml
com.tinkerpop
rexster
0.7
```
- Improved performance for most types of requests.
- Added two custom Rexster mime types:
application/vnd.rexster-v1+json
andapplication/vnd.rexster-typed-v1+json
.- The
rexster.showTypes
general parameter does not exist anymore and is replaced byapplication/vnd.rexster-typed-v1+json
. - Rexster respects the data types of POSTed
application/json
mime type for edges and vertices. - Extensive refactoring of content negotiation and unit tests around these changes.
- The
- Fixed problem with the Prefix resource where SailGraph in read-only mode generated 500 (Internal Server Error) responses.
- Added SPARQL Repository configuration.
- Fixed error that appeared on multiple successive calls to PUT on the Vertex and Edge Resources.
- The
extension
key in JSON responses now includes more information:- The full URI to the extension resource (not just the relative URL).
- Parameters for the query string.
- The name of the extension (not just the description).
- Dog House has Rexster Extension support
- List all configured extensions for graphs, vertices and edges.
- Launch extensions that can be accessed with a GET and that return JSON.
- Dog House is kinder to SailGraph implementations (generally cosmetic changes).
- Rexster Console only hosts Gremlin-flavored script engine implementations. Currently, that means that
gremlin-groovy
is the only exposed language. - Upgrade all Kibbles to use GraphSON.
- Sample Kibble
- New Parameters Sample Kibble shows how to deal with injecting different data types into the request.
```xml
com.tinkerpop
rexster
0.6
```
- Support for High Availability mode of Neo4j
- The
rexster-stop.sh
command is now consistent with therexster-stop.sh
in terms of parameter naming and shorthand. - Retrieve adjacency vertices through REST API of the vertex resource.
- Filter by multiple edge labels in the REST API of the vertex resource.
- PUT on vertex and edge resources in the REST API replaces all graph element properties with the specified set.
- Combine rexster-start.sh and rexster-stop.sh into rexster.sh with new
-version
and-status
commands. - If the
-c
argument is not passed at startup, Rexster first tries to readrexster.xml
from the root of the working directory. If it cannot be found then it tries to read from a resource. - Dog House and REST API both serve from port 8182
- Dog House is at
http://localhost:8182/doghouse
- The REST URI scheme has changed slightly to include a
graphs
segment, as in:http://localhost:8182/graphs/tinkergraph
- Dog House is at
- RexPro sessions that remain idle for a configurable amount of time are destroyed.
- Support OPTIONS HTTP method for all REST resources so that HTTP Access Control works properly when used (eg. jquery).
- New Batch Kibble makes it possible to execute commands in a batch/transactional fashion.
- Bring all Kibbles up to the latest version of REST API changes for the current version of Rexster.
```xml
com.tinkerpop
rexster
0.5
```
- It is now possible to mix and match root level extensions with pathed extensions in the same extension class.
- Support the
Accept-Charset
request header. - The Dog House Gremlin Console now handles UTF-8.
- The HTTP method is now displayed in the hypermedia for extensions.
- Added the
parseToJson
parameter to the@ExtensionRequestParameter
so that it is possible for extensions to control whether or not a specific parameter’s value is parsed to JSON or not. - The
<graph-file>
parameterrexster.xml
is now used to locate a graph, not to initialize it. AffectsTinkerGraph
andMemoryStoreSailGraph
implementations. - When requesting an index by name
http://localhost/graph/indices/edge
the index is wrapped in aresults
key in the return JSON. This is more consistent with other return values. - Indices returned from
http://localhost/graph/indices
or when requested by name have their class value set toedge
orvertex
as opposed to the full canonical class name. - Short-hand command line options.
- Extensions can be broken up across multiple classes within the same namespace and name.
- Used the Blueprints
JSONWriter
to serialize to JSON which fixed a number of problems related to serialization of multi-layered hashes and lists. - Nulls in iterators returned through Dog House are displayed as “null”.
- Rexster Console for evaluating scripts remotely on a Rexster server.
```xml
com.tinkerpop
rexster
0.4.1
```
- Fixed transactional graph error
```xml
com.tinkerpop
rexster
0.4
```
- Failed vertex POST now returns a “not found” status if the identifier cannot be found in the graph
- Raw JSON can be POSTed for vertices and edges.
- Extension can now contain a hyphen in the extension name and namespace.
- POSTing raw JSON and form data is now supported on the IndexResource.
- Gremlin scripts that return a null value return a null as a result in the JSON.
- Non-configured extensions do not appear in JSON for graphs, vertices, and edges.
@ExtensionDescriptor
is not required for an extension to work within Rexster.- Support for
RexsterGraph
configuration withinrexster.xml
. - The
returnKeys
parameter now works consistently across Rexster to only accept an array of keys as a value. - POST of form data to extensions.
- POST to
prefixes
resource works consistently now supporting form data, JSON and query string parameters. - Ensured that all requests for a graph that does not exist throws an NOT FOUND HTTP status code.
- Support start and stop of transactions for POST/DELETE operations
- Better messaging returned as JSON if Rexster cannot find an extension class not found in
com.tinkerpop.rexster.extension.RexsterExtension
. - Extensions provide support for all standard HTTP methods allowing control through the
ExtensionDefinition
.
```xml
com.tinkerpop
rexster
0.3
```
- Minor changes to rexster.xml:
- Addition of the
<base-uri>
element. - Renaming of
<webserver-port>
to<rexster-server-port>
. - Renaming of
<adminserver-port>
to<doghouse-server-port>
. - Removed some redundancy where rexster.xml had to reference itself within intialization parameters.
- Addition of the
- The port to which the Dog House connects for REST services is no longer hardcoded and is configurable given the changes to rexster.xml defined above.
- Supports DEX graph database.
- Neo4jSail is no longer supported within Rexster and Blueprints.
- Blueprints added a
count
method to indices. That function is exposed viahttp://localhost/graph/indices/myindex/count?key=name&value=val
- Introducing the new extension model. The Gremlin traversal has been converted to the extension model. Traversals have all been removed from Rexster.
- The following REST API parameters have a new format:
rexster.show_types
is nowrexster.showTypes
rexster.return_keys
is nowrexster.returnKeys
rexster.allow_cached
is nowrexster.allowCached
- The following standard properties contained within the JSON response have been reformatted:
up_time
is nowupTime
query_time
is nowqueryTime
read_only
is nowreadOnly
- Arrays are now serialized to JSON in the same fashion as Lists.
- Requesting an index resource without parameters will return information about that index instead of a Bad Request status code.
- Removed built-in caching functions.
- New command line “debug” option for Rexster server which will turn on all logging of the underlying Jersey/Grizzly server.
- Remote shutdown.
- Paging model changed in The Dog House. There is no longer a “Move Last” button when paging through vertices and edges.
- Prefix resource for
SailGraph
implementations.
```xml
com.tinkerpop
rexster
0.2
```
- Fixed problem with
return_key
parameter on a Gremlin Traversal from causing an error. - The
return_keys
option will now only filter out non-metadata values. - Rexster operational when deployed within Tomcat after the conversion from Restlet to Jersey.
- Fixed problem where specifying a start offset without an end offset was not returning all records from the start to the unspecified end of the list.
- Fixed problem where specifying a single
return_key
was returning all properties. - Command line options for overriding configuration options in
rexster.xml
. - Graphs configured in
rexster.xml
have a<read-only>
option. - Added a Gremlin console to The Dog House.
- Added vertex and edge property pages to The Dog House such that it is now possible to traverse the graph textually.
- Bumped to Blueprints 0.5, Pipes 0.3.1, and Gremlin 0.8.
```xml
com.tinkerpop
rexster
0.1.5
```
- Support for Gremlin 0.7
- Bug fix in configuration parameters of
rexster.xml
preventing certain values from being configurable. - Early release of web tool for Rexster for browsing vertices and edges. Will be expanded with additional features in future releases. This feature is experimental only.
- Sail support
- Unit test coverage greatly expanded.
```xml
com.tinkerpop
rexster
0.1
```
- Initial release of the web service shell and rank and score support