ParabolInc / parabol

Free online agile retrospective meeting tool
https://www.parabol.co/
Other
1.91k stars 331 forks source link

Enhancement: Historical usage reporting for self-hosted instances #10001

Closed jordanh closed 1 month ago

jordanh commented 3 months ago

Issue - Enhancement

For many of the deployments we'll have within the Public Sector, we won't have access to our instances or their databases. The best we'll be able to do in order to track usage and negotiate/update our license fees will be to ask the DevOps/SRE support staff who operate our instances to run a command and send us the result.

In a future, ideal state. There will be a dashboard where they can click a button and it'll download a file they can send to us. For now, let's start by defining a GraphQL query they can run and then send us the output

Acceptance Criteria (optional)

A DevOps/SRE individual with su access to one of our deployments can:

Estimated effort: 13 points (see CONTRIBUTING.md)

jordanh commented 3 months ago

@mattkrick here is the shape of the stats query I had in mind...

jordanh commented 3 months ago

cc @dbumblis-parabol

mattkrick commented 3 months ago

is there a disk we could save it to? if so, we could use a cronjob. alternatively, we could add a feature to GraphiQL that downloads the response as a file so they don't have to copy/paste. we can also pre-load the query we want them to run in the app

we should sign the payload, although if the app can sign the payload, they could manually sign the payload, too. So, the best bet is obfuscation-- make the secret hard to get at and/or the generation of the checksum difficult.

tianrunhe commented 3 months ago

Fruit of thoughts: can we reuse/build on top of https://action.parabol.co/usage ?

jordanh commented 2 months ago

is there a disk we could save it to? if so, we could use a cronjob. alternatively, we could add a feature to GraphiQL that downloads the response as a file so they don't have to copy/paste. we can also pre-load the query we want them to run in the app

You know... they do have a logging system so we could just emit these data in their logs every once in a while. Perhaps that would be good ergonomics?

mattkrick commented 2 months ago

ha! i like that. cron job that just spits to the console? honestly, whatever works for them works for me.

jordanh commented 1 month ago

Note: we cannot provide:

the number of unique users who logged into/connected to Parabol within the period

As we only keep lastSeenAt on the OrganizationUser table. Today we have no audit trail for connections.