{"id":39990806,"url":"https://github.com/edvgui/firefly-ano","last_synced_at":"2026-01-19T00:38:53.356Z","repository":{"id":324679165,"uuid":"1091631373","full_name":"edvgui/firefly-ano","owner":"edvgui","description":"Anonimyze logs coming out of firefly server before sharing them","archived":false,"fork":false,"pushed_at":"2025-11-29T09:22:47.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-01T10:53:29.182Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edvgui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-07T09:39:27.000Z","updated_at":"2025-11-29T09:21:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edvgui/firefly-ano","commit_stats":null,"previous_names":["edvgui/firefly-ano"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edvgui/firefly-ano","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ffirefly-ano","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ffirefly-ano/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ffirefly-ano/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ffirefly-ano/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edvgui","download_url":"https://codeload.github.com/edvgui/firefly-ano/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvgui%2Ffirefly-ano/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28554779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T23:48:35.235Z","status":"ssl_error","status_checked_at":"2026-01-18T23:47:49.178Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-19T00:38:52.687Z","updated_at":"2026-01-19T00:38:53.347Z","avatar_url":"https://github.com/edvgui.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# firefly-ano\n\n[Firefly III](https://github.com/firefly-iii/) is an amazing tool to manage personal finances.\n\nThis script allows you to more easily anonymize logs produced by the firefly-iii server when sharing them to report an issue.\n\nThe script works as follows:\n1. Read the logs a first time, try to recognize any data format or log lines which are known to contain sensitive data.\n2. Parse the sensitive data in these lines, and come up with an alternative value for the sensitive data.\n3. Read the logs a second time, replace in each line any value matching any of the sensitive data that was resolved before, and print the line to stdout.\n\nYou can also provide extra values that you know should be redacted but the script doesn't handle yet using the `--extra \u003csecret\u003e \u003credacted\u003e` argument.\n\n## Disclaimer\n\nThere is absolutely no guarantee that the script will find and replace every sensitive data contained in the logs.  I do not recommend publishing the outgoing anonymized logs anywhere online.\n\n## Run from source\n\n**Requirements**:\n- [uv](https://docs.astral.sh/uv/getting-started/installation/)\n\n```console\n$ git clone https://github.com/edvgui/firefly-ano.git\nUsage: script.py [OPTIONS] [FILE]\n\n  This tool helps you anonymize logs files produced by firefly-iii server\n  before sharing them for any bug report.  It tries to identify potentially\n  sensitive information, and replace it with dummy values, while conserving\n  value consistency across the log file.  Updated logs are printed to stdout.\n\n  The input file should be a valid path on the system where the script is\n  being executed, and defaults to stdin.\n\nOptions:\n  -l, --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]\n                                  Set logging level  [env var: LOG_LEVEL;\n                                  default: INFO]\n  -e, --extra \u003cTEXT TEXT\u003e...      Additional sensitive data to search and\n                                  replace.\n  --help                          Show this message and exit.\n$ echo '$$$' | ./script.py --log-level debug --extra $ €\nValue $ will be replaced by €\n€€€\n```\n\n## Run with podman\n\n**Requirements**:\n- podman or docker\n\n```console\n$ podman run --rm -i ghcr.io/edvgui/firefly-ano:latest --help\nUsage: script.py [OPTIONS] [FILE]\n\n  This tool helps you anonymize logs files produced by firefly-iii server\n  before sharing them for any bug report.  It tries to identify potentially\n  sensitive information, and replace it with dummy values, while conserving\n  value consistency across the log file.  Updated logs are printed to stdout.\n\n  The input file should be a valid path on the system where the script is\n  being executed, and defaults to stdin.\n\nOptions:\n  -l, --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]\n                                  Set logging level  [env var: LOG_LEVEL;\n                                  default: INFO]\n  --help                          Show this message and exit.\n$ podman run --rm -i ghcr.io/edvgui/firefly-ano:latest \u003c original.log \u003e modified.log\n```\n\n## Options\n\nAll options can be provided via cli or environment variables, when both are used, the value provided via cli takes precedence.\n\n| Option | Env var | Description |\n| --- | --- | --- |\n| `-l/--log-level` | `LOG_LEVEL` | The log level of the script. |\n| `-e/--extra` | `EXTRA` | Extra values to redact and replace. |\n| `\u003cfile\u003e` | `FILE` | The path to the log file that should be anonymized. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvgui%2Ffirefly-ano","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedvgui%2Ffirefly-ano","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvgui%2Ffirefly-ano/lists"}