Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

URLMethodRequest BodyResponse BodyDescriptionAuthority
/entityPOSTTableEntityTableEntityCreate a new TableEntity as you would any other Entity in Synapse. A new TableEntity will not have any rows.  Add rows see POST /table/<id>Must have the CREATE permission on the parent entity of the table.
/entity/<id>GET TableEntityGet a TableEntity as you would any other Entity in SynapseMust have READ permission on the Entity
/entity/<id>PUTTableEntityTableEntityUpdate the TableEntity.Must have UPDATE permission on the Entity
/entity<id>DELETE  Delete a TableEntity and all of its rows.Must have DELETE permission on the Entity
/entity/<id>/tablePOSTResultSetRowSetTableRowReferenceThis method is used to both add and update rows to a TableEntity.  The <id> must be the ID of the TableEntity.  The passed ResultSet RowSet will contain all data for the rows to add or update.  The ResultSetRowSet.rows is a list of Rows, one of each row to add or update.  If the Row.rowId is null, then a row will be added for that request, if a rowId is provided then the row with that ID will be updated (a 400 will be returned if a row ID is provided that does not actually exist).  The Row.values list should contain a value for each column of the row.  The ResultSetRowSet.headers identifies the columns (by name) that are to be updated by this request.  Each Row.value list must be the same size as the ResultSetRowSet.headers, as each value is mapped to a column by the index of these two arrays.  When a row is added it will be issued both a rowId and a version number.  When a row is updated it will be issued a new version number (each row version is immutable).  The resulting TableRowReference will enumerate all rowIds and versionNumbers for this update.  The resulting RowReferecnes will be listed in the same order as the passed result set.  A single POST to this services will be treated as a single transaction, meaning all of the rows will be added/updated or none of the rows will be added/updated.  If this web-services fails for any reason all changes will be "rolled back".Must have UPDATE permission on the TableEntity identified by the <id>
/entity/<id>/tableDELETERowDeleteRequest Delete all rows identified in the request.  When a row is delted it will now longer appear in queries.  However, old version of the row will still exist and may still be referenced and retrieved from the POST /entity/<id>/table/version call.Must have DELETE permission on the Entity
/entity/<id>/table?query="<sql like queryr>"GET ResultSetRowSet

Query the rows of a table with a "SQL like" query string.  For example:

"select * from <table_id> where foo=bar limit 100 offset 0"

Must have READ permission on the table.
/entity/<id>/table/versionPOSTTableRowReferenceResultSetRowSetGiven a TableRowReference, get the ResultSet RowSet of the rows.  Each RowReference of the requested can included a versionNumber.  When a versionNumber is included the data for that row will be from the requested version number.  If the versionNumber is blank or null then the current version of that row will be returned.Must have READ permission on the table.

...

  • A constraint can only be added if the all existing data already meets the constraint or a 400 will be returned.
  • When a column is added a default value should be provided in the column model, if not the default value will be null.
  • When a column is removed, old version of each row will retain the values of the deleted column.

Provenance

Anytime a query is run the resulting RowSet will contain the a rowId and versionNumber for each row.  This row metadata can be bundled into a TableRowRefrence object can be used in provenance.