OpenFn / OpenFn/lightning

Audit trail for project, sandbox, and credential lifecycle actions

Open
#4,677 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs technical design refactor
Dominant language
Elixir
Stars
296
Forks
86
Avg merge
1d 13h
Merged PRs (30d)
50

Description

Context

Three entities have soft-delete + grace-period purge: credentials, projects, and sandboxes (sandboxes since #4670). Audit coverage is patchy. Today only credentials' hard delete writes an audit row (Audit.user_initiated_event("deleted", ...)). Schedule and cancel on all three entities, plus hard delete on projects and sandboxes, write nothing. Support questions like "who deleted this?" have no clean answer.

Proposal

Add audit rows for the three lifecycle actions (schedule, cancel, hard delete) across all three entities, in one consistent pass. The audit modules already exist (Lightning.Credentials.Audit, Lightning.Projects.Audit); it's mostly inserting the right events in the existing transactions.

Sandboxes are projects, so sandbox audit events live in Lightning.Projects.Audit. Reuse existing event names with a project_type tag, or introduce sandbox-specific event names if that reads cleaner.

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start with the existing hard-delete audit event in Lightning.Credentials.Audit, then inspect the lifecycle transactions for credentials, projects, and sandboxes. Add consistent audit coverage for schedule, cancel, and hard delete, using Lightning.Projects.Audit for sandbox events. Done means all three actions across all three entities produce the intended audit rows, including an agreed project_type or event-name treatment for sandboxes.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.