High-Level Features
ℹ️ This page is just a rough outline of what I want to cover.
This page will explain the high-level features of FOKS.
Key-Value Storage
- user KV vs team KV
- key namespace looks like unix path
- first character must be
/, 0+ "directories" separated by/, then a non-empty "file" name foks kv lsoutput shows names within each "directory", but not whether each name is a file or directory- newly created accounts don't have a
/key until at least one other key is created (or a git repo is created, which creates/,/appand/app/gitif they don't already exist, so it can create/app/git/REPONAME)
- first character must be
- individual values can be anything, any size
- user account storage limits based on server policy
- values are stored as rows in database
- large values are split into 4 MiB chunks, so a large value will occupy multiple rows
- can values be stored in other storage? → hasn't been built yet
- storage ideas (mine, no idea if any of these will happen or not)
- files on server's local disk (how to monitor usage and not run out of space)
- S3 (or compatible) bucket blobs
- azure, google, etc.
- dropbox, box.com, etc.
- deleted values still count against
foks kv get-usagetotals- janitor (aka "quota reclamation") hasn't been built yet
Git Repositories
- stored in KV, using keys under
/app/git/REPONAME git-remote-foks- allowsgitto work withfoks://URLs- there is no
foks git deletecommand, butfoks kv rm -R /app/git/REPONAMEdeletes the repo
Generated
2025-09-22 03:40:19
74d4feb
2025-09-22 03:38:41 +0000