federatedbookkeeping / task-tracking

This repo contains the artefacts tracking work done on the Federated Task-Tracking project, funded by NLnet and the NGI Assure Programme.
MIT License
4 stars 2 forks source link

updated federation protocol #31

Open michielbdejong opened 3 months ago

michielbdejong commented 3 months ago

Using the union data format we can define the federation protocol as follows:

POST /events
{
  "operation": ...
  "type": ...
  "object": ...
}

operation can be 'create', 'update', or 'delete'. type can be 'issue' or 'comment'. object can be an issue or a comment as defined in #30 (version 2)

michielbdejong commented 3 months ago

Additional operations:

{
  "operation": "merge",
  "from": string,
  "into": string
}

And:


{
    "operation": "fork",
    "left": Set<string>,
    "right": Set<string>
}
michielbdejong commented 3 months ago

we somehow need to apply the design of this protocol to the csv format from https://github.com/federatedbookkeeping/timesheets/wiki/API-Definitions-for-Federated-Time-tracking-tools#wikisuite

URI,User,Project,Task,Description,"Start Time","End Time",Date,Duration,"Minutes (Calculated)","Hours (Calculated)" https://timesheet.dev3.evoludata.com/api/trackers/2/items/45,victor,federated-timesheets,,"Meeting with Michiel, George and others to discuss initial steps for defining the data model of the federated timesheets and other complexities","Thursday March 10, 2022 00:00:00 UTC",,2022-03-10,"1 hour, 9 minutes",69,1.15 https://timesheet.dev3.evoludata.com/api/trackers/2/items/46,victor,federated-timesheets,,"add WkiSuite timesheet example from avan.tech for federated timesheets","Friday March 11, 2022 00:00:00 UTC",,2022-03-11,"30 minutes",30,0.5

If two users insert timesheet entries, they will have different URIs

michielbdejong commented 3 months ago

it doesn't really make sense to have create and update separately, and deletion is handles with a 'deleted' flag anyway, so we can merge those three operation types into an 'upsert' operation.

michielbdejong commented 3 months ago

I used this for https://github.com/federatedbookkeeping/github-dxos/blob/main/src/data.ts Now working on https://github.com/federatedbookkeeping/github-dxos/blob/167b420ee870a00f7530e200febe4a075dd700dd/src/github.ts#L106 - will continue tomorrow!