{"id":23721080,"url":"https://github.com/nhas/timeoutfilestore","last_synced_at":"2026-02-13T00:30:17.682Z","repository":{"id":119332975,"uuid":"273810000","full_name":"NHAS/TimeoutFileStore","owner":"NHAS","description":"Serve a file for a limited amount of time behind authentication ","archived":false,"fork":false,"pushed_at":"2020-06-23T08:52:20.000Z","size":101,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-06T21:59:43.493Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NHAS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-06-21T00:58:40.000Z","updated_at":"2024-06-19T09:11:55.719Z","dependencies_parsed_at":"2023-07-17T14:40:01.433Z","dependency_job_id":null,"html_url":"https://github.com/NHAS/TimeoutFileStore","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHAS%2FTimeoutFileStore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHAS%2FTimeoutFileStore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHAS%2FTimeoutFileStore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHAS%2FTimeoutFileStore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NHAS","download_url":"https://codeload.github.com/NHAS/TimeoutFileStore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239816341,"owners_count":19701752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-12-30T22:17:05.289Z","updated_at":"2026-02-13T00:30:17.625Z","avatar_url":"https://github.com/NHAS.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TimeoutFileStore\nStore files for a set amount of time. \n\n## Use case\nEver want to travel somewhere but not super sure about those border controls seizing your computers, forcing you to unlock them and using them to take control of your infastructure? \nNope?  \nMe neither. However I think its a fun thought experiment.  \n\nThis tool goes part way to solving this issue by creating a \"stall\" tactic. If you stall long enough, your files which in this case would be 'keys' to your infastructure will be gone and rendering you unable to give up any way of accessing your computers. \n\nBe warned. I have no idea how this would go legally for you. Nor how it would go physically. \n\nBut again, thought experiment. \n\n## Installation\n\n```\ngo get -u https://github.com/NHAS/TimeoutFileStore\ncd $GOHOME/go/src/github.com/NHAS/TimeoutFileStore/\ngo build .\n```\n\n## Screenshots\n\n**Login**\n![Login](/images/login.png?raw=true)\n\u003c/br\u003e\n\n**User List**\n![User List](/images/user_list.png?raw=true)\n\u003c/br\u003e\n\n**File List**\n![File List](/images/files_list.png?raw=true)\n\u003c/br\u003e\n## Things to keep in mind\n\nWhile this follows good practice for file uploading (content-disposition header, guids for resources) it lacks some security controls. \n\n* Lack of maximum file upload size\n* Lack of maximum content stored per user\n* GORM may or may not support sqlite3 with multiple threads, but its hard to tell (may cause race conditions under very specific circumstances) \n* Self made authentication token mechanism, which may be vulnerable to god knows what, I've tried to make it as secure as possible. But meh.\n\nIt is also missing some features which would be rather helpful:\n\n* Change password\n* Purge all files\n* Set file public/private\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhas%2Ftimeoutfilestore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhas%2Ftimeoutfilestore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhas%2Ftimeoutfilestore/lists"}