- Add sub-command aliases for the Cmdr
hive
andcron
commands, so that similar subcommands likelist
andls
work across both commands. (#1281) - Simplify adding structured data to the cell Hive via Cmdr. (#1282)
- Fix an issue in Cmdr for
hive get
which could result in failing to properly overwrite files when saving a Hive value to disk. (#1282)
- Add additional logging for ReadTheDocs documentation builds. (#1284)
- Add additional Hive API docstrings. (#1285)
- Add
syn:trigger
runtime only nodes to the Cortex. These represent triggers which have been configured on a Cortex. (#1270) - Add a new packed node helper,
synapse.lib.nodes.tagsnice()
, to get all the leaf tags on a node and any tags which have a time interval associated with them. (#1271) - Add a
err?
column to the output of thecron list
. This includes anX
character in the column if the last execution of that Cron task encountered an error. (#1272) - Refactor the Boss commands in cmdr to their own file and improve test coverage for the Cortex
storm
command in Cmdr. (#1273) - Add
$node.globtags()
method to Storm which accepts a tag glob, and returns a list of the matching glob values. (#1275) - Add there remote Cortex API
CoreApi.delNodeProp()
to allow property deletion from a single node. (#1279)
- Update CellApi Hive functions to properly check permissions. (#1274)
- Ensure that tearing down a Telepath generator via GeneratorExit from non-async code properly signals the generator to teardown on the ioloop. (#1278)
- Fix an issue where Storm subquery variable assignments were being pushed to the global runtime, but were not properly available to the Path objects associated with inbound nodes. (#1280)
- Improve inline API help for a few test helper functions. (#1273)
- Update Cmdr reference documentation for trigger and cron updates. (#1277)
- Centralize the
allowed()
and_reqUserAllowed()
function from the CoreApi class to the CellApi, making permission checking easier for CellApi implementers. (#1268) - Add the
$path
built-in Storm variable to the default variables populated in the Storm pipeline. (#1269) - Add a
$path.trace()
method to get a object which traces the pivots from a given Path object. The path idens can be obtained viatrace.iden()
. (#1269) - Add
$lib.set()
to Storm Types. This can be used to get a mutable set object. (#1269)
- Fix an issue where the Base
link()
API required the linking function to be a coroutine. (#1261)
- Improve inline API help for a few functions. (#1268)
- Add an optional facility to lmdbslab to prevent its data from being swapped out of memory. Add a Cortex configuration option (in the cell.yaml file) named
dedicated
to enable this for the lmdb slabs that store the graph data in a Cortex. This is currently only supported on Linux. (#1254)
- Fix an issue where the Cmdr color awareness for error highlighting was preventing documentation from building properly. (#1261)
- Fix an issue where the
synapse.servers.cortex
--mirror
option was not properly mirroring realtime splices. (#1264) - Fix a runtsafe variable order bug in Storm. (#1265)
- Work around an issue in prompt-toolkit's
print_formatted_text
function. (#1266) - Fix an issue where color awareness was not available for Cmdr sessions launched via
synapse.tools.csvtool
andsynapse.tools.feed
. (#1267)
- Update Storm lift documentation to include lifting by time intervals. (#1260)
- Update ReadTheDocs build configuration to utilize a Docker container, instead of a conda environment. (#1262)
- Add
$node.iden()
method in Storm to expose the iden of a node. (#1257) - Add
$lib.text()
method in Storm Lib to add a mutable string formatting object. (#1258)
- Add colored error reporting in Cmdr when a BadSyntax exception is sent to the user. (#1248)
- Expose the local Synapse version information in Cmdr via the
locs
command. (#1250) - Add reflected class names to the Telepath shareinfo. Expose this with the
Proxy._getClasses()
API. (#1250) - Add
--file
and--optsfile
arguments to the Cmdrstorm
command. These, respectively, allow a user to provide a file containing a raw Storm query and variable arguments as a json file. (#1252)
- Fix an issue where the Cmdr
log
command did not clean up all of its settings. (#1249) - Fix an issue with the Storm
switch
statement handling of non-runtsafe values. (#1251) - Fix an issue with the Storm
if
statement handling of non-runtsafe values. (#1253) - Fix an issue with when connecting to a Cortex via Telepath for the default remote layer, which previously could have pointed to a layer which was not the correct layer for the default view. (#1255)
- Add if/elif/else statement. Add and/or/not inside dollar expressions. Have expressions always return an int. (#1235)
- Add variable and expression filters. Test for and correct all known grammar ambiguities. Tag filters with a comparison, e.g.
+#$foo=$bar
, now don't raise an exception (#1241) - Add ability to enable and disable cron jobs and triggers. (#1242)
- Fix a bug where a tag addition could cause a splice to be generated if the tag window being added was inside of the existing tag window. (#1243)
- csvtool now correctly handles print events (#1245)
- Update release process documentation. (#1244)
- Add the Synapse version information in the Telepath handshake. Expose this with the
Proxy._getSynVers()
API and in the Cmdr CLI via thelocs
command. (#1238) - Add a
--save-nodes
argument to the Storm command in Cmdr to do a one-shot record of nodes returned by a Storm query. (#1239) - Allow
synapse.tools.cmdr
to take a second argument and run that argument as a Cmdr command. (#1239) - Add
$node.repr()
to Storm types. This allows the user to get the repr of the primary property, or a secondary property, and assign it to a variable in storm. (#1222) - Add
lib.csv.emit()
to Storm types. This allows the user to emit a message during a Storm query which can easily be joined into a CSV. (#1236) - Add a
--export
option tosynapse.tools.csvtool
. This allows the user to create a CSV file from a query that uses the$lib.csv.emit()
Storm function. (#1236)
- Resolve Storm grammar ambiguity between tag condition filters with value and left join. (#1237)
- Resolve Storm grammar ambiguity to prevent reserved words from being identified as a Storm command. (#1240)
- Fix an ambuguity in the Storm grammer regarding quoted command arguments. (#1234)
- Make Ndef, Edge and TimeEdge repr implementations consistent. (#1217)
- Add jsonl support the
synapse.tools.feed
tool. (#1220) - Add
/api/v1/model
API route for the Cortex HTTPAPI to expose the data model for a running Cortex. (#1221) - Add
fire()
function to Storm types to firestorm:fire
messages during Storm command execution. (#1221) - Add
$()
expression syntax to Storm for mathematical operations, along with a new parsing engine built around Lark. (#1216) - Add a warning when Synapse is imported if the user is running Python with
-OO
optimizations, since that can degrade the library capabilities. (#1219) - Cleanup some exception chains so that type normalization errors do not result in large tracebacks on the server. (#1224)
- Allow
$lib.print()
to accept curly brace{}
formatted strings for using variable substitution when printing values in Storm. (#1227)
- Fix an issue in Storm with lifting or filtering nodes by tags when the tag value is a variable. (#1223)
- Fix an issue which was preventing a tag variable value reference in Storm from behaving correctly. (#1228)
- Fix a missing await statement which prevented properly setting layers for a Cortex View object. (#1231)
- Fix some docstrings related to test code helpers. (#1230)
- Add POST support to the
/api/v1/model/norm
HTTP API endpoint. (#1207) - Add
getPropNorm()
andgetTypeNorm()
Telepath API endpoints to the Cortex and CoreApi. (#1207) - Add list
length()
andindex()
methods to Storm types. (#1208) - Add helper functions to
synapse.lib.node
for extracting repr values from packed nodes. (#1212) - Add
--nodes-only
to the Cmdrlog
command to only record raw nodes. (#1213) - Add
guid()
,min()
,max()
functions to Storm types. (#1215) - Add
getStormEval()
to thesynapse.lib.storm.Cmd
class. This helper can be used by Storm command implementers in resolving variables, full property, and relative property values off of the Storm runtime. (#1215) - The Storm
min
andmax
commands may now accept a relative property path, a full property path, or a variable. (#1215) - Add a
--mirror
tosynapse.servers.cortex
to allow easier mirroring of a backup Cortex from its source Cortex. (#1197)
- Fix an error in PropPivotOut and FormPivot where a None object could be yielded in the Storm pipeline. (#1210)
- Shut down HTTP API servers on Cell
fini()
. (#1211)
- Convert developer guide from static RST to Jupyter Notebook. (#1209)
- Convert HTTP API guide from static RST to Jupyter Notebook. (#1211)
- Add a note about backing up and restoring a cortex to the quickstart guide. (#1214)
- Add the ability to delete a role via HTTP API, as well as being able to mark a user as being archived. Archiving a user will also lock a user. (#1205)
- Add support to archiving for user to the CellApi for use via Telepath. (#1206)
- Fix remote layer bug injected by previous optimization that would result in missing nodes from lifts when the node only resides in the distant layer. (#1203)
- Fix error in the HTTP API documentation. (#1204)
- Automatically run unit tests for the master every day. (#1192)
- Add test suite for
synapse.lib.urlhelp
. (#1195) - Improve multi-layer and single layer performance. This is a backwards-incompatible API change in that 0.1.2 cortex will not interoperate with 0.1.2 remote layers before version 0.1.2. Persistent storage format has not changed. (#1196)
- Add skeleton for reverse engineering model. (#1198)
- When using
synapse.tools.cmdr
, issuing ctrl-c to cancel a running command in could result in the Telepath Proxy object being fini'd. This has been resolved by adding a signal handler to thesynapse.lib.cli.Cli
class which is registered by cmdr. (#1199) - Fix an issue where deleting a property which has no index failed. (#1200)
- Single letter form and property names were improperly disallowed. They are now allowed. (#1201)
- Add some example developer guide documentation. (#1193)
- Allow
synapse.servers
tools to specify a custom Telepath share name. (#1170) - Add
$lib.print()
,$lib.len()
,$lib.min()
,$lib.max()
, and$lib.dict()
Storm library functions. (#1179) - Add
$lib.str.concat()
and$lib.str.format()
Storm library functions. (#1179) - Initial economic model for tracking purchases. (#1177)
- Add progress logging for the
(0, 1, 0)
layer migration. (#1180) - Remove references to
Cortex.layer
as a Cortex level attribute. There was no guarantee that this was the correct write layer for a arbitrary view and could lead to incorrect usage. (#1181) - Optimize the
snap.getNodesBy()
API to shortcut true equality lift operations to become pure lifts by buid. (#1183) - Add a generic Cell server,
synapse.servers.cell
that can be used to launch any Cell by python class path and file path. This can be used to launch custom Cell objects. (#1182) - Add server side remote event processing to
.storm()
API calls. (#1171) - Add Telepath user proxying. (#1171)
- Migrate Dockerhub docker container builds and pypi packaging and release processes to CircleCI. (#1185)
- Improve performance. Add a small layer-level cache. Replace home-grown synapse.lib.cache.memoize implementation with standard one. Make layer microoptimizations. (#1191)
- Fixes for lmdblab.dropdb and lmdbslab.initdb mapfull safety. (#1174)
- Graceful recovery for pre v0.1.0 database migrations for lmdbslab backed databases. (#1175)
- Syntax parser did not allow for multiple dot hierarchies in universal properties. (#1178)
- Fix for lmdbslab mapfull error during shutdown (#1184)
synapse.lib.reflect.getShareInfo()
could return incorrect data depending on execution order and object type inheritance. (#1186)- Add missing test for Str types extracting named regular expression matches as subs. (#1187)
- Minor documentation updates for permissions. (#1172)
- Added docstring and test for
synapse.lib.coro.executor()
. (#1189)
- Synapse version 0.1.0 released.