Web-Based jukebox for a local Music Directory
- typescript / node / prisma
- handlebars templating engine on the backend
- custom-written saslauthd authentication
- bootstrap in combo with purgecss (works nicely!!)
- handling of browser sessions (custom!)
"A Session is always device (and even browser) specific"
session.gotLogin: boolean
session.gotLogout: boolean
session.needsSave: boolean
| sessId (cookie) | memcache | what to do |
|---|---|---|
| ✅ | ✅ | normal Session |
| ✅ | ❌ | cannot find memcache, Server dictates new sessId |
| ❌ | ✅ | new sessId, new cookie (memcache auto evict, will never find again) |
| ❌ | ❌ | new sessId, new cookie |
session.username is beeing set, meaning:
- send cookie (/login onto a working session is not quite realistic, but resending a known cookie again is ok)
- save to memcached
- destroy cookie
- remove from memcached, if it came from it.
- save to memcache
- do nothing
- Path insertion is fast (by
processListingFile()) - after this, most files are still correct
- DB View: some files do not exist on filesystem anymore (thru picard)
- DB View: some files on filesystem are newer (tags & sha256 needs regeneration)
I now get files with
- verifiedAt NULL or a date
verifiedAt .. timestamp of last full verification
inode, sizeBytes .. comes thru stat
ext, mimeType .. comes thru bufferMimeType