Delete office tracking after 14 months, and keep recordings for as long as the company exists
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
- Domain
- backend, databases, documentation
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
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, orlast_seen_atfor 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
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from push-based/virtual-office-notifier
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
push-based/virtual-office-notifier#174 ·
Maintainers usually reply within 1 day
All issues in push-based/virtual-office-notifier
Similar issues
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
amplitude/Amplitude-TypeScript#2179 · 1 comment ·
Maintainers usually reply within 2 days
-
ci good first issue severity: low
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PeculiarVentures/asn1-schema#189 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100