fluree / core

Fluree releases and public bug reports
0 stars 0 forks source link

Implement `insertData` #27

Open aaj3f opened 10 months ago

aaj3f commented 10 months ago

Description

insertData is to be an acceptable top-level key for staging data into Fluree.

insertData allows insertion of JSON-LD-shaped data. It will never retract-and-replace/upsert values on existing subject-properties described in the payload. It will only insert the resolved expanded triples.

If SHACL rules existed to, for example, restrict a property to single cardinality, and insertData would add a second value to a subject on that property, the transaction should be rejected.

It should be possible to include insertData with deleteData or upsertData in the same payload, but there should be a specified sequential order to the processing of those mutations (e.g. deleteData -> upsertData -> insertData)

insertData does not need (and maybe should not allow) a where key pre-query and populate bindings. Those bindings should not be necessary and are not allowed within the insertData JSON-LD (this will be true for deleteData and upsertData as well)

Notes

See Dan's notes here: https://gist.github.com/dpetran/be119af28e518fae44a991a6515909ec