- Notifications
You must be signed in to change notification settings - Fork0
Tridoc Serverside Infrastructure
License
tridoc/tridoc-backend
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Server-side infrastructure for tridoc: easy document management for individuals and small teams.
This will setup tridoc on port 8000 and fuseki avaliable on port 8001.Make sure you havedocker-compose
installed.
ReplaceYOUR PASSWORD HERE
in the first command with your choice of password.
Unix/Linux/wsl:
export TRIDOC_PWD="YOUR PASSWORD HERE"docker-compose builddocker-compose up
On windows, relpace the first line with:
$env:TRIDOC_PWD="YOUR PASSWORD HERE"
For more Setup options see theDEV-README.md
There are two types of tags: simple tags and parameterizable tags. Parameterizable tags need a parameter to become a parameterized tag wich can be added to a document.
Simple tags can be created byPOST
to/tag
. You need to send an JSON object like this:
{"label":"Inbox"}
Note:
label
must be unique.
The label must not contain any of the following: whitespace,
/
,\
,#
,"
,'
,,
,;
,:
,?
;
The label must not equal.
(single dot) or..
(double dot).
Tags can be added to a document byPOST
to/doc/{id}/tag
. You need to send an JSON object like the one above.
Tags must be created before adding them to a document.
Parameterizable tags can be created byPOST
to/tag
too. You need to send an JSON object like this:
{"label":"Amount","parameter": {"type":"http://www.w3.org/2001/XMLSchema#decimal" }}
Again,
label
must be unique.parameter.type
can either behttp://www.w3.org/2001/XMLSchema#decimal orhttp://www.w3.org/2001/XMLSchema#date .
Parameterizable tags can only be added to a document with a value assigned. ByPOST
ing a JSON object like the following to/doc/{id}/tag
, a parameterized tag is created and added to the document.
{"label":"Amount","parameter": {"type":"http://www.w3.org/2001/XMLSchema#decimal","value":"12.50" }}
A parameterizable tag with this
label
andparameter.type
has to be created before.
Tags can be added to a document byPOST
to/doc/{id}/comment
You can either send an JSON document like the following
{"text":"This is a comment"}
When getting a comment, a JSON array with objects of the following structure is provided:
{"text":"This is a comment","created":"2020-03-12T10:07:20.493Z"}
Address | Method | Description | Request / Payload | Response | Implemented in Version |
---|---|---|---|---|---|
/count | GET | Count (matching) documents | 13 | Number | 1.1.0 |
/doc | POST | Add / Store Document | PDF5 | - | 1.1.0 |
/doc | GET | Get List of all (matching) documents | 123 | Array of objects with document identifiers and titles (where available) | 1.1.0 |
/doc/{id} | GET | Get this document | - | 1.1.0 | |
/doc/{id} | DELETE | Deletes all metadata associated with the document. Document will not be deleted and is stays accessible over /doc/{id}. | - | - | 1.1.0 |
/doc/{id}/comment | POST | Add comment to document | Comment object / See above | - | 1.2.0 |
/doc/{id}/comment | GET | Get comments | - | Array of comment objects | 1.2.0 |
/doc/{id}/tag | POST | Add a tag to document | Tag object / See above | - | 1.1.0 |
/doc/{id}/tag | GET | Get tags of document | - | Array of tag objects | 1.1.0 |
/doc/{id}/tag/{tagLabel} | DELETE | Remove tag from document | - | - | 1.1.0 |
/doc/{id}/thumb | GET | Get document thumbnail | - | PNG (300px wide) | 1.5.0 |
/doc/{id}/title | PUT | Set document title | {"title": "the_Title"} | - | 1.1.0 |
/doc/{id}/title | GET | Get document title | - | {"title": "the_Title"} | 1.1.0 |
/doc/{id}/title | DELETE | Reset document title | - | - | 1.1.0 |
/doc/{id}/meta | GET | Get various metadata | - | {"title": "the_Title", "tags":[...], "comments": [...] ... } | 1.1.0 | .comments & .created in 1.2.1 |
/raw/rdf | GET | Get all metadata as RDF. Useful for Backups | 4 | RDF, Content-Type defined over request Headers or ?accept. Fallback to text/turtle. | 1.1.0 |
/raw/zip or/raw/tgz | GET | Get all data. Useful for backups | - | ZIP / TGZ containing blobs/ directory with all pdfs as stored within tridoc and a rdf.ttl file with all metadata. | 1.3.0 |
/raw/zip | PUT | Replace all data with backup zip | ZIP | Replaces the metadata and adds the blobs from the zip | 1.3.0 |
/tag | POST | Create new tag | See above | - | 1.1.0 |
/tag | GET | Get (list of) all tags | - | - | 1.1.0 |
/tag/{tagLabel} | GET | Get Documents with this tag. Same as/doc?tag={tagLabel} | 12 | Array of objects with document identifiers and titles (where available) | 1.1.0 |
/tag/{tagLabel} | DELETE | Delete this tag | - | - | 1.1.0 |
/version | GET | Get tridoc version | - | semver version number | 1.1.0 |
1 : ?text
2 : ?limit and ?offset
3 : ?tag and ?nottag
Since 1.4.4, filtering for Tag Ranges is possible with the following syntax:…={label};{min};{max}
.min
ormax
may be ommitted for unbounded search. Trailing semocolons may be omitted.Example:
…?tag=foo;;30&tag=bar;2020-01-01;2020-12-31
gives all that have tag foo with a value <= 30, and bar values within 2020.
Be aware that this may need replacing of the caracter
;
by%3B
.
4 : ?accept
5 : ?date followed by an ISO 8601 date string including time and timezone, seconds optional, sets creation date
Deleting / editing comments might be supported in the future
About
Tridoc Serverside Infrastructure