{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":697801165,"defaultBranch":"main","name":"encrypted_file_server","ownerLogin":"BillysBigFileServer","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-09-28T13:59:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/150173840?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1709589693.0","currentOid":""},"activityList":{"items":[{"before":"4a528256353da8414566e0117abe52126b18fd5c","after":"361154cae82eaa72a8ec75f96cd85d8ef204dd89","ref":"refs/heads/main","pushedAt":"2024-09-17T20:32:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"update flake\n\nrust 1.81 has some cool comp time benefits when it comes to sorting.\nplus i wanna keep rustc up to date ish","shortMessageHtmlLink":"update flake"}},{"before":"9514b8ae2b1a0e7befa4ab3e8e80157fa001121c","after":"4a528256353da8414566e0117abe52126b18fd5c","ref":"refs/heads/main","pushedAt":"2024-09-17T05:39:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"check and cache revoked tokens\n\nwe should eventually store this in sqlite or something, but the list is\ntiny so in mem is fine","shortMessageHtmlLink":"check and cache revoked tokens"}},{"before":"973f46f23516d1cbfeb094b67a722d83a51956f8","after":"9514b8ae2b1a0e7befa4ab3e8e80157fa001121c","ref":"refs/heads/main","pushedAt":"2024-09-13T01:42:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"return empty actions list for users w no actions","shortMessageHtmlLink":"return empty actions list for users w no actions"}},{"before":"4620ebbc5d22987434e0238afc1fdf9d7c6a59af","after":"973f46f23516d1cbfeb094b67a722d83a51956f8","ref":"refs/heads/main","pushedAt":"2024-09-12T01:25:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"correctly handle \"chunk already exists\" error","shortMessageHtmlLink":"correctly handle \"chunk already exists\" error"}},{"before":"f0691aab14ea16ea4338b7c3f125b3538fcb4cc2","after":"4620ebbc5d22987434e0238afc1fdf9d7c6a59af","ref":"refs/heads/main","pushedAt":"2024-09-02T22:52:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"return all actions for each user\n\nobviously the correct way to do this","shortMessageHtmlLink":"return all actions for each user"}},{"before":"a805ee2f1eb09f9da7e4f079880085c68115255f","after":"f0691aab14ea16ea4338b7c3f125b3538fcb4cc2","ref":"refs/heads/main","pushedAt":"2024-08-31T05:05:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"fix set_suspension sql","shortMessageHtmlLink":"fix set_suspension sql"}},{"before":"0b4a30728fdb8717cf483cf2f552a30acd577331","after":"a805ee2f1eb09f9da7e4f079880085c68115255f","ref":"refs/heads/main","pushedAt":"2024-08-31T03:08:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"update bfsp","shortMessageHtmlLink":"update bfsp"}},{"before":"a96bbf83b152ad51e2977ce09eef6c3574443f7d","after":"0b4a30728fdb8717cf483cf2f552a30acd577331","ref":"refs/heads/main","pushedAt":"2024-08-30T18:01:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"no need to instrument DBs\n\nalso did an update to bfsp that should remove a ton of unnecessary deps","shortMessageHtmlLink":"no need to instrument DBs"}},{"before":"402f0a8741689a29ce01c21c174ef1dfabbb2eaa","after":"a96bbf83b152ad51e2977ce09eef6c3574443f7d","ref":"refs/heads/main","pushedAt":"2024-08-30T17:32:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"allow queueing specific actions\n\nwe can now say \"hey, run this action after $time\". This will mostly be\nused for suspending users after their free trial period is up in\nbig_money","shortMessageHtmlLink":"allow queueing specific actions"}},{"before":"33ed263d7e4003f3ef1fe5231332737601d95a3d","after":"402f0a8741689a29ce01c21c174ef1dfabbb2eaa","ref":"refs/heads/main","pushedAt":"2024-08-30T17:22:01.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"allow queueing specific actions\n\nwe can now say \"hey, run this action after $time\". This will mostly be\nused for suspending users after their free trial period is up in\nbig_money","shortMessageHtmlLink":"allow queueing specific actions"}},{"before":"237a32d29d307051c65e92cb6dc3a8790fdfa522","after":"33ed263d7e4003f3ef1fe5231332737601d95a3d","ref":"refs/heads/main","pushedAt":"2024-08-23T16:17:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"add ability to suspend user rights\n\nthis will be useful for things like free trials, partially banning\nabusive users, etc.\n\nthere's also an internal API so that big_money and big_central can\nsuspend users as needed, or remove suspensions, etc\n\nsuspensions are stored as jsonb so we can suspend more rights in the\nfuture without adding new columns","shortMessageHtmlLink":"add ability to suspend user rights"}},{"before":"c3586c21d98f4a8c5ae627c1bcb9d8961bd7bd6a","after":"237a32d29d307051c65e92cb6dc3a8790fdfa522","ref":"refs/heads/main","pushedAt":"2024-08-23T16:16:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"add ability to suspend user rights\n\nthis will be useful for things like free trials, partially banning\nabusive users, etc.\n\nthere's also an internal API so that big_money and big_central can\nsuspend users as needed, or remove suspensions, etc\n\nsuspensions are stored as jsonb so we can suspend more rights in the\nfuture without adding new columns","shortMessageHtmlLink":"add ability to suspend user rights"}},{"before":"e4d9d3ac99932b46e51d1e23193c3faa40063825","after":"c3586c21d98f4a8c5ae627c1bcb9d8961bd7bd6a","ref":"refs/heads/main","pushedAt":"2024-08-18T18:02:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"only check file ids when necessary","shortMessageHtmlLink":"only check file ids when necessary"}},{"before":"ae5d5abbb7183b4eb3434d211f03a46d61987c06","after":"e4d9d3ac99932b46e51d1e23193c3faa40063825","ref":"refs/heads/main","pushedAt":"2024-08-18T06:31:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"change the primary key to be more valid\n\nchunk ids should only be unique to users, not necessarily across the\nwhole server","shortMessageHtmlLink":"change the primary key to be more valid"}},{"before":"c3fd0b667e73d655eaaae9b83bcf54fe9271abce","after":"ae5d5abbb7183b4eb3434d211f03a46d61987c06","ref":"refs/heads/main","pushedAt":"2024-08-18T06:09:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"change the primary key to be more valid\n\nchunk ids should only be unique to users, not necessarily across the\nwhole server","shortMessageHtmlLink":"change the primary key to be more valid"}},{"before":"07e9e4687b759737117b6bcbd77337000923beab","after":"c3fd0b667e73d655eaaae9b83bcf54fe9271abce","ref":"refs/heads/main","pushedAt":"2024-08-18T05:46:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"change the primary key to be more valid\n\nchunk ids should only be unique to users, not necessarily across the\nwhole server","shortMessageHtmlLink":"change the primary key to be more valid"}},{"before":"266e3ab5397b41d1ef2596d873f2b864a44718c6","after":"07e9e4687b759737117b6bcbd77337000923beab","ref":"refs/heads/main","pushedAt":"2024-08-17T16:44:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"reduce size of VMs","shortMessageHtmlLink":"reduce size of VMs"}},{"before":"8744a05567e0b6cebd0c08aecaaeef01d2269fa8","after":"266e3ab5397b41d1ef2596d873f2b864a44718c6","ref":"refs/heads/main","pushedAt":"2024-06-23T05:23:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"garbage collect in the background\n\nthis shouldn't prevent users from connecting","shortMessageHtmlLink":"garbage collect in the background"}},{"before":"e2e94a8a3448b37d51d32ca138e0abfc878bd651","after":"8744a05567e0b6cebd0c08aecaaeef01d2269fa8","ref":"refs/heads/main","pushedAt":"2024-06-23T04:19:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"garbage collect in the background\n\nthis shouldn't prevent users from connecting","shortMessageHtmlLink":"garbage collect in the background"}},{"before":"373a684854002f1791d5b14e00b71f2de1e79d55","after":"e2e94a8a3448b37d51d32ca138e0abfc878bd651","ref":"refs/heads/main","pushedAt":"2024-06-20T03:44:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Add the set_storage_cap internal API","shortMessageHtmlLink":"Add the set_storage_cap internal API"}},{"before":"b777fc9c07b5509dc09e560bfb9943168cbce61c","after":"373a684854002f1791d5b14e00b71f2de1e79d55","ref":"refs/heads/main","pushedAt":"2024-06-13T01:09:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Added storage caps for users\n\nHaving limits on the amount of data that users can store is obviously\nuseful so users can pay for what they use up to a certain point,\nrestricting abusive users, etc. By default we don't have a limit unless\na user is given a specific one, which is done by adding it to a table.\nOnce we get some more billing work done, we could have big_central hit\nthe internal API\n\nWe also started counting file_metadata in chunk usage. The reason for\nthis is to prevent abuse. Any user can upload any data into\nfile_metadata, so ensuring that we check limits there is ideal. Once we\nchange chunk_metadata to encrypt some of the data, we should also count\nthat. In reality, this is a KB at *most* per file, so this isn't an\nissue for non-abusive users","shortMessageHtmlLink":"Added storage caps for users"}},{"before":"a5a249c875b4ce9509a5a116f7c22976b642ce3b","after":"b777fc9c07b5509dc09e560bfb9943168cbce61c","ref":"refs/heads/main","pushedAt":"2024-06-10T03:55:19.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Added storage caps for users\n\nHaving limits on the amount of data that users can store is obviously\nuseful so users can pay for what they use up to a certain point,\nrestricting abusive users, etc. By default we don't have a limit unless\na user is given a specific one, which is done by adding it to a table.\nOnce we get some more billing work done, we could have big_central hit\nthe internal API\n\nWe also started counting file_metadata in chunk usage. The reason for\nthis is to prevent abuse. Any user can upload any data into\nfile_metadata, so ensuring that we check limits there is ideal. Once we\nchange chunk_metadata to encrypt some of the data, we should also count\nthat. In reality, this is a KB at *most* per file, so this isn't an\nissue for non-abusive users","shortMessageHtmlLink":"Added storage caps for users"}},{"before":"5727c38c1da3b4ffa9e2b9a0d375398bf850561f","after":"a5a249c875b4ce9509a5a116f7c22976b642ce3b","ref":"refs/heads/main","pushedAt":"2024-06-08T05:40:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Add mold linker for faster compilation","shortMessageHtmlLink":"Add mold linker for faster compilation"}},{"before":"2525deaf70ce5f4c3cf18707c4d8e994889ebfdb","after":"5727c38c1da3b4ffa9e2b9a0d375398bf850561f","ref":"refs/heads/main","pushedAt":"2024-06-07T20:15:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Add mold linker for faster compilation","shortMessageHtmlLink":"Add mold linker for faster compilation"}},{"before":"b7b0f760aa6ac1740d991c22a374cac4a20f44c5","after":"2525deaf70ce5f4c3cf18707c4d8e994889ebfdb","ref":"refs/heads/main","pushedAt":"2024-06-07T19:57:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Feature flag s3","shortMessageHtmlLink":"Feature flag s3"}},{"before":"4258daeba41ecd098783e6e6574ed532cb6df308","after":"b7b0f760aa6ac1740d991c22a374cac4a20f44c5","ref":"refs/heads/main","pushedAt":"2024-06-07T19:56:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Added an internal API + usage API\n\nThe internal API authenticates messages from big_central by having the\nmessages be encrypted using a shared XChaCha key\n\nAlso added an API to both the public and the new internal API to get the\ntotal storage usage for users","shortMessageHtmlLink":"Added an internal API + usage API"}},{"before":"cab3d985891d47ac104ff2596e3f6aa792e37ae3","after":"4258daeba41ecd098783e6e6574ed532cb6df308","ref":"refs/heads/main","pushedAt":"2024-05-29T02:23:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Add a gross optimization to improve upload speeds","shortMessageHtmlLink":"Add a gross optimization to improve upload speeds"}},{"before":"212873180d8633616781ffd7a2fc3fb6c3fcb4b9","after":"cab3d985891d47ac104ff2596e3f6aa792e37ae3","ref":"refs/heads/main","pushedAt":"2024-05-26T02:26:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"Added tracing","shortMessageHtmlLink":"Added tracing"}},{"before":"fc0d32398552e794ab72a51496dd3d80d0e7b02f","after":"212873180d8633616781ffd7a2fc3fb6c3fcb4b9","ref":"refs/heads/main","pushedAt":"2024-05-25T18:06:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"HTTP Support + DeleteFileMetadata\n\nStupid Safari doesn't support WT, and I can't be bothered to add\nwebsocket support to the client now.","shortMessageHtmlLink":"HTTP Support + DeleteFileMetadata"}},{"before":"522457b29bec1fb04ac01076fc43ca11b2afbb80","after":"fc0d32398552e794ab72a51496dd3d80d0e7b02f","ref":"refs/heads/main","pushedAt":"2024-05-19T17:33:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"billyb2","name":"Billy Batista","path":"/billyb2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/45850508?s=80&v=4"},"commit":{"message":"HTTP Support + DeleteFileMetadata\n\nStupid Safari doesn't support WT, and I can't be bothered to add\nwebsocket support to the client now.","shortMessageHtmlLink":"HTTP Support + DeleteFileMetadata"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QyMDozMjoyOC4wMDAwMDBazwAAAAS49wZm","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xOVQxNzozMzozNC4wMDAwMDBazwAAAAROLTZo"}},"title":"Activity ยท BillysBigFileServer/encrypted_file_server"}