Delete office tracking after 14 months, and keep recordings for as long as the company exists

Open
#163 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript

Research direction

Start by reading the database and privacy docs named in the issue, then locate the bot's database access and daily job entry points. Map the listed tables to their timestamps and recording relationships before estimating the work. Done means old tracking is deleted daily while recording data is retained, Stats reflects the different retention periods, and the README and docs explain them.

Written by the indexing model from the issue text.

Description

enhancement
What problem would this solve?

Nothing the office records is ever deleted. That's right for recordings, which are company records, but not for the tracking behind the stats and banter. Usage data only needs to cover a reasonable stretch of time, and the GDPR expects us to keep personal data no longer than its purpose needs. I want the tracking kept for 14 months, like normal usage tracking, and the recordings kept for as long as the company exists.

What you'd like to happen

Every day, the bot deletes tracking older than 14 months:

Deleted after 14 months Kept as long as the company exists
voice_snapshots and voice_effects, the activity record recordings, recording_events, recording_requests, recording_edits, recording_summaries, recording_action_items and recording_clips
banter_posts The audio in the clips bucket
slack_posts, except the Recording posts slack_posts of kind Recording, which point to the summary in Slack
slack_messages, slack_decisions and slack_reactions members who spoke in, started, stopped or own an action item in a recording
rejected_updates bot_sessions, which names no one
members who haven't been seen in 14 months and appear in no recording

Proposed details:

  • Runs once a day, at a quiet time outside office hours, as one transaction per table, oldest first.
  • "Older than 14 months" goes by when it happened: observed_at, the post's or message's time, or last_seen_at for members.
  • Only deletes from the database. Posts already in Slack stay for as long as the workspace keeps them, and banter nobody engaged with is already deleted from Slack the next morning.
  • Needs the database, like everything else. A failure is logged and retried the next day, and never touches the announcements.
  • Migrations still only ever add. This job deletes rows, never tables or columns.
  • The Console's Stats tab: "all time" covers the last 14 months for activity, and recordings still count back to the first one. The tab should say so.
  • docs/privacy.md, docs/database.md and the README drop "nothing is ever deleted" for the tracking, and say what's kept for how long.
Alternatives you've considered
  • Keeping everything forever: the tracking has no reason to outlive the stats and banter it's for.
  • Anonymising old tracking instead of deleting it: in a team this size, who was in the office when is enough to identify people, so it would still be personal data.
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
2h 35m
Merged PRs (30d)
89

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from push-based/virtual-office-notifier

All issues in push-based/virtual-office-notifier

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.