API - Tags or other MetaData on Entities via the API

#1

Hello,

Is there any sort of mechanism, via the API, to be able to tag entities?

My need would be to take a logbook/trip item and add tags onto it, for example “Personal” vs “Business”.

I would like to provide a UI which allows people to classify each trip as either Personal or Business, and have those tags stored as part of the trip entity within your storage so that it can be made available to any other applications being created against the API.

Thanks.

-Rob

#2

Hi Rob,

Welcome to the forum.

At the moment its not possible to tag your trips, but its a great idea and we will add it to our backlog. Hopefully it will be something we can include soon.

One of the things we did add for the next release, is the possibility to export trips. Initially it will be possible to export them to csv.

best
Peter

#3

Hi Peter, Good to meet you and thanks for the warm welcome!

I’m working on a C# Client (C# / .Net Core Class Library) and it would be trivial for me to also do the export. Besides CSV I have been considering adding support for KML and probably GPX file types in some form of a command line application (.net core, so cross platform).

My big issue is I don’t want to rely on some local storage for this metadata. Let me know if you need some business value/ROI to justify the feature and of course design specs or whatever around an API for this.

Cheers,

Rob

ps. In my previous life I was the lead architect at http://moj.io

#4

Hi Rob,

The C# Client looks very promising. Keep us updated on the progress.

We do understand the business value of tagging trips (tax purposes) and I know its something other customers has requested too. I do believe its something we would be able to add for one of the upcoming releases.

If you have specific inputs, then we welcome everything we get from our customers.

best
Peter

#5

For my basic requirements I would like to see an API around a basic folksonomy (tagging)…

  1. POST /tags/{entityId}
    where entityId is the id of any identifier for any entity in the system
    validating this id actually belongs to an entity that i have access to would be optional.
    example input: [“Tag1”,“Tag2”,“Tag3”]
    example output: (no response required, just a 200 from the server)

  2. GET /tags/{entityId}
    retrieve the list of tags for the entity
    Example response: [“Tag1”,“Tag2”,“Tag3”]

  3. DELETE /tags/{entityId}
    Delete all tags for the entity

  4. DELETE /tags/{entityId}/{tag}
    Delete a single tag off of an entity

  5. GET /tags
    Retrieve all tags across all entities.

Some of the entities I would like to see support folksonomy would be (at least) Trips, Vehicles and Dongles; but IMHO there should be no limit. If there is no validation on {entityId}, then this will be no problem; but there is a risk of people abusing this system. If need be, I would put a max length of the Tag itself to be something like 16 characters in length.

“Tags” are as simple as an array of string. I would avoid getting fancy here at all.

I would NOT expect the “entities” (trips, vehicles, dongles) to also be updated with the tags. Nor would I want that data to come back via their specific API’s.